VM Selection - Which VM Should I Use to Create Media Ads

Software Eng 0 Reputation points
2024-06-05T13:59:45.9933333+00:00

Hi,

I am going to create videos and adds based by using own phyton logic. I will call multiple open apis,Gen Apis etc based on response othis api will create videos from own phyton logic .I should manage 250 concurrent videos creations (250 concurrent requests). Inorder to run this flow which VM is best in Azure ( The performance should be very good ) ? Please let me know.

Thanks

Azure Virtual Machines
Azure Virtual Machines
An Azure service that is used to provision Windows and Linux virtual machines.
7,471 questions
Azure Media Services
Azure Media Services
A group of Azure services that includes encoding, format conversion, on-demand streaming, content protection, and live streaming services.
313 questions
{count} votes

2 answers

Sort by: Most helpful
  1. Sina Salam 6,581 Reputation points
    2024-06-05T17:43:27.14+00:00

    Hello Software Eng,

    Welcome to the Microsoft Q&A and thank you for posting your questions here.

    Problem

    I understand that you need to efficiently manage and execute 250 concurrent video creation tasks, which involve calling various open APIs and using the responses to generate videos. Based on these, you would like to identify the best Azure Virtual Machine (VM) that can handle this workload with high performance, considering factors such as CPU power, memory, disk I/O, and potentially GPU capabilities.

    Solution

    To answer this question, I will put into consideration your scenario for workload, which involves video creation and API management, and you might want to consider the following Azure services:

    • Fsv2 Series (Compute Optimized)
    • Dsv5 Series (General Purpose)
    • Esv5 Series (Memory Optimized)
    • NCas_T4_v3 Series (GPU-optimized)

    For general-purpose workloads, such as app servers or relational databases, the D family of Azure Virtual Machines is often recommended. These VMs offer the vCPUs, memory, and temporary storage to meet the requirements of most production workloads. You can read more about them in the link below: https://techcommunity.microsoft.com/t5/microsoft-mechanics-blog/which-virtual-machine-is-best-for-your-workload-in-azure/ba-p/2262293

    However, considerations for choosing the VM are based on these criteria as follows.

    • CPU and Memory: Ensure the VM has sufficient CPU cores and memory to handle the concurrent processing requirements.
    • Disk I/O Performance: High disk throughput is critical for video processing to handle read/write operations efficiently.
    • Network Bandwidth: High network bandwidth is necessary to handle API calls and data transfers effectively.
    • GPU: If your video processing tasks can leverage GPU acceleration, a GPU-optimized VM can significantly speed up the processing time.

    D family would have been suitable at start but if at very high demanding VM specification for handling 250 concurrent video creation tasks with high performance, a suitable option could be:

    • VM Type: NC64as_T4_v3
    • vCPUs: 64
    • RAM: 448 GiB
    • GPU: 4x NVIDIA Tesla T4
    • Disk Throughput: High
    • Network Bandwidth: High

    References

    Source: Which Virtual Machine is best for your workload in Azure. Accessed, 6/5/2024.

    Source: Azure API Management with an Azure virtual network. Accessed, 6/5/2024.

    Source: Azure Media Services | Microsoft Azure. Accessed, 6/5/2024.

    Accept Answer

    I hope this is helpful! Do not hesitate to let me know if you have any other questions.

    ** Please don't forget to close up the thread here by upvoting and accept it as an answer if it is helpful ** so that others in the community facing similar issues can easily find the solution.

    Best Regards,

    Sina Salam

    0 comments No comments

  2. kobulloc-MSFT 25,731 Reputation points Microsoft Employee
    2024-06-11T20:08:48.13+00:00

    Hello, @Software Eng !

    What VM is best for concurrent large video rendering workloads?

    You can certainly try to get a single VM which will meet your needs but that also creates a single point of failure (if the VM size is not available, if you need more resources, or if you need to run maintenance or version updates).

    Virtual Machine Scale Sets allow you to run a number of VM instances which can be automatically increased or decreased in response to demand or a defined schedule. This would allow you to create multiple VMs specifically configured for video encoding and rendering like the NV-family.

    Another option to consider is Azure Batch, which allows you to run large-scale parallel and high-performance computing (HPC) batch jobs efficiently in Azure. There are many advantages to rendering using Azure Batch scaling based on workload, a wide selection of hardware, and price optimization.

    Additional Reading:

    Architectural diagram using Azure Batch

    Architecture overview of the components involved in a cloud-native HPC solution using Azure Batch.


    I hope this has been helpful! Your feedback is important so please take a moment to accept answers.

    If you still have questions, please let us know what is needed in the comments so the question can be answered. Thank you for helping to improve Microsoft Q&A!

    User's image

    0 comments No comments