To close the loop on this topic.   

 

The below parameters were not set by default and hence they were not showing up 
in lctl list_param commands.  I have to set them first.   

lctl set_param llite.*.max_read_ahead_mb=256

lctl set_param llite.*.max_read_ahead_per_file_mb=256

 

 

Thanks to the Lustre Community for their help to tune Lustre,  I was able to 
tune Lustre on Oracle Cloud Infrastructure to get good performance on Bare 
metal nodes with 2x25Gbps network.   We have open sourced the deployment of 
Lustre on Oracle Cloud as well as all the performance tuning done at the 
Infrastructure level as well as Lustre FS level for everyone to benefit from 
it.  

 

https://github.com/oracle-quickstart/oci-lustre

Terraform files are in :  
https://github.com/oracle-quickstart/oci-lustre/tree/master/terraform

Tuning scripts are in this folder:  
https://github.com/oracle-quickstart/oci-lustre/tree/master/scripts

 

 

As next step -  I plan to test deployment of Lustre on 100 Gbps RoCEv2 RDMA 
network (Mellanox CX5).  

 

 

Thanks, 

Pinkesh Valdria 

Oracle Cloud – Principal Solutions Architect 

https://blogs.oracle.com/cloud-infrastructure/lustre-file-system-performance-on-oracle-cloud-infrastructure

https://blogs.oracle.com/author/pinkesh-valdria

 

 

From: lustre-discuss <lustre-discuss-boun...@lists.lustre.org> on behalf of 
Pinkesh Valdria <pinkesh.vald...@oracle.com>
Date: Friday, December 13, 2019 at 11:14 AM
To: "Moreno Diego (ID SIS)" <diego.mor...@id.ethz.ch>, 
"lustre-discuss@lists.lustre.org" <lustre-discuss@lists.lustre.org>
Subject: Re: [lustre-discuss] Degraded read performance with Large Bulk IO 
(16MB RPC)

 

I ran the latest command you provided and it does not show the parameter, like 
you see.    I can do screenshare. 

 

 

[opc@lustre-client-1 ~]$ df -h

Filesystem              Size  Used Avail Use% Mounted on

/dev/sda3                39G  2.5G   36G   7% /

devtmpfs                158G     0  158G   0% /dev

tmpfs                   158G     0  158G   0% /dev/shm

tmpfs                   158G   17M  158G   1% /run

tmpfs                   158G     0  158G   0% /sys/fs/cgroup

/dev/sda1               512M   12M  501M   3% /boot/efi

10.0.3.6@tcp1:/lfsbv     50T   89M   48T   1% /mnt/mdt_bv

10.0.3.6@tcp1:/lfsnvme  185T  8.7M  176T   1% /mnt/mdt_nvme

tmpfs                    32G     0   32G   0% /run/user/1000

 

 

[opc@lustre-client-1 ~]$ lctl list_param -R llite | grep max_read_ahead

[opc@lustre-client-1 ~]$

 

So I ran this: 

 

[opc@lustre-client-1 ~]$ lctl list_param -R llite  >  llite_parameters.txt

 

There are other parameters under llite.   I attached the complete list. 

 

 

From: "Moreno Diego (ID SIS)" <diego.mor...@id.ethz.ch>
Date: Friday, December 13, 2019 at 8:36 AM
To: Pinkesh Valdria <pinkesh.vald...@oracle.com>, 
"lustre-discuss@lists.lustre.org" <lustre-discuss@lists.lustre.org>
Subject: Re: [lustre-discuss] Degraded read performance with Large Bulk IO 
(16MB RPC)

 

>From what I can see I think you just ran the wrong command (lctl list_param -R 
>* ) or it doesn’t work as you expected on 2.12.3.

 

But llite params are sure there on a *mounted* Lustre client. 

 

This will give you the parameters you’re looking for and need to modify to 
have, likely, better read performance:

 

lctl list_param -R llite | grep max_read_ahead

 

 

From: Pinkesh Valdria <pinkesh.vald...@oracle.com>
Date: Friday, 13 December 2019 at 17:33
To: "Moreno Diego (ID SIS)" <diego.mor...@id.ethz.ch>, 
"lustre-discuss@lists.lustre.org" <lustre-discuss@lists.lustre.org>
Subject: Re: [lustre-discuss] Degraded read performance with Large Bulk IO 
(16MB RPC)

 

This is how I installed lustre clients (only showing packages installed steps). 

 

 

cat > /etc/yum.repos.d/lustre.repo << EOF

[hpddLustreserver]

name=CentOS- - Lustre

baseurl=https://downloads.whamcloud.com/public/lustre/latest-release/el7/server/

gpgcheck=0

 

[e2fsprogs]

name=CentOS- - Ldiskfs

baseurl=https://downloads.whamcloud.com/public/e2fsprogs/latest/el7/

gpgcheck=0

 

[hpddLustreclient]

name=CentOS- - Lustre

baseurl=https://downloads.whamcloud.com/public/lustre/latest-release/el7/client/

gpgcheck=0

EOF

 

yum  install  lustre-client  -y

 

reboot

 

 

 

From: "Moreno Diego (ID SIS)" <diego.mor...@id.ethz.ch>
Date: Friday, December 13, 2019 at 2:55 AM
To: Pinkesh Valdria <pinkesh.vald...@oracle.com>, 
"lustre-discuss@lists.lustre.org" <lustre-discuss@lists.lustre.org>
Subject: Re: [lustre-discuss] Degraded read performance with Large Bulk IO 
(16MB RPC)

 

>From what I can see they exist on my 2.12.3 client node:

 

[root@rufus4 ~]# lctl list_param -R llite | grep max_read_ahead

