Linux性能优化之磁盘优化 磁盘优化有什么用( 三 )


提示:
输出显示java进程正在以大约1631.15 B/s的速率施加磁盘写负载 。其他有用的选项有-a,可以输出累计I/O而不是一段时间内的平均值,选项-o,只打印那些正在执行的磁盘I/O的进程 。
当然显示磁盘的命令还有例如sar、iosnoop、perf、blktrace等命令,这里只列举常用命令即可 。
性能调优
文件系统优化
关于文件系统优化,并没有太多的内容需要说明 。就目前的情况,Redhat Enterprise 7系列默认更换为性能更好的XFS,这也是由于XFS在性能表现确实很好的原因 。在我们使用的过程中,建议对XFS做一些简单的优化即可,比如执行格式化时指定额外的一些参数,挂载该分区时指定一些额外的挂载参数,这些都能够提高文件系统的相关性能 。
格式化时的参数:
mkfs.xfs -d agcount=256 -l size=128m,lazy-count=1,version=2 /dev/diska1
mount时的参数:
defaults,noatime,nodiratime,nobarrier,discard,allocsize=256m,logbufs=8,attr2,logbsize=256k
磁盘相关优化

  • 操作系统可调参数
包括ionice、资源控制和内核可调参数 。
ionice
Linux中的ionice命令可以设置一个进程I/O调度级别和优先级 。调度级别为整数,0表示无,不指定级别,内核会挑选一个默认值,优先级根据进程nice值选定;1表示实时,对磁盘的最高级别访问,如果误用会导致其他进程饿死;2表示尽力,默认调度级别,包括优先级 0~7,0为最高级;3表示空闲,在一段磁盘空闲的期限过后才允许进行I/O 。如下:
ionice -c 3 -p 65552
cgroup
通过cgroup为进程或进程组提供存储设备资源控制机制 。一般很少用到,不用考虑 。
可调参数
/sys/block/sda/queue/scheduler:选择I/O调度器策略,是空操作、最后期限、an还是cfq;
  • 磁盘设备可调参数
Linux上的hdparm(磁盘测试工具)工具可以设置多种磁盘设备的可调参数 。
  • 磁盘控制器可调参数