- 所有节点需和同一个时钟源严格同步时钟
- 一些文件系统操作在defaultHelperNodes上面运行,默认是所有节点,设置为NSD节点可能获得更好的性能
- maxMBpS是每个节点的GPFS的吞吐量,可设置为节点IO吞吐量的两倍,特别是IO节点
- 默认是2048;单路FDR设置1200,单路QDR设置8000,双路万兆设置5000
- GPFS的NSD节点如为专用IO节点,NSD节点没有数据访问则不会缓存任何数据,但是缓存可以为NSD工作线程所用,故可进行如下优化:
- 增加pagepool的大小
- 将nsdBufSpace设置为最大值(70%)
- 磁盘系统优化
- RAID segment size × 数据盘个数 = stripe size,GPFS block size应整倍数于stripe size
- GPFS block size应整倍数于HBA卡最大IO尺寸
- 最好倍数都是1
- /sys/block/*/queue/max_sectors_kb
- 存储的缓存策略
- 顺序IO负载:启用读缓存,禁用任何形式的预读
- 随机IO负载和Metadata:启用读写缓存
- 对于使用大量文件的GPFS节点,特别是登录节点、NFS/SMB输出节点、登录节点,可进行如下优化:
- 提高maxFilesToCache的值,这是缓存文件metadata的数量,最好能提高到并发打开文件数加上最近使用的文件数
- 在Linux上面maxStatCache是无效的,所以需要设定maxStatCache为一个较小的值,如512
- 按照maxFilesToCache × 3 KB + maxStatCache × 400 bytes估算内存消耗,增加的内存不在pagepool中
- 增加pagepool的大小,修改pagepoolMaxPhysMemPct可提高pagepool的上限
- 网络优化
- net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
net.ipv4.tcp_rmem = 4096 262144 8388608
net.ipv4.tcp_wmem = 4096 262144 8388608 - GPFS的socketMaxListenConnections和系统的net.core.somaxconn设置为集群节点数量
- net.core.rmem_max = 8388608
- sharedMemLimit和maxBufferDescs等看mmfsadm dump fs | head -8输出结果决定是否需要增加
- 文件系统的-n参数匹配集群节点数
- 后端由大量磁盘或固态盘组成NSD设置ignorePrefetchLUNCount=yes
- 用mmlsconfig和mmdiag –config可以查看配置