我管理的大多数Linux系统都具有硬件RAID控制器(主要是HP Smart Array)。他们都在运行RHEL或CentOS。
我正在寻找现实世界中的可调参数,以帮助优化设置的性能,这些设置将硬件RAID控制器与SAS磁盘(智能阵列,Perc,LSI等)和电池后备或闪存后备缓存结合在一起。假设RAID 1 + 0和多个主轴(4+个磁盘)。
我花了大量时间为低延迟和金融交易应用程序调整Linux网络设置。但是,这些选项中的许多选项都有充分的文档记录(更改发送/接收缓冲区,修改TCP窗口设置等)。工程师在存储方面正在做什么?
从历史上看,我对I / O调度电梯进行了更改,最近选择了deadline
和noop
调度程序来提高应用程序的性能。随着RHEL版本的发展,我还注意到SCSI和CCISS块设备的已编译默认值也已更改。随着时间的推移,这对建议的存储子系统设置产生了影响。但是,自从我看到任何明确的建议以来已经有一段时间了。而且我知道操作系统默认设置不是最佳的。例如,对于服务器级硬件上的部署而言,默认的128kb预读缓冲区似乎很小。
以下文章探讨了在块队列上更改预读缓存和nr_requests值对性能的影响。
http://zackreed.me/articles/54-hp-smart-array-p410-controller-tuning
http://www.overclock.net/t/515068/tuning-a-hp-smart-array-p400-with -linux-why-tuning-really-matters
http://yoshinorimatsunobu.blogspot.com/2009/04/linux-io-scheduler-queue-size-and.html
例如,建议对HP Smart Array RAID控制器进行以下更改:
echo "noop" > /sys/block/cciss\!c0d0/queue/scheduler
blockdev --setra 65536 /dev/cciss/c0d0
echo 512 > /sys/block/cciss\!c0d0/queue/nr_requests
echo 2048 > /sys/block/cciss\!c0d0/queue/read_ahead_kb
还有什么可以可靠地调整以提高存储性能的?
我在生产方案中专门寻找sysctl和sysfs选项。