%3CLINGO-SUB%20id%3D%22lingo-sub-2119979%22%20slang%3D%22en-US%22%3EPerformance%20Best%20Practice-%20EDA%20workloads%20on%20Azure%20NetApp%20Files%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2119979%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSPAN%3EAzure%20NetApp%20Files%20(ANF)%20was%20generally%20available%20on%20May%202019.%20Ever%20since%20it%20has%20been%20widely%20adopted%20across%20industries%2C%20including%20many%20silicon%20companies%20running%20their%20Electronic%20Design%20Automation%20(EDA)%20workloads%20on%20Azure.%20Azure%20NetApp%20Files%20provides%203%20different%20service%20levels%20to%20ensure%20throughput%2C%20NFS%203.0%2FNFS4.1%2FSMB%20mount%20protocols%20connecting%20from%20Windows%20or%20Linux%20VMs%2C%20and%20takes%20only%20minutes%20to%20setup.%20Enterprise%20can%20seamlessly%20migrate%20their%20applications%20to%20Azure%20with%20an%20on-premises-like%20experience%20and%20performance.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EEDA%20workloads%20are%20generated%20by%20%3CA%20href%3D%22https%3A%2F%2Fwww.spec.org%2Fsfs2014%2FwhatsnewSP2.html%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3ESPEC%20SFS%C2%AE%26nbsp%3Bbenchmark%3C%2FA%3E%26nbsp%3Bsuite%2C%20to%20%3CEM%3E%E2%80%9Cmeasure%20file%20server%20throughput%20and%20response%20time.%E2%80%9D%20%3C%2FEM%3EThe%20benchmark%20suite%20generates%20EDA%20operations%20on%20the%20ratio%20of%20EDA_FRONTEND%20and%20EDA_BACKEND%20as%203%3A2%2C%20to%20simulate%20a%20classic%20IC-design%20workload.%20The%20distribution%20of%20the%20operations%20are%20illustrated%20below%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22EDA%20workload.png%22%20style%3D%22width%3A%20602px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253808i98BBFAB91DDC987A%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22EDA%20workload.png%22%20alt%3D%22EDA%20workload.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22EDA%20workload2.png%22%20style%3D%22width%3A%20602px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253810i7F8730642BC85D50%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22EDA%20workload2.png%22%20alt%3D%22EDA%20workload2.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E(From%20%3CA%20href%3D%22https%3A%2F%2Fwww.spec.org%2Fsfs2014%2FwhatsnewSP2.html%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3ESPEC%20SFS%C2%AE%202014%3C%2FA%3E)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EThe%20goal%20of%20this%20article%20is%20to%20share%20lessons%20learned%20from%20running%20the%20SPEC%20SFS%C2%AE%26nbsp%3BEDA%20stress%20test%20on%20Azure%20NetApp%20files.%20Including%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3E%3CSPAN%3EProvide%20practical%20performance%20best%20practices%20in%20real%20world.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3EExamine%20ANF%E2%80%99s%20scale-out%20capabilities%20with%20multiple%20volumes.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3ECost-effective%20analysis%20for%20users%20to%20choose%20the%20most%20suitable%20ANF%E2%80%99s%20service%20level.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E%3CSPAN%3EArchitecture%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EThe%20test%20was%20performed%20in%20Azure%20EAST%20US%20regions.%20Mix%20of%20Premium%20and%20Ultra%20service%20level%20with%20different%20sizes%20of%20volumes%20were%20tested.%20E64dsv4%20or%20D64dsv4%20VMs%20were%20acting%20as%20clients%2C%20which%20generated%20EDA%20workload%20operation%2C%20and%20reside%20in%20the%20same%20Proximity%20Placement%20Group%20with%20Accelerated%20Networking%20enabled.%20%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EThe%20average%20ping%20latency%20from%20VMs%20to%20ANF%20was%20around%200.6~0.8%20milliseconds.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Architecgure.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253811i8342E1E2D22C83CD%2Fimage-size%2Fmedium%3Fv%3D1.0%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Architecgure.png%22%20alt%3D%22Architecgure.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EThe%20overall%20performance%20is%20determined%20by%20two%20key%20metrics%3A%20Operations%2Fsec%20and%20Response%20Time%20(millisecond).%20The%20test%20will%20incrementally%20generate%20EDA%20workload%20Operations%2C%20and%20Response%20Time%20will%20be%20recorded%20accordingly.%20The%20Operations%2Fsec%20also%20indicates%20the%20combined%20read%2Fwrite%20throughput%20(MB%2Fs).%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E%3CSPAN%3EPerformance%20Tuning%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EBelow%20table%20shows%20the%208%20different%20options%20have%20been%20examined%20and%20their%20performance%20impact.%20Please%20see%20Appendix%20for%20details%20and%20their%20applicability.%20%3C%2FSPAN%3E%3CSPAN%3EIf%20no%20specifically%20stated%2C%20NFS%20vers%3D3%2C%20mountproto%3DTCP%2C%20and%20default%20MTU%3D1500%20were%20applied.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Performance%20tuning%20options.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253813i1277CAEDC5DF2C7E%2Fimage-size%2Fmedium%3Fv%3D1.0%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Performance%20tuning%20options.png%22%20alt%3D%22Performance%20tuning%20options.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EThe%20below%20results%20shows%20that%20the%20first%203%20(A%2C%20B%20%26amp%3B%20C)%20options%20can%20all%20improve%20response%20time%20and%20maximize%20throughput%20significantly%2C%20and%20the%20effectiveness%20can%20be%20added%20up.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%223%20options.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253814iF5501123F76207B0%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%223%20options.png%22%20alt%3D%223%20options.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3ENFS%204.1%20shows%20poor%20performance%20in%20this%20test%20compared%20to%20NFS%203.%20So%20be%20cautious%26nbsp%3Bof%20using%20it%20if%20there%E2%80%99s%20no%20specific%20security%20requirements.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22NFS.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253816i1C99E7F2D8C0C6B0%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22NFS.png%22%20alt%3D%22NFS.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3ETCP%20shows%20slightly%20better%20performance%20than%20UDP%20(%E2%80%98mountproto%3Dudp%E2%80%99)%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22TCPUDP.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253818i27BF0D68DC366334%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22TCPUDP.png%22%20alt%3D%22TCPUDP.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EAppropriate%20rsize%2Fwsize%20could%20improve%20performance.%20But%20be%20cautious%20to%20modify%20the%20default%20value%20(1MB%2F1MB)%20as%20unproper%20value%20could%20also%20inferior%20performance.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22rsizewsize.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253819i836C604389C8277E%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22rsizewsize.png%22%20alt%3D%22rsizewsize.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E2%80%83%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EThere%E2%80%99s%20no%20significant%26nbsp%3Bimpact%20on%20performance%20when%20changing%20VM's%20MTU%20%23%20from%20default%201500%20bytes%20to%209000%20bytes.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22MTU.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253820i46EF74F3E1ADBAC8%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22MTU.png%22%20alt%3D%22MTU.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E%3CSPAN%3ECost-Effective%20analysis%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EOne%20advantage%20of%20ANF%20is%20it%20provides%203%20different%20service%20level%20with%20different%20pricing%20structure.%20That%20is%2C%20users%20are%20able%20to%20change%20the%20service%20level%20and%20volume%20size%20to%20reach%20the%20most%20cost-effective%20sweet%20spot%20when%20running%20their%20applications%20on%20Azure.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EIn%20below%20chart%20it%20shows%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CSPAN%3EPremium%2025TiB%20can%20achieve%20the%20same%20performance%20(max.%20throughput%3D58%2C500%20ops%2Fsec%20while%20maintaining%20same%20response%20time)%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3EPremium%2012.5TiB%20can%20achieve%20max.%20throughput%3D54%2C000%20ops%2Fsec.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3EPremium%206.25TiB%20can%20achieve%20max.%20throughput%3D27%2C000%20ops%2Fsec.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%3EWhich%20implies%20high%20IOPS%20EDA%20workloads%20(such%20as%20the%20LSF%20events%20share)%20can%20generally%20be%20done%20on%20the%20Premium%20service%20level%20and%20without%20excessively%20large%20volumes.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22CostEffective.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253821i440867FFA980FDB4%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22CostEffective.png%22%20alt%3D%22CostEffective.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E%3CSPAN%3EScalability%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CSPAN%3EBy%20simply%20adding%20%23%20of%20volumes%20to%20ANF%2C%20max.%20throughput%20can%20scale%20linearly%2C%20and%20still%20maintaining%20low%20response%20time.%20(~500%25%20from%201%20to%205%20volumes)%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3EIn%20real%20world%2C%20EDA%20workloads%20are%20running%20on%20hundreds%20or%20thousands%20of%20nodes%20(VMs)%20connecting%20to%20the%20same%20ANF.%20Below%20chart%20shows%20more%20clients%20could%20further%20improve%20performance%20on%20either%20response%20time%20or%20overall%20throughput.%20As%20it%20surpasses%20the%20limitation%20of%20network%20bandwidth%20and%20max%20connections%20from%20one%20single%20VM.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Scalability.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253823iE34FE7D469CD8524%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Scalability.png%22%20alt%3D%22Scalability.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E2%80%83%E2%80%83%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ScalabilityTable.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253824i665CC905C4C1F489%2Fimage-size%2Fmedium%3Fv%3D1.0%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ScalabilityTable.png%22%20alt%3D%22ScalabilityTable.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%E2%80%83%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E%3CSPAN%3ESummary%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSTRONG%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EIt's%20important%20to%20keep%20in%20mind%20that%20in%20real-world%2C%20storage%20performance%20is%20impacted%20by%20a%20wide%20range%20of%20factors.%20This%20article%20is%20by%20no%20means%20to%20provide%20an%20ultimate%20guidance%2C%20but%20to%20share%20lessons%20learned%20from%20running%20the%20standard%20EDA%20benchmarking%20tools%2C%20and%20examine%20some%20generic%20performance%20best%20practice%20could%20be%20applied%20in%20your%20applications%20running%20on%20Azure.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EGenerally%2C%20the%20first%204%20options%20(A%2C%20B%2C%20C%20%26amp%3B%20D)%20are%20suggested%20to%20be%20applied%20when%20applicable.%20As%20their%20effectiveness%20can%20be%20added%20up%2C%20they%20also%20improve%20Max.%20IOPS%20and%20bandwidth%20on%20regular%20FIO%20test%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22FIO.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253826iA4A191426303A04E%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22FIO.png%22%20alt%3D%22FIO.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E2%80%83%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EAnd%20as%20stated%20please%20be%20cautious%20to%20change%20rsize%2Fwsize%20(option%20F)%20as%20it%20could%20also%20impact%20performance%20in%20different%20way.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E%3CSPAN%3EAppendix%3C%2FSPAN%3E%3C%2FSTRONG%3E%3CSPAN%3E%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E1.%20Tuning%20%2Fetc%2Fsysctl.conf%20(option%20B)%20example%20on%20Ev4%2FDv4%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-bash%22%3E%3CCODE%3Esudo%20vi%20%2Fetc%2Fsysctl.conf%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAppend%20or%20update%20the%20following%20attributes%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-bash%22%3E%3CCODE%3Enet.core.somaxconn%20%3D%2065536%0Anet.core.netdev_max_backlog%20%3D%20300000%0Anet.core.rmem_default%20%3D%2067108864%0Anet.core.wmem_default%20%3D%2067108864%0Anet.core.rmem_max%20%3D%2067108864%0Anet.core.wmem_max%20%3D%2067108864%0Anet.ipv4.tcp_rmem%20%3D%208192%2087380%2016777216%0Anet.ipv4.tcp_wmem%20%3D%208192%2087380%2016777216%0Anet.ipv4.tcp_fin_timeout%20%3D%205%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20make%20the%20change%20effective%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3Esudo%20sysctl%20-p%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E2.%20Upgrade%20Linux%20kernel%20to%205.3%2B%20to%20be%20able%20to%20utilize%20%E2%80%9Cnconnect%E2%80%9D%20(option%20C).%20Please%20note%20that%20you%20will%20need%20to%20reboot%20the%20VM%20at%20the%20end%20of%20the%20upgrade.%20So%20it%20might%20not%20be%20applicable%20for%20some%20cases.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-bash%22%3E%3CCODE%3E%23%20CentOS%2FRedhat%207%2B%0A%0Asudo%20rpm%20-Uvh%20http%3A%2F%2Fwww.elrepo.org%2Felrepo-release-7.0-2.el7.elrepo.noarch.rpm%0A%0A%23%20CenOS%2FRedhat%208%2B%0A%0Asudo%20rpm%20--import%20https%3A%2F%2Fwww.elrepo.org%2FRPM-GPG-KEY-elrepo.org%0A%0Asudo%20yum%20-y%20--enablerepo%3Delrepo-kernel%20install%20kernel-ml%0A%0Asudo%20reboot%0A%0A%23%20check%20version%3A%0A%0Auname%20-r%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22uname.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253827iDF941F383BEE8AA0%2Fimage-size%2Fmedium%3Fv%3D1.0%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22uname.png%22%20alt%3D%22uname.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E2%80%83%3C%2FP%3E%0A%3CP%3E3.%20actimeo%20and%20nocto%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EThe%20actimeo%20and%20nocto%20mount%20options%20are%20used%20primarily%20to%20increase%20raw%20performance.%20Please%20review%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fwww.netapp.com%2Fmedia%2F10720-tr-4067.pdf%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3ENetApp%20ONTAP%E2%80%99s%20Best%20Practice%20Guide%3C%2FA%3E%20for%20applicability%20of%20your%20applications.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E4.%26nbsp%3B%3CSPAN%3Emounting%20examples%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3ETCP%3A%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3Esudo%20mount%20-t%20nfs%20-o%20rw%2Cnconnect%3D16%2Cnocto%2Cactimeo%3D600%2Chard%2Crsize%3D1048576%2Cwsize%3D1048576%2Cvers%3D3%2Ctcp%2010.1.x.x%3A%2Fultravol%20ultravol%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EUDP%3A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-bash%22%3E%3CCODE%3Esudo%20mount%20-t%20nfs%20-o%20rw%2Cnconnect%3D16%2Cnocto%2Cactimeo%3D600%2Chard%2Crsize%3D1048576%2Cwsize%3D1048576%2Cvers%3D3%2Cmountproto%3Dudp%2010.1.x.x%3A%2Fultravol%20ultravol%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%E2%80%83%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-2119979%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ANF%20scalability.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F253806i22A6DFC2AEDB4CC6%2Fimage-size%2Fmedium%3Fv%3D1.0%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ANF%20scalability.png%22%20alt%3D%22ANF%20scalability.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CSPAN%3EProvide%20practical%20performance%20best%20practices.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3EExamine%20ANF%E2%80%99s%20scale-out%20capabilities%20with%20multiple%20volumes.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3ECost-effective%20analysis%20for%20users%20to%20choose%20the%20most%20suitable%20ANF%E2%80%99s%20tier%20of%20service%20level.%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2119979%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%20NetApp%20Files%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EBest%20Practice%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EEDA%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EHPC%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EPerformance%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EStorage%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E

