<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Menlo;
        panose-1:2 11 6 9 3 8 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
p.p1, li.p1, div.p1
        {mso-style-name:p1;
        margin:0in;
        margin-bottom:.0001pt;
        background:white;
        font-size:9.0pt;
        font-family:Menlo;
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt'>Lustre experts, <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>I recently installed Lustre for the first time.  Its working (so I am happy),  but now I am trying to do some performance testing/tuning.   My goal is to run SAS workload and use Lustre as the shared file system for SAS Grid.    Later,  do tuning of Lustre for generic HPC workload.   <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Through Google search,  I read articles on Lustre and recommendation for tuning from LUG conference slides, etc <o:p></o:p></span></p><p class=p1><a href="https://cpb-us-e1.wpmucdn.com/blogs.rice.edu/dist/0/2327/files/2014/03/Fragalla.pdf">https://cpb-us-e1.wpmucdn.com/blogs.rice.edu/dist/0/2327/files/2014/03/Fragalla.pdf</a><o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt'><a href="http://cdn.opensfs.org/wp-content/uploads/2019/07/LUG2019-Sysadmin-tutorial.pdf">http://cdn.opensfs.org/wp-content/uploads/2019/07/LUG2019-Sysadmin-tutorial.pdf</a><o:p></o:p></span></p><p class=MsoNormal><a href="http://support.sas.com/rnd/scalability/grid/SGMonAWS.pdf">http://support.sas.com/rnd/scalability/grid/SGMonAWS.pdf</a><o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>I have results of IBM Spectrum Scale (GPFS) running on same hardware/software stack and based on Lustre tuning I have done,  I am not getting optimal performance.    My understanding was that Lustre can deliver better performance compare to GPFS, if tuned correctly.  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>I have tried, changing the following:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Use Stripe count =1, 4, 8, 16, 24 , -1 (to stripe across all OSTs). And progressive file layout: lfs setstripe -E 256M -c 1 -E 4G -c 4 -E -1 -c -1 -S 4M  /mnt/mdt_bv<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Use Stripe Size:  default (1M),  4M,  64K (since SAS apps uses this).<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>SAS Grid uses large-block, sequential IO patterns. (Block size: 64K, 128K, 256K,  - 64K is their preferred value).   <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Question 1:  How should I tune the Stripe Count and Stripe Size  for the above.  Also should I use Progressive Stripe Layout? <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>So appreciate, if I can get some feedback on tuning I have done and if its correct and if I am missing anything.  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Details:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>It’s a cloud based solution – Oracle Cloud Infrastructure.   Installed Lustre using instructions on WhamCloud. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>All running CentOS 7.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>MGS -1 node (shared with MDS), MDS -1 node, OSS -3 nodes.    All nodes are Baremetal machines (no VM) with  52 physical cores, 768GB RAM and have 2 NICs (2x25gbps ethernet, no dual bonding).   1 NIC is configured to connect to Block Storage disks.  2<sup>nd</sup> NiC is configured to talk to clients.   So LNET is configured with 2<sup>nd</sup> NIC.       Each OSS is connected to 10 Block Volume disk, 800GB each.   So 10 OSTs per OSS.   Total of 30 OSTs (21TB storage) .  Have 1 MDT (800GB) attached to MDS.   <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Clients are 24 physical cores VMs,  320GB RAM, 1 NIC (24.6gbps).  Using 3 clients in the above setup.  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>On all nodes (MDS/OSS/Clients): <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>###########################<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>### OS Performance tuning<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>###########################<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>setenforce 0<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>echo "<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>*          hard   memlock           unlimited<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>*          soft    memlock           unlimited<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>" >> /etc/security/limits.conf<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'># The below applies for both compute and server nodes (storage)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>cd /usr/lib/tuned/<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>cp -r throughput-performance/ sas-performance<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>echo "#<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'># tuned configuration<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>#<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>[main]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>include=throughput-performance<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>summary=Broadly applicable tuning that provides excellent performance across a variety of common server workloads<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>[disk]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>devices=!dm-*, !sda1, !sda2, !sda3<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>readahead=>4096<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>[cpu]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>force_latency=1<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>governor=performance<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>energy_perf_bias=performance<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>min_perf_pct=100<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>[vm]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>transparent_huge_pages=never<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>[sysctl]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>kernel.sched_min_granularity_ns = 10000000<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>kernel.sched_wakeup_granularity_ns = 15000000<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>vm.dirty_ratio = 30<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>vm.dirty_background_ratio = 10<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>vm.swappiness=30<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>" > sas-performance/tuned.conf<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>tuned-adm profile sas-performance<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'># Display active profile<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>tuned-adm active<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>   <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Networking: <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>All NICs are configured to use MTU – 9000<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Block Volumes/Disks <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>For all OSTs/MDT: <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>cat /sys/block/$disk/queue/max_hw_sectors_kb <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>32767<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>echo “32767” > /sys/block/$disk/queue/max_sectors_kb ;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>echo "192" > /sys/block/$disk/queue/nr_requests ;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>echo "deadline" > /sys/block/$disk/queue/scheduler ;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>echo "0" > /sys/block/$disk/queue/read_ahead_kb ;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>echo "68" > /sys/block/$disk/device/timeout ;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Only OSTs: <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>lctl set_param osd-ldiskfs.*.readcache_max_filesize=2M<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>   <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Lustre clients:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>lctl set_param osc.*.checksums=0<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>lctl set_param timeout=600<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>#lctl set_param ldlm_timeout=200  - This fails with below error <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>#error: set_param: param_path 'ldlm_timeout': No such file or directory<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>lctl set_param ldlm_timeout=200<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>lctl set_param at_min=250<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>lctl set_param at_max=600<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>lctl set_param ldlm.namespaces.*.lru_size=128<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>lctl set_param osc.*.max_rpcs_in_flight=32<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>lctl set_param osc.*.max_dirty_mb=256<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>lctl set_param debug="+neterror"<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'># <a href="https://cpb-us-e1.wpmucdn.com/blogs.rice.edu/dist/0/2327/files/2014/03/Fragalla.pdf">https://cpb-us-e1.wpmucdn.com/blogs.rice.edu/dist/0/2327/files/2014/03/Fragalla.pdf</a> - says turn off checksum at network level<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>ethtool -K ens3 rx off tx off<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Lustre mounted with  -o flock option<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>mount -t lustre -o flock ${mgs_ip}@tcp1:/$fsname $mount_point<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Once again, appreciate any guidance or help you can provide or you can point me to docs, articles, which will be helpful for me. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Pinkesh Valdria<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Principal Solutions Architect – Big Data & HPC<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Oracle Cloud Infrastructure – Seattle <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>+1-206-234-4314. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p></div></body></html>