|
# vxfsstat -v For example, rhel7vm10# vxfsstat -v /volmanyfiles/ | grep ino .... vxi_icache_curino 245094 vxi_iaccess 2156902 vxi_icache_inuseino 100 vxi_icache_maxino 398044 vxi_icache_peakino 398044 vxi_bcache_recycleage 114442 |
|
# time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 0m40.047s << It took 40 seconds to read the inodes from disk; this is the disk speed user 0m1.572s sys 0m9.643s |
|
# vxfsstat -i -t 5 /volmanyfiles/ 11:22:31.103 Thu 21 Jan 2016 11:22:31 AM AEDT -- absolute sample <<< first record is absolute data .... 11:22:56.109 Thu 21 Jan 2016 11:22:56 AM AEDT -- delta (5.001 sec sample) <<< subsequent data is delta between sampling Lookup, DNLC & Directory Cache Statistics 0 maximum entries in dnlc 0 total lookups 0.00% fast lookup 0 total dnlc lookup 0.00% dnlc hit rate 0 total enter 0.00 hit per enter 0 total dircache setup 0.00 calls per setup 0 total directory scan 0.00% fast directory scan inode cache statistics 393710 inodes current 398044 peak 398044 maximum 0 lookups 0.00% hit rate <<< 0% hit rate 0 inodes alloced 0 freed 36594 sec recycle age [not limited by maximum] 600 sec free age |
|
# vxfsstat -v -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}' # vxfsstat -v /volmanyfiles/ | egrep 'ino' .... vxi_icache_curino 393710 vxi_iaccess 2551685 vxi_icache_inuseino 373167 vxi_icache_maxino 398044 <<< inuseino is now 373167 vxi_icache_peakino 398044 vxi_bcache_recycleage 2171 .... |
|
# time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 0m2.202s <<< 2 seconds; this is the memory access speed. user 0m0.771s sys 0m1.367s The corresponding vxfsstat -i output. # vxfsstat -i -t 5 /volmanyfiles/ 11:30:41.574 Thu 21 Jan 2016 11:30:41 AM AEDT -- delta (5.002 sec sample) Lookup, DNLC & Directory Cache Statistics 0 maximum entries in dnlc 56622 total lookups 0.00% fast lookup 394380 total dnlc lookup 85.64% dnlc hit rate 0 total enter 337758.00 hit per enter 0 total dircache setup 0.00 calls per setup 56622 total directory scan 0.00% fast directory scan inode cache statistics 393710 inodes current 398044 peak 398044 maximum 57010 lookups 100.00% hit rate <<< 100% hit rate 0 inodes alloced 0 freed 442 sec recycle age [not limited by maximum] 600 sec free age |
|
# vxfsstat -s /volmanyfiles/ | grep master vxi_masterless_locks 393641 vxi_normalize_locks 31 <<< CFS function was called 393641 times to create masterless locks |
|
# vxfsstat -s /volmanyfiles | grep master vxi_masterless_locks 2 vxi_normalize_locks 0 |
|
# vxfsstat -v /volmanyfiles/ | egrep 'inuse' vxi_icache_inuseino 373167 vxi_icache_maxino 398044 |
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m1.870s <<< memory access speed user 0m0.810s sys 0m1.086s |
|
# vxfsstat -v /volmanyfiles | grep inuse vxi_icache_inuseino 103 vxi_icache_maxino 398044 <<< currently only 103 inodes are in memory |
|
# vxfsstat -s /volmanyfiles | egrep 'hlock|glock' | egrep 'grant|revoke'
vxi_hlockgrant 393643 vxi_hlockrevoke 694 <<< hlock grant and revoke .... vxi_rwlock_iupdat 0 vxi_glockgrant 393222 <<< glock grant vxi_glockrevoke 0 vxi_glockgrant_pbhit 0 <<< glock revoke .... |
|
# /opt/VRTSllt/lltshow -p 5
=== LLT port 5: ..... txrate=3/0/0 pkts, 0/0/0 KB per s/10s/30s (0.00 Gb/sec) <<< transmit rate .... txlatency dist (in millisec): <<< transmit latency; the lower the better 7744097 (0 ms) 28686 (1 ms) 7175 (2 ms) 2046 (3 ms) 916 (4 ms) 196 (5 ms) 357 (6 ms) 285 (7 ms) 0 (8 ms) 43 (9 ms) 0 (10ms) 0 (11ms) 0 (12ms) 0 (13ms) 0 (14ms) 0 (15ms) 3 (>=16ms) .... rxrate=3/0/0 pkts, 0/0/0 KB per s/10s/30s (0.00 Gb/sec) <<< receive rate rxlatency dist (in millisec): <<< receive latency 7606116 (0 ms) 32625 (1 ms) 8499 (2 ms) 2129 (3 ms) 604 (4 ms) 107 (5 ms) 18 (6 ms) 101 (7 ms) 3 (8 ms) 16 (9 ms) 11 (10ms) 0 (11ms) 0 (12ms) 0 (13ms) 1 (14ms) 1 (15ms) 936 (>=16ms) .... |
|
# glmstat -e # glmstat -m message all rw **g** pg **h** buf oth loop master send: GRANT 9 0 0 0 0 0 9 6 <<< GRANT REVOKE 9 0 0 0 0 0 9 3 <<< REVOKE subtotal 18 0 0 0 0 0 18 9 master recv: LOCK 9 0 0 0 0 0 9 6 RELEASE 9 0 0 0 0 0 9 3 subtotal 18 0 0 0 0 0 18 9 master total 36 0 0 0 0 0 36 18 proxy send: LOCK 6 0 0 0 0 0 6 6 RELEASE 3 0 0 0 0 0 3 3 subtotal 9 0 0 0 0 0 9 9 proxy recv: GRANT 6 0 0 0 0 0 6 6 REVOKE 3 0 0 0 0 0 3 3 subtotal 9 0 0 0 0 0 9 9 proxy total 18 0 0 0 0 0 18 18 recovery send: subtotal 0 0 recovery recv: subtotal 0 0 recovery total 0 0 send total 27 0 0 0 0 0 27 18 recv total 27 0 0 0 0 0 27 18 total 54 0 0 0 0 0 54 36 # glmstat -d |
|
# vxfsstat -v /volmanyfiles/ | egrep 'inuse' vxi_icache_inuseino 373158 vxi_icache_maxino 398044 <<< 373158 inodes are cached # vxfsstat -s /volmanyfiles | grep master vxi_masterless_locks 393641 vxi_normalize_locks 31 <<< up till now; CFS function was called 393641 times to create masterless locks, and no normalization was done |
|
# vxfsstat -v /volmanyfiles | grep inuse vxi_icache_inuseino 103 vxi_icache_maxino 398044 # vxfsstat -s /volmanyfiles | grep master vxi_masterless_locks 2 vxi_normalize_locks 0 # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 2m43.470s <<< 2 minutes 43 seconds user 0m2.207s sys 0m13.954s |
|
# while : > do > /opt/VRTSllt/lltshow -p 5 | grep xrate > sleep 5 > done txrate=13868/12683/12171 pkts, 4363/4059/3905 KB per s/10s/30s (0.03 Gb/sec) rxrate=13994/13811/13341 pkts, 3060/2997/2895 KB per s/10s/30s (0.02 Gb/sec) txrate=12956/12401/12140 pkts, 4086/3970/3894 KB per s/10s/30s (0.03 Gb/sec) |
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}' 13:06:58.001 Thu 21 Jan 2016 01:06:58 PM AEDT -- absolute sample <<< absolute <<< first record is absolute value; accumulated value since file system was mounted on this node ..... 13:14:45.833 Thu 21 Jan 2016 01:14:45 PM AEDT -- delta (10.000 sec sample) <<< delta value per 10 seconds vxi_hlockgrant 0 vxi_hlockrevoke 46064 <<< revoked 46064 h locks on node 0 in 10 seconds vxi_masterless_locks 0 vxi_normalize_locks 23043 <<< normalized 24996 locks .... vxi_glockrevoke 23022 vxi_glockgrant_pbhit 0 <<< revoked 23022 g locks |
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}'
13:07:47.238 Thu 21 Jan 2016 01:07:47 PM AEDT -- absolute sample <<< absolute accumulated values since mount <<< first record is absolute value; accumulated value since file system was mounted on this node 13:14:57.897 Thu 21 Jan 2016 01:14:57 PM AEDT -- delta (10.000 sec sample) <<< delta value per 10 seconds vxi_recv_open_mbr 0 vxi_hlock_init 23875 <<< initialized 23875 h lock in 10 seconds on node 1 vxi_hlockgrant 47725 vxi_hlockrevoke 0 <<< granted 47725 h locks .... vxi_rwlockgrant 23875 vxi_rwlockrevoke 0 <<< granted 23875 rw locks .... vxi_rwlock_iupdat 0 vxi_glockgrant 23850 <<< granted 23850 g locks .... vxi_staleowner 0 vxi_strong_pullowner 23850 <<< pulled the ownership of 23850 inodes from node 0 |
|
# vxfsstat -v /volmanyfiles/ | egrep 'inuse' vxi_icache_inuseino 310772 vxi_icache_maxino 398044 # vxfsstat -s /volmanyfiles | grep master vxi_masterless_locks 393641 vxi_normalize_locks 393635 <<< number of times CFS functions called so far |
|
# vxfsstat -v /volmanyfiles | egrep 'inuse' vxi_icache_inuseino 373166 vxi_icache_maxino 398044 # vxfsstat -s /volmanyfiles | grep master vxi_masterless_locks 2 vxi_normalize_locks 0 |
Once the CFS inode locks are normalized, each time the information of an inode with normalized lock is accessed, CFS has go through the CFS/GLM protocol to get the accurate data. This will involve sending messages through GAB and LLT.
Before Veritas Storage Foundation 6.1, every time an CFS inode is accessed on a node, CFS has to take two sets of locks of the inodes while taking the ownership. This involves a lot of GLM lock grant and revoke as shown below.
Continuing with the above example, Node 1 just pulled the ownership from Node 0 according to the previous vxfsstat -s output.
Node 0:
|
# vxfsstat -s /volmanyfiles | grep vxi_strong_pullowner vxi_staleowner 0 vxi_strong_pullowner 2 |
Node 1:
|
# vxfsstat -s /volmanyfiles | grep vxi_strong_pullowner vxi_staleowner 0 vxi_strong_pullowner 393228 <<< number of times CFS function called to pull the ownership |
Since now Node 1 has the ownership, the inode access on Node 1 will be quick.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m1.663s user 0m0.714s sys 0m0.985s |
Over time, the locks will be revoked automatically (but slowly). And the inode access performance will be degraded on this node over time.
Node 1:
|
14:48:38.984 Thu 21 Jan 2016 02:48:38 PM AEDT -- delta (10.000 sec sample)
... vxi_hlockgrant 0 vxi_hlockrevoke 50 <<< about 50 revoke per 30 seconds ... vxi_rwlockgrant 0 vxi_rwlockrevoke 50 |
Now go back to Node 0, since the inodes are now owned by Node1, accessing the inodes from Node 0 will be slow because it has to take the ownership back.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 1m49.765s user 0m2.298s sys 0m13.438s |
Node 0:
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}'
14:52:35.351 Thu 21 Jan 2016 02:52:35 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 0 vxi_hlockrevoke 32296 <<< h lock revoke ... vxi_glockrevoke 32296 vxi_glockgrant_pbhit 0 <<< g lock revoke .... |
Node 1:
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
14:52:49.006 Thu 21 Jan 2016 02:52:49 PM AEDT -- delta (10.000 sec sample) vxi_recv_open_mbr 0 vxi_hlock_init 30652 <<< h lock init vxi_hlockgrant 61305 vxi_hlockrevoke 30652 <<< h lock grant / revoke ..... vxi_inode_btranidflush 0 vxi_hlock_deinit 30652 <<< h lock deinit vxi_rwlockgrant 30653 vxi_rwlockrevoke 30652 <<< rw lock grant / revoke ..... vxi_rwlock_iupdat 0 vxi_glockgrant 30653 <<< g lock grant vxi_glockrevoke 0 vxi_glockgrant_pbhit 30653 ..... vxi_staleowner 0 vxi_strong_pullowner 30653 <<< pull ownership |
Once Node 0 has the locks back, inode access will be fast on Node 0. But if we access the node 1 again, the same lock revoke and grant activity will start all over again.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m1.720s user 0m0.684s sys 0m1.067s |
In order to minimize the lock grant and revoke when accessing the inode information, starting from SFCFS (Storage Foundation Cluster File System) 6.1 the lazy_isize_enable tunable is introduced.
The lazy_isize_enable tunable enables or disables a performance optimization in Cluster File System. When one node in a cluster is extending the file, optimization is to not reflect the updated file size immediately on other nodes. Note that if this tunable is enabled, file size reported by stat might be stale, but it will not have any impact on other file operations. You can specify the following values for lazy_isize_enable:
0 Disables the performance optimization
1 Enables the performance optimization
The default value of lazy_isize_enable is 0.
Caution :
If the application is running on Cluster File System AND file is getting written from multiple nodes in cluster and write offset is based on the size of the file (determined using stat()), then this tunable should not be turned on as it results in returning STALE file size if the tunable is turned on. An application may end up in writing to wrong offset.
lazy_isize_enable can be turned on by using the vxtune command.
|
# vxtunefs /volmanyfiles | grep lazy_isize lazy_isize_enable = 0 |
By turning on lazy_isize_enable the g lock grant and revoke are avoided and this helps the performance.
|
# vxtunefs -o lazy_isize_enable=1 /volmanyfiles
UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # vxtunefs /volmanyfiles | grep lazy_isize lazy_isize_enable = 1 # vxtunefs -o lazy_isize_enable=1 /volmanyfiles UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # vxtunefs /volmanyfiles | grep lazy_isize_enable lazy_isize_enable = 1 |
In order to make the parameters permanent across system reboot, you have to specify it in the /etc/vx/tunefstab. Refer to the vxtunefs manual page for details.
Continue with the above example, the locks of the inodes go back to Node 0 now.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m4.379s user 0m0.837s sys 0m2.355s |
Now with lazy_isize_enable turned on, we access the inodes from Node 1.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m40.971s user 0m1.920s sys 0m5.303s |
Node 0:
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
18:08:50.854 Thu 21 Jan 2016 06:08:50 PM AEDT -- delta (10.000 sec sample) ..... vxi_hlockgrant 0 vxi_hlockrevoke 97190 <<< there are still h lock revoke, but no more g lock revoke .... |
Node 1:
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}'
18:08:41.829 Thu 21 Jan 2016 06:08:41 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 95810 vxi_hlockrevoke 0 <<< h lock grant but no g lock grant .... vxi_staleowner 0 vxi_strong_pullowner 95840 <<< pull ownership ...... |
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m54.465s user 0m2.192s sys 0m6.993s # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 0m54.356s user 0m2.306s sys 0m7.277s |
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
18:21:26.254 Thu 21 Jan 2016 06:21:26 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 73310 vxi_hlockrevoke 72645 <<< h lock grant and revoke at the same time ..... vxi_staleowner 0 vxi_strong_pullowner 73310 |
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}' 18:21:28.807 Thu 21 Jan 2016 06:21:28 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 72432 vxi_hlockrevoke 72661 <<< ..... vxi_staleowner 0 vxi_strong_pullowner 72443 |
|
# vxtunefs -o lazy_isize_enable=0 /volmanyfiles UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # vxtunefs -o lazy_isize_enable=0 /volmanyfiles UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 0m54.747s user 0m2.257s sys 0m6.752s # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 1m29.402s user 0m2.369s sys 0m9.597s |
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
18:25:56.487 Thu 21 Jan 2016 06:25:56 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 73358 vxi_hlockrevoke 38365 <<< h lock grant / revoke ..... vxi_glockrevoke 38364 vxi_glockgrant_pbhit 0 <<< g lock grant .... vxi_staleowner 0 vxi_strong_pullowner 73358 # vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}' 18:25:57.716 Thu 21 Jan 2016 06:25:57 PM AEDT -- delta (10.001 sec sample) vxi_hlockgrant 38436 vxi_hlockrevoke 73576 <<< h lock grant / revoke ..... vxi_rwlock_iupdat 0 vxi_glockgrant 38436 <<< g lock grant ..... vxi_staleowner 0 vxi_strong_pullowner 38436 |
If the speed of the LLT links is 1 Gb/s or above, please tune the following LLT Flow Control parameters to take full advantage of the available bandwidth.
|
# lltconfig -F lowwater:8000 # lltconfig -F highwater:10000 # lltconfig -F rportlowwater:8000 # lltconfig -F rporthighwater:10000 # lltconfig -F window:5000 # lltconfig -F query Current LLT flow control values (in packets): lowwater = 8000 highwater = 10000 rportlowwater = 8000 rporthighwater = 10000 window = 5000 To make the setting persistent across system reboots, please add the following lines to the /etc/llttab file. set-flow lowwater:8000 set-flow highwater:10000 set-flow rportlowwater:8000 set-flow rporthighwater:10000 set-flow window:5000 Please note that after tuning these parameters, if high Snd retransmit data is observed in the lltstat output, the value of window parameter should be reduced until the retransmission rate (Snd retransmit data / Snd data packets) is less than 0.1%. The other parameters need not be changed.
# lltstat LLT statistics: 10189592 Snd data packets 4 Snd retransmit data .... |
|
# /opt/VRTSgab/gabshow.pl -port f flowcontrol
============================================================ Send side gp_xm_flwfrd(null) gp_xm_flwbck(null) gp_xm_flwctl 0 gp_xm_flwsetcnt 0 <<< number of times transmit flow control is called gp_xm_flwclrcnt 0 <<< number of times transmit flow cotnrol is cleared Receive side gp_rv_flwctl 0 gp_rv_flwsetcnt 0 <<< receive flow control set gp_rv_flwclrcnt 0 <<< receive flow control clear |
|
# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg bond0 1500 19162882 0 85590 0 17556872 0 0 0 BMmRU em1 1500 9460921 0 1 0 8789424 0 0 0 BMsRU em2 1500 9701961 0 2 0 8767448 0 0 0 BMsRU em3 1500 1986097475 223215861 83332 223215861 2157816519 0 0 0 BMRU em4 1500 2002717440 199940042 83350 199940042 2157776051 0 0 0 BMRU lo 65536 21149 0 0 0 21149 0 0 0 LRU |
|
# vxfsstat -s /volmanyfiles/ | grep master vxi_masterless_locks 393641 vxi_normalize_locks 31 <<< CFS function was called 393641 times to create masterless locks |
|
# vxfsstat -s /volmanyfiles | grep master vxi_masterless_locks 2 vxi_normalize_locks 0 |
|
# vxfsstat -v /volmanyfiles/ | egrep 'inuse' vxi_icache_inuseino 373167 vxi_icache_maxino 398044 |
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m1.870s <<< memory access speed user 0m0.810s sys 0m1.086s |
|
# vxfsstat -v /volmanyfiles | grep inuse vxi_icache_inuseino 103 vxi_icache_maxino 398044 <<< currently only 103 inodes are in memory |
|
# vxfsstat -s /volmanyfiles | egrep 'hlock|glock' | egrep 'grant|revoke'
vxi_hlockgrant 393643 vxi_hlockrevoke 694 <<< hlock grant and revoke .... vxi_rwlock_iupdat 0 vxi_glockgrant 393222 <<< glock grant vxi_glockrevoke 0 vxi_glockgrant_pbhit 0 <<< glock revoke .... |
|
# /opt/VRTSllt/lltshow -p 5
=== LLT port 5: ..... txrate=3/0/0 pkts, 0/0/0 KB per s/10s/30s (0.00 Gb/sec) <<< transmit rate .... txlatency dist (in millisec): <<< transmit latency; the lower the better 7744097 (0 ms) 28686 (1 ms) 7175 (2 ms) 2046 (3 ms) 916 (4 ms) 196 (5 ms) 357 (6 ms) 285 (7 ms) 0 (8 ms) 43 (9 ms) 0 (10ms) 0 (11ms) 0 (12ms) 0 (13ms) 0 (14ms) 0 (15ms) 3 (>=16ms) .... rxrate=3/0/0 pkts, 0/0/0 KB per s/10s/30s (0.00 Gb/sec) <<< receive rate rxlatency dist (in millisec): <<< receive latency 7606116 (0 ms) 32625 (1 ms) 8499 (2 ms) 2129 (3 ms) 604 (4 ms) 107 (5 ms) 18 (6 ms) 101 (7 ms) 3 (8 ms) 16 (9 ms) 11 (10ms) 0 (11ms) 0 (12ms) 0 (13ms) 1 (14ms) 1 (15ms) 936 (>=16ms) .... |
|
# glmstat -e # glmstat -m message all rw **g** pg **h** buf oth loop master send: GRANT 9 0 0 0 0 0 9 6 <<< GRANT REVOKE 9 0 0 0 0 0 9 3 <<< REVOKE subtotal 18 0 0 0 0 0 18 9 master recv: LOCK 9 0 0 0 0 0 9 6 RELEASE 9 0 0 0 0 0 9 3 subtotal 18 0 0 0 0 0 18 9 master total 36 0 0 0 0 0 36 18 proxy send: LOCK 6 0 0 0 0 0 6 6 RELEASE 3 0 0 0 0 0 3 3 subtotal 9 0 0 0 0 0 9 9 proxy recv: GRANT 6 0 0 0 0 0 6 6 REVOKE 3 0 0 0 0 0 3 3 subtotal 9 0 0 0 0 0 9 9 proxy total 18 0 0 0 0 0 18 18 recovery send: subtotal 0 0 recovery recv: subtotal 0 0 recovery total 0 0 send total 27 0 0 0 0 0 27 18 recv total 27 0 0 0 0 0 27 18 total 54 0 0 0 0 0 54 36 # glmstat -d |
|
# vxfsstat -v /volmanyfiles/ | egrep 'inuse' vxi_icache_inuseino 373158 vxi_icache_maxino 398044 <<< 373158 inodes are cached # vxfsstat -s /volmanyfiles | grep master vxi_masterless_locks 393641 vxi_normalize_locks 31 <<< up till now; CFS function was called 393641 times to create masterless locks, and no normalization was done |
|
# vxfsstat -v /volmanyfiles | grep inuse vxi_icache_inuseino 103 vxi_icache_maxino 398044 # vxfsstat -s /volmanyfiles | grep master vxi_masterless_locks 2 vxi_normalize_locks 0 # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 2m43.470s <<< 2 minutes 43 seconds user 0m2.207s sys 0m13.954s |
|
# while : > do > /opt/VRTSllt/lltshow -p 5 | grep xrate > sleep 5 > done txrate=13868/12683/12171 pkts, 4363/4059/3905 KB per s/10s/30s (0.03 Gb/sec) rxrate=13994/13811/13341 pkts, 3060/2997/2895 KB per s/10s/30s (0.02 Gb/sec) txrate=12956/12401/12140 pkts, 4086/3970/3894 KB per s/10s/30s (0.03 Gb/sec) |
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}' 13:06:58.001 Thu 21 Jan 2016 01:06:58 PM AEDT -- absolute sample <<< absolute <<< first record is absolute value; accumulated value since file system was mounted on this node ..... 13:14:45.833 Thu 21 Jan 2016 01:14:45 PM AEDT -- delta (10.000 sec sample) <<< delta value per 10 seconds vxi_hlockgrant 0 vxi_hlockrevoke 46064 <<< revoked 46064 h locks on node 0 in 10 seconds vxi_masterless_locks 0 vxi_normalize_locks 23043 <<< normalized 24996 locks .... vxi_glockrevoke 23022 vxi_glockgrant_pbhit 0 <<< revoked 23022 g locks |
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}'
13:07:47.238 Thu 21 Jan 2016 01:07:47 PM AEDT -- absolute sample <<< absolute accumulated values since mount <<< first record is absolute value; accumulated value since file system was mounted on this node 13:14:57.897 Thu 21 Jan 2016 01:14:57 PM AEDT -- delta (10.000 sec sample) <<< delta value per 10 seconds vxi_recv_open_mbr 0 vxi_hlock_init 23875 <<< initialized 23875 h lock in 10 seconds on node 1 vxi_hlockgrant 47725 vxi_hlockrevoke 0 <<< granted 47725 h locks .... vxi_rwlockgrant 23875 vxi_rwlockrevoke 0 <<< granted 23875 rw locks .... vxi_rwlock_iupdat 0 vxi_glockgrant 23850 <<< granted 23850 g locks .... vxi_staleowner 0 vxi_strong_pullowner 23850 <<< pulled the ownership of 23850 inodes from node 0 |
|
# vxfsstat -v /volmanyfiles/ | egrep 'inuse' vxi_icache_inuseino 310772 vxi_icache_maxino 398044 # vxfsstat -s /volmanyfiles | grep master vxi_masterless_locks 393641 vxi_normalize_locks 393635 <<< number of times CFS functions called so far |
|
# vxfsstat -v /volmanyfiles | egrep 'inuse' vxi_icache_inuseino 373166 vxi_icache_maxino 398044 # vxfsstat -s /volmanyfiles | grep master vxi_masterless_locks 2 vxi_normalize_locks 0 |
Once the CFS inode locks are normalized, each time the information of an inode with normalized lock is accessed, CFS has go through the CFS/GLM protocol to get the accurate data. This will involve sending messages through GAB and LLT.
Before Veritas Storage Foundation 6.1, every time an CFS inode is accessed on a node, CFS has to take two sets of locks of the inodes while taking the ownership. This involves a lot of GLM lock grant and revoke as shown below.
Continuing with the above example, Node 1 just pulled the ownership from Node 0 according to the previous vxfsstat -s output.
Node 0:
|
# vxfsstat -s /volmanyfiles | grep vxi_strong_pullowner vxi_staleowner 0 vxi_strong_pullowner 2 |
Node 1:
|
# vxfsstat -s /volmanyfiles | grep vxi_strong_pullowner vxi_staleowner 0 vxi_strong_pullowner 393228 <<< number of times CFS function called to pull the ownership |
Since now Node 1 has the ownership, the inode access on Node 1 will be quick.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m1.663s user 0m0.714s sys 0m0.985s |
Over time, the locks will be revoked automatically (but slowly). And the inode access performance will be degraded on this node over time.
Node 1:
|
14:48:38.984 Thu 21 Jan 2016 02:48:38 PM AEDT -- delta (10.000 sec sample)
... vxi_hlockgrant 0 vxi_hlockrevoke 50 <<< about 50 revoke per 30 seconds ... vxi_rwlockgrant 0 vxi_rwlockrevoke 50 |
Now go back to Node 0, since the inodes are now owned by Node1, accessing the inodes from Node 0 will be slow because it has to take the ownership back.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 1m49.765s user 0m2.298s sys 0m13.438s |
Node 0:
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}'
14:52:35.351 Thu 21 Jan 2016 02:52:35 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 0 vxi_hlockrevoke 32296 <<< h lock revoke ... vxi_glockrevoke 32296 vxi_glockgrant_pbhit 0 <<< g lock revoke .... |
Node 1:
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
14:52:49.006 Thu 21 Jan 2016 02:52:49 PM AEDT -- delta (10.000 sec sample) vxi_recv_open_mbr 0 vxi_hlock_init 30652 <<< h lock init vxi_hlockgrant 61305 vxi_hlockrevoke 30652 <<< h lock grant / revoke ..... vxi_inode_btranidflush 0 vxi_hlock_deinit 30652 <<< h lock deinit vxi_rwlockgrant 30653 vxi_rwlockrevoke 30652 <<< rw lock grant / revoke ..... vxi_rwlock_iupdat 0 vxi_glockgrant 30653 <<< g lock grant vxi_glockrevoke 0 vxi_glockgrant_pbhit 30653 ..... vxi_staleowner 0 vxi_strong_pullowner 30653 <<< pull ownership |
Once Node 0 has the locks back, inode access will be fast on Node 0. But if we access the node 1 again, the same lock revoke and grant activity will start all over again.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m1.720s user 0m0.684s sys 0m1.067s |
In order to minimize the lock grant and revoke when accessing the inode information, starting from SFCFS (Storage Foundation Cluster File System) 6.1 the lazy_isize_enable tunable is introduced.
The lazy_isize_enable tunable enables or disables a performance optimization in Cluster File System. When one node in a cluster is extending the file, optimization is to not reflect the updated file size immediately on other nodes. Note that if this tunable is enabled, file size reported by stat might be stale, but it will not have any impact on other file operations. You can specify the following values for lazy_isize_enable:
0 Disables the performance optimization
1 Enables the performance optimization
The default value of lazy_isize_enable is 0.
Caution :
If the application is running on Cluster File System AND file is getting written from multiple nodes in cluster and write offset is based on the size of the file (determined using stat()), then this tunable should not be turned on as it results in returning STALE file size if the tunable is turned on. An application may end up in writing to wrong offset.
lazy_isize_enable can be turned on by using the vxtune command.
|
# vxtunefs /volmanyfiles | grep lazy_isize lazy_isize_enable = 0 |
By turning on lazy_isize_enable the g lock grant and revoke are avoided and this helps the performance.
|
# vxtunefs -o lazy_isize_enable=1 /volmanyfiles
UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # vxtunefs /volmanyfiles | grep lazy_isize lazy_isize_enable = 1 # vxtunefs -o lazy_isize_enable=1 /volmanyfiles UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # vxtunefs /volmanyfiles | grep lazy_isize_enable lazy_isize_enable = 1 |
In order to make the parameters permanent across system reboot, you have to specify it in the /etc/vx/tunefstab. Refer to the vxtunefs manual page for details.
Continue with the above example, the locks of the inodes go back to Node 0 now.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m4.379s user 0m0.837s sys 0m2.355s |
Now with lazy_isize_enable turned on, we access the inodes from Node 1.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m40.971s user 0m1.920s sys 0m5.303s |
Node 0:
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
18:08:50.854 Thu 21 Jan 2016 06:08:50 PM AEDT -- delta (10.000 sec sample) ..... vxi_hlockgrant 0 vxi_hlockrevoke 97190 <<< there are still h lock revoke, but no more g lock revoke .... |
Node 1:
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}'
18:08:41.829 Thu 21 Jan 2016 06:08:41 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 95810 vxi_hlockrevoke 0 <<< h lock grant but no g lock grant .... vxi_staleowner 0 vxi_strong_pullowner 95840 <<< pull ownership ...... |
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m54.465s user 0m2.192s sys 0m6.993s # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 0m54.356s user 0m2.306s sys 0m7.277s |
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
18:21:26.254 Thu 21 Jan 2016 06:21:26 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 73310 vxi_hlockrevoke 72645 <<< h lock grant and revoke at the same time ..... vxi_staleowner 0 vxi_strong_pullowner 73310 |
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}' 18:21:28.807 Thu 21 Jan 2016 06:21:28 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 72432 vxi_hlockrevoke 72661 <<< ..... vxi_staleowner 0 vxi_strong_pullowner 72443 |
|
# vxtunefs -o lazy_isize_enable=0 /volmanyfiles UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # vxtunefs -o lazy_isize_enable=0 /volmanyfiles UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 0m54.747s user 0m2.257s sys 0m6.752s # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 1m29.402s user 0m2.369s sys 0m9.597s |
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
18:25:56.487 Thu 21 Jan 2016 06:25:56 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 73358 vxi_hlockrevoke 38365 <<< h lock grant / revoke ..... vxi_glockrevoke 38364 vxi_glockgrant_pbhit 0 <<< g lock grant .... vxi_staleowner 0 vxi_strong_pullowner 73358 # vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}' 18:25:57.716 Thu 21 Jan 2016 06:25:57 PM AEDT -- delta (10.001 sec sample) vxi_hlockgrant 38436 vxi_hlockrevoke 73576 <<< h lock grant / revoke ..... vxi_rwlock_iupdat 0 vxi_glockgrant 38436 <<< g lock grant ..... vxi_staleowner 0 vxi_strong_pullowner 38436 |
If the speed of the LLT links is 1 Gb/s or above, please tune the following LLT Flow Control parameters to take full advantage of the available bandwidth.
|
# lltconfig -F lowwater:8000 # lltconfig -F highwater:10000 # lltconfig -F rportlowwater:8000 # lltconfig -F rporthighwater:10000 # lltconfig -F window:5000 # lltconfig -F query Current LLT flow control values (in packets): lowwater = 8000 highwater = 10000 rportlowwater = 8000 rporthighwater = 10000 window = 5000 To make the setting persistent across system reboots, please add the following lines to the /etc/llttab file. set-flow lowwater:8000 set-flow highwater:10000 set-flow rportlowwater:8000 set-flow rporthighwater:10000 set-flow window:5000 Please note that after tuning these parameters, if high Snd retransmit data is observed in the lltstat output, the value of window parameter should be reduced until the retransmission rate (Snd retransmit data / Snd data packets) is less than 0.1%. The other parameters need not be changed.
# lltstat LLT statistics: 10189592 Snd data packets 4 Snd retransmit data .... |
|
# /opt/VRTSgab/gabshow.pl -port f flowcontrol
============================================================ Send side gp_xm_flwfrd(null) gp_xm_flwbck(null) gp_xm_flwctl 0 gp_xm_flwsetcnt 0 <<< number of times transmit flow control is called gp_xm_flwclrcnt 0 <<< number of times transmit flow cotnrol is cleared Receive side gp_rv_flwctl 0 gp_rv_flwsetcnt 0 <<< receive flow control set gp_rv_flwclrcnt 0 <<< receive flow control clear |
|
# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg bond0 1500 19162882 0 85590 0 17556872 0 0 0 BMmRU em1 1500 9460921 0 1 0 8789424 0 0 0 BMsRU em2 1500 9701961 0 2 0 8767448 0 0 0 BMsRU em3 1500 1986097475 223215861 83332 223215861 2157816519 0 0 0 BMRU em4 1500 2002717440 199940042 83350 199940042 2157776051 0 0 0 BMRU lo 65536 21149 0 0 0 21149 0 0 0 LRU |
Once the CFS inode locks are normalized, each time the information of an inode with normalized lock is accessed, CFS has go through the CFS/GLM protocol to get the accurate data. This will involve sending messages through GAB and LLT.
Before Veritas Storage Foundation 6.1, every time an CFS inode is accessed on a node, CFS has to take two sets of locks of the inodes while taking the ownership. This involves a lot of GLM lock grant and revoke as shown below.
Continuing with the above example, Node 1 just pulled the ownership from Node 0 according to the previous vxfsstat -s output.
Node 0:
|
# vxfsstat -s /volmanyfiles | grep vxi_strong_pullowner vxi_staleowner 0 vxi_strong_pullowner 2 |
Node 1:
|
# vxfsstat -s /volmanyfiles | grep vxi_strong_pullowner vxi_staleowner 0 vxi_strong_pullowner 393228 <<< number of times CFS function called to pull the ownership |
Since now Node 1 has the ownership, the inode access on Node 1 will be quick.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m1.663s user 0m0.714s sys 0m0.985s |
Over time, the locks will be revoked automatically (but slowly). And the inode access performance will be degraded on this node over time.
Node 1:
|
14:48:38.984 Thu 21 Jan 2016 02:48:38 PM AEDT -- delta (10.000 sec sample)
... vxi_hlockgrant 0 vxi_hlockrevoke 50 <<< about 50 revoke per 30 seconds ... vxi_rwlockgrant 0 vxi_rwlockrevoke 50 |
Now go back to Node 0, since the inodes are now owned by Node1, accessing the inodes from Node 0 will be slow because it has to take the ownership back.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 1m49.765s user 0m2.298s sys 0m13.438s |
Node 0:
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}'
14:52:35.351 Thu 21 Jan 2016 02:52:35 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 0 vxi_hlockrevoke 32296 <<< h lock revoke ... vxi_glockrevoke 32296 vxi_glockgrant_pbhit 0 <<< g lock revoke .... |
Node 1:
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
14:52:49.006 Thu 21 Jan 2016 02:52:49 PM AEDT -- delta (10.000 sec sample) vxi_recv_open_mbr 0 vxi_hlock_init 30652 <<< h lock init vxi_hlockgrant 61305 vxi_hlockrevoke 30652 <<< h lock grant / revoke ..... vxi_inode_btranidflush 0 vxi_hlock_deinit 30652 <<< h lock deinit vxi_rwlockgrant 30653 vxi_rwlockrevoke 30652 <<< rw lock grant / revoke ..... vxi_rwlock_iupdat 0 vxi_glockgrant 30653 <<< g lock grant vxi_glockrevoke 0 vxi_glockgrant_pbhit 30653 ..... vxi_staleowner 0 vxi_strong_pullowner 30653 <<< pull ownership |
Once Node 0 has the locks back, inode access will be fast on Node 0. But if we access the node 1 again, the same lock revoke and grant activity will start all over again.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m1.720s user 0m0.684s sys 0m1.067s |
In order to minimize the lock grant and revoke when accessing the inode information, starting from SFCFS (Storage Foundation Cluster File System) 6.1 the lazy_isize_enable tunable is introduced.
The lazy_isize_enable tunable enables or disables a performance optimization in Cluster File System. When one node in a cluster is extending the file, optimization is to not reflect the updated file size immediately on other nodes. Note that if this tunable is enabled, file size reported by stat might be stale, but it will not have any impact on other file operations. You can specify the following values for lazy_isize_enable:
0 Disables the performance optimization
1 Enables the performance optimization
The default value of lazy_isize_enable is 0.
Caution :
If the application is running on Cluster File System AND file is getting written from multiple nodes in cluster and write offset is based on the size of the file (determined using stat()), then this tunable should not be turned on as it results in returning STALE file size if the tunable is turned on. An application may end up in writing to wrong offset.
lazy_isize_enable can be turned on by using the vxtune command.
|
# vxtunefs /volmanyfiles | grep lazy_isize lazy_isize_enable = 0 |
By turning on lazy_isize_enable the g lock grant and revoke are avoided and this helps the performance.
|
# vxtunefs -o lazy_isize_enable=1 /volmanyfiles
UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # vxtunefs /volmanyfiles | grep lazy_isize lazy_isize_enable = 1 # vxtunefs -o lazy_isize_enable=1 /volmanyfiles UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # vxtunefs /volmanyfiles | grep lazy_isize_enable lazy_isize_enable = 1 |
In order to make the parameters permanent across system reboot, you have to specify it in the /etc/vx/tunefstab. Refer to the vxtunefs manual page for details.
Continue with the above example, the locks of the inodes go back to Node 0 now.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m4.379s user 0m0.837s sys 0m2.355s |
Now with lazy_isize_enable turned on, we access the inodes from Node 1.
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m40.971s user 0m1.920s sys 0m5.303s |
Node 0:
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
18:08:50.854 Thu 21 Jan 2016 06:08:50 PM AEDT -- delta (10.000 sec sample) ..... vxi_hlockgrant 0 vxi_hlockrevoke 97190 <<< there are still h lock revoke, but no more g lock revoke .... |
Node 1:
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}'
18:08:41.829 Thu 21 Jan 2016 06:08:41 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 95810 vxi_hlockrevoke 0 <<< h lock grant but no g lock grant .... vxi_staleowner 0 vxi_strong_pullowner 95840 <<< pull ownership ...... |
|
# time find /volmanyfiles/manyfiles -ls | wc -l
393604 real 0m54.465s user 0m2.192s sys 0m6.993s # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 0m54.356s user 0m2.306s sys 0m7.277s |
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
18:21:26.254 Thu 21 Jan 2016 06:21:26 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 73310 vxi_hlockrevoke 72645 <<< h lock grant and revoke at the same time ..... vxi_staleowner 0 vxi_strong_pullowner 73310 |
|
# vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}' 18:21:28.807 Thu 21 Jan 2016 06:21:28 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 72432 vxi_hlockrevoke 72661 <<< ..... vxi_staleowner 0 vxi_strong_pullowner 72443 |
|
# vxtunefs -o lazy_isize_enable=0 /volmanyfiles UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # vxtunefs -o lazy_isize_enable=0 /volmanyfiles UX:vxfs vxtunefs: INFO: V-3-22525: Parameters successfully set for /volmanyfiles # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 0m54.747s user 0m2.257s sys 0m6.752s # time find /volmanyfiles/manyfiles -ls | wc -l 393604 real 1m29.402s user 0m2.369s sys 0m9.597s |
|
# vxfsstat -s -t 10 /volmanyfiles/ | awk '$2 != 0 || $4 != 0 {print}'
18:25:56.487 Thu 21 Jan 2016 06:25:56 PM AEDT -- delta (10.000 sec sample) vxi_hlockgrant 73358 vxi_hlockrevoke 38365 <<< h lock grant / revoke ..... vxi_glockrevoke 38364 vxi_glockgrant_pbhit 0 <<< g lock grant .... vxi_staleowner 0 vxi_strong_pullowner 73358 # vxfsstat -s /volmanyfiles/ -t 10 | awk '$2 != 0 || $4 != 0 {print}' 18:25:57.716 Thu 21 Jan 2016 06:25:57 PM AEDT -- delta (10.001 sec sample) vxi_hlockgrant 38436 vxi_hlockrevoke 73576 <<< h lock grant / revoke ..... vxi_rwlock_iupdat 0 vxi_glockgrant 38436 <<< g lock grant ..... vxi_staleowner 0 vxi_strong_pullowner 38436 |
If the speed of the LLT links is 1 Gb/s or above, please tune the following LLT Flow Control parameters to take full advantage of the available bandwidth.
|
# lltconfig -F lowwater:8000 # lltconfig -F highwater:10000 # lltconfig -F rportlowwater:8000 # lltconfig -F rporthighwater:10000 # lltconfig -F window:5000 # lltconfig -F query Current LLT flow control values (in packets): lowwater = 8000 highwater = 10000 rportlowwater = 8000 rporthighwater = 10000 window = 5000 To make the setting persistent across system reboots, please add the following lines to the /etc/llttab file. set-flow lowwater:8000 set-flow highwater:10000 set-flow rportlowwater:8000 set-flow rporthighwater:10000 set-flow window:5000 Please note that after tuning these parameters, if high Snd retransmit data is observed in the lltstat output, the value of window parameter should be reduced until the retransmission rate (Snd retransmit data / Snd data packets) is less than 0.1%. The other parameters need not be changed.
# lltstat LLT statistics: 10189592 Snd data packets 4 Snd retransmit data .... |
|
# /opt/VRTSgab/gabshow.pl -port f flowcontrol
============================================================ Send side gp_xm_flwfrd(null) gp_xm_flwbck(null) gp_xm_flwctl 0 gp_xm_flwsetcnt 0 <<< number of times transmit flow control is called gp_xm_flwclrcnt 0 <<< number of times transmit flow cotnrol is cleared Receive side gp_rv_flwctl 0 gp_rv_flwsetcnt 0 <<< receive flow control set gp_rv_flwclrcnt 0 <<< receive flow control clear |
|
# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg bond0 1500 19162882 0 85590 0 17556872 0 0 0 BMmRU em1 1500 9460921 0 1 0 8789424 0 0 0 BMsRU em2 1500 9701961 0 2 0 8767448 0 0 0 BMsRU em3 1500 1986097475 223215861 83332 223215861 2157816519 0 0 0 BMRU em4 1500 2002717440 199940042 83350 199940042 2157776051 0 0 0 BMRU lo 65536 21149 0 0 0 21149 0 0 0 LRU |