Azure NetApp Files (ANF) was generally available on May 2019. Ever since it has been widely adopted across industries, including many silicon companies running their Electronic Design Automation (EDA) workloads on Azure. Azure NetApp Files provides 3 different service levels to ensure throughput, NFS 3.0/NFS4.1/SMB mount protocols connecting from Windows or Linux VMs, and takes only minutes to setup. Enterprise can seamlessly migrate their applications to Azure with an on-premises-like experience and performance.

 

EDA workloads are generated by SPEC SFS® benchmark suite, to “measure file server throughput and response time.” The benchmark suite generates EDA operations on the ratio of EDA_FRONTEND and EDA_BACKEND as 3:2, to simulate a classic IC-design workload. The distribution of the operations are illustrated below:

EDA workload.png

EDA workload2.png

(From SPEC SFS® 2014)

 

The goal of this article is to share lessons learned from running the SPEC SFS® EDA stress test on Azure NetApp files. Including:

  1. Provide practical performance best practices in real world.
  2. Examine ANF’s scale-out capabilities with multiple volumes.
  3. Cost-effective analysis for users to choose the most suitable ANF’s service level.

 

Architecture

The test was performed in Azure EAST US regions. Mix of Premium and Ultra service level with different sizes of volumes were tested. E64dsv4 or D64dsv4 VMs were acting as clients, which generated EDA workload operation, and reside in the same Proximity Placement Group with Accelerated Networking enabled.