llite.reprofs-ffff9f7c3b4a8800.max_read_ahead_mb

llite.reprofs-ffff9f7c3b4a8800.max_read_ahead_per_file_mb

llite.reprofs-ffff9f7c3b4a8800.max_read_ahead_whole_mb

 

Regards,

 

Diego

 

 

From: Pinkesh Valdria <pinkesh.vald...@oracle.com>
Date: Wednesday, 11 December 2019 at 17:46
To: "Moreno Diego (ID SIS)" <diego.mor...@id.ethz.ch>, 
"lustre-discuss@lists.lustre.org" <lustre-discuss@lists.lustre.org>
Subject: Re: [lustre-discuss] Degraded read performance with Large Bulk IO 
(16MB RPC)

 

I was not able to find those parameters on my client nodes,  OSS or MGS nodes.  
 Here is how I was extracting all parameters .  

 

mkdir -p lctl_list_param_R/

cd lctl_list_param_R/

lctl list_param -R *  > lctl_list_param_R

 

[opc@lustre-client-1 lctl_list_param_R]$ less lctl_list_param_R  | grep ahead

llite.lfsbv-ffff98231c3bc000.statahead_agl

llite.lfsbv-ffff98231c3bc000.statahead_max

llite.lfsbv-ffff98231c3bc000.statahead_running_max

llite.lfsnvme-ffff98232c30e000.statahead_agl

llite.lfsnvme-ffff98232c30e000.statahead_max

llite.lfsnvme-ffff98232c30e000.statahead_running_max

[opc@lustre-client-1 lctl_list_param_R]$

 

I also tried these commands:  

 

Not working: 

On client nodes

lctl get_param llite.lfsbv-*.max_read_ahead_mb

error: get_param: param_path 'llite/lfsbv-*/max_read_ahead_mb': No such file or 
directory

[opc@lustre-client-1 lctl_list_param_R]$

 

Works 

On client nodes

lctl get_param llite.*.statahead_agl

llite.lfsbv-ffff98231c3bc000.statahead_agl=1

llite.lfsnvme-ffff98232c30e000.statahead_agl=1

[opc@lustre-client-1 lctl_list_param_R]$

 

 

 

From: "Moreno Diego (ID SIS)" <diego.mor...@id.ethz.ch>
Date: Tuesday, December 10, 2019 at 2:06 AM
To: Pinkesh Valdria <pinkesh.vald...@oracle.com>, 
"lustre-discuss@lists.lustre.org" <lustre-discuss@lists.lustre.org>
Subject: Re: [lustre-discuss] Degraded read performance with Large Bulk IO 
(16MB RPC)

 

With that kind of degradation performance on read I would immediately think on 
llite’s max_read_ahead parameters on the client. Specifically these 2:

 

max_read_ahead_mb: total amount of MB allocated for read ahead, usually quite 
low for bandwidth benchmarking purposes and when there’re several files per 
client

max_read_ahead_per_file_mb: the default is quite low for 16MB RPCs (only a few 
RPCs per file)

 

You probably need to check the effect increasing both of them.

 

Regards,

 

Diego

 

 

From: lustre-discuss <lustre-discuss-boun...@lists.lustre.org> on behalf of 
Pinkesh Valdria <pinkesh.vald...@oracle.com>
Date: Tuesday, 10 December 2019 at 09:40
To: "lustre-discuss@lists.lustre.org" <lustre-discuss@lists.lustre.org>
Subject: [lustre-discuss] Degraded read performance with Large Bulk IO (16MB 
RPC)

 

I was expecting better or same read performance with Large Bulk IO (16MB RPC),  
but I see degradation in performance.   Do I need to tune any other parameter 
to benefit from Large Bulk IO?   Appreciate if I can get any pointers to 
troubleshoot further. 

 

Throughput before 

-          Read:  2563 MB/s

-          Write:  2585 MB/s

 

Throughput after

-          Read:  1527 MB/s. (down by ~1025)

-          Write:  2859 MB/s

 

 

Changes I did are: 

On oss

-          lctl set_param obdfilter.lfsbv-*.brw_size=16

 

On clients 

-          unmounted and remounted

-          lctl set_param osc.lfsbv-OST*.max_pages_per_rpc=4096  (got 
auto-updated after re-mount)

-          lctl set_param osc.*.max_rpcs_in_flight=64   (Had to manually 
increase this to 64,  since after re-mount, it was auto-set to 8,  but 
read/write performance was poor)

-          lctl set_param osc.*.max_dirty_mb=2040. (setting the value to 2048 
was failing with : Numerical result out of range error.   Previously it was set 
to 2000 when I got good performance. 

 

 

My other settings: 

-          lnetctl net add --net tcp1 --if $interface  –peer-timeout 180 
–peer-credits 128 –credits 1024

-          echo "options ksocklnd nscheds=10 sock_timeout=100 credits=2560 
peer_credits=63 enable_irq_affinity=0"  >  /etc/modprobe.d/ksocklnd.conf

-          lfs setstripe -c 1 -S 1M /mnt/mdt_bv/test1

 

_______________________________________________ lustre-discuss mailing list 
lustre-discuss@lists.lustre.org 
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.lustre.org_listinfo.cgi_lustre-2Ddiscuss-2Dlustre.org&d=DwICAg&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=HpfvG0tozSl7HgJJuyxxo2149EjwqpQDE7ytv-4sZuI&m=L9-PfWwM64mRVngdHVwvQCSft2nKU4YiEPCY5x9SDXg&s=dFLf774wg7-h2jkpXEhiPWGgLtbRtb9r9hL-oH-APec&e=
 

_______________________________________________
lustre-discuss mailing list
lustre-discuss@lists.lustre.org
http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org

Reply via email to