GPFS 优化

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