The average ping latency from VMs to ANF was around 0.6~0.8 milliseconds.

Architecgure.png

The overall performance is determined by two key metrics: Operations/sec and Response Time (millisecond). The test will incrementally generate EDA workload Operations, and Response Time will be recorded accordingly. The Operations/sec also indicates the combined read/write throughput (MB/s).

 

Performance Tuning 

Below table shows the 8 different options have been examined and their performance impact. Please see Appendix for details and their applicability. If no specifically stated, NFS vers=3, mountproto=TCP, and default MTU=1500 were applied.

Performance tuning options.png

The below results shows that the first 3 (A, B & C) options can all improve response time and maximize throughput significantly, and the effectiveness can be added up.

3 options.png

NFS 4.1 shows poor performance in this test compared to NFS 3. So be cautious of using it if there’s no specific security requirements.

NFS.png

TCP shows slightly better performance than UDP (‘mountproto=udp’)

TCPUDP.png

Appropriate rsize/wsize could improve performance. But be cautious to modify the default value (1MB/1MB) as unproper value could also inferior performance.

rsizewsize.png

There’s no significant impact on performance when changing VM's MTU # from default 1500 bytes to 9000 bytes.

MTU.png

Cost-Effective analysis

One advantage of ANF is it provides 3 different service level with different pricing structure. That is, users are able to change the service level and volume size to reach the most cost-effective sweet spot when running their applications on Azure.

In below chart it shows:

  • Premium 25TiB can achieve the same performance (max. throughput=58,500 ops/sec while maintaining same response time)
  • Premium 12.5TiB can achieve max. throughput=54,000 ops/sec.
  • Premium 6.25TiB can achieve max. throughput=27,000 ops/sec.

Which implies high IOPS EDA workloads (such as the LSF events share) can generally be done on the Premium service level and without excessively large volumes.

CostEffective.png

Scalability

  • By simply adding # of volumes to ANF, max. throughput can scale linearly, and still maintaining low response time. (~500% from 1 to 5 volumes)
  • In real world, EDA workloads are running on hundreds or thousands of nodes (VMs) connecting to the same ANF. Below chart shows more clients could further improve performance on either response time or overall throughput. As it surpasses the limitation of network bandwidth and max connections from one single VM.

Scalability.png

  

ScalabilityTable.png

 

Summary 

It's important to keep in mind that in real-world, storage performance is impacted by a wide range of factors. This article is by no means to provide an ultimate guidance, but to share lessons learned from running the standard EDA benchmarking tools, and examine some generic performance best practice could be applied in your applications running on Azure.

 

Generally, the first 4 options (A, B, C & D) are suggested to be applied when applicable. As their effectiveness can be added up, they also improve Max. IOPS and bandwidth on regular FIO test:

FIO.png

And as stated please be cautious to change rsize/wsize (option F) as it could also impact performance in different way.

 

Appendix:

1. Tuning /etc/sysctl.conf (option B) example on Ev4/Dv4:

 

 

 

 

 

 

sudo vi /etc/sysctl.conf

 

 

 

 

 

 

Append or update the following attributes:

 

 

 

 

 

 

net.core.somaxconn = 65536
net.core.netdev_max_backlog = 300000
net.core.rmem_default = 67108864
net.core.wmem_default = 67108864
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_rmem = 8192 87380 16777216
net.ipv4.tcp_wmem = 8192 87380 16777216
net.ipv4.tcp_fin_timeout = 5

 

 

 

 

 

 

To make the change effective:

 

 

 

 

 

 

sudo sysctl -p

 

 

 

 

 

 

 

2. Upgrade Linux kernel to 5.3+ to be able to utilize “nconnect” (option C). Please note that you will need to reboot the VM at the end of the upgrade. So it might not be applicable for some cases.

 

 

 

 

 

 

# CentOS/Redhat 7+

sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

# CenOS/Redhat 8+

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

sudo yum -y --enablerepo=elrepo-kernel install kernel-ml

sudo reboot

# check version:

uname -r

 

 

 

 

 

 

uname.png

3. actimeo and nocto

The actimeo and nocto mount options are used primarily to increase raw performance. Please review NetApp ONTAP’s Best Practice Guide for applicability of your applications.

 

4. mounting examples:

TCP: 

 

 

 

 

 

 

sudo mount -t nfs -o rw,nconnect=16,nocto,actimeo=600,hard,rsize=1048576,wsize=1048576,vers=3,tcp 10.1.x.x:/ultravol ultravol

 

 

 

 

 

 

UDP:

 

 

 

 

 

 

sudo mount -t nfs -o rw,nconnect=16,nocto,actimeo=600,hard,rsize=1048576,wsize=1048576,vers=3,mountproto=udp 10.1.x.x:/ultravol ultravol