LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > Linux教程 >

缓存服务器IO方面优化总结

时间:2013-12-18 12:28来源:www.shencan.net 编辑:shencan.net 点击:
最近没事总结了一下我们cache服务器的一些日常IO优化手段,也在我们线上实验了一把, 打算写个总结 怕以后能用到 (我们的cache设备都是stat的垃圾盘 没SAS SSD 这样高级货 关于这些盘的
最近没事总结了一下我们cache服务器的一些日常IO优化手段,也在我们线上实验了一把, 打算写个总结 怕以后能用到 (我们的cache设备都是stat的垃圾盘 没SAS SSD 这样高级货 关于这些盘的优化 没试过)

因为我技术比较菜  很多东西都是 百度+google+一些不明来历的资料 来凑并且小小总结了一下搞的,可能有些数据资料跟别人网上的一样(那应该就是我抄的他们的吧)。

我这里讲解的顺序是一块盘(我们线上的cache都是多快盘)从插到电脑上  分区  格式化  挂载 然后跑了一段时间后,后续的一些优化等等。。

1.插盘 (这个应该没啥优化的) 可能不同厂商bios里面有些设置可以提升io性能  (我猜的)(我们的机器都是摸不到的 目前我是没法在这里开始优化)

2.分区(这块也应该没啥优化吧 根据大家需求分区就行吧)

3.格式化(如果是用的ats裸盘 这里就不用了)
这是我们内部一个通过screen 并发格盘的一个小脚本(脚本内容就不要看了 很菜) 注意 -b  -i 参数就行
-b 是指定块大小 4096   block-size
-i 是 bytes-per-inode (能看懂这个单词吧)

4.挂载吧

还是那句 不要看脚本 看看  -o 后面的挂载参数 下面简单介绍下(也是也就是man mount的东西)
defaults  这个你懂的  Use default options: rw, suid, dev, exec, auto, nouser, and async.
async  是 异步io(默认的)
noatime         Do  not  update  inode  access times on this file system(这个能看懂吧 )
nodiratime   Do not update directory inode access times on this filesystem(跟上面一样)
data=writeback   这个得多讲下  这是ext3   日志模式下,启用写回机制 的一个参数  默认有3种  (大家去看帮助吧)
barrier=0  (前面已经采用witeback  得关闭这个 )

ok  格盘 挂载 我们目前就是这样弄的

5.磁盘调度算法修改
下面改下磁盘的IO调度 算法
cat /sys/block/sda/queue/scheduler (查看 sda盘的算法) 有 noop(fifo), as, cfq 这3种
noop多用于SAN/RAID存储系统
as多用于大文件顺序读写
cfq适于桌面应用。
修改为 deadline 调度模式 (IO 有点提升哟)
echo deadline > /sys/block/sda/queue/scheduler
修改完这个后 还需要修改 deadline的一些参数 什么 write_expire 跟  read_expire
好像网上的建议是 read_expire = 1/2 write_expire
cat  /sys/block/sdb/queue/iosched/read_expire (默认为500)
echo 1000 > /sys/block/sdb/queue/iosched/write_expire (默认为5000)
 
6.关闭ext3 日志记录功能(来着网上 线上未测试)
tune2fs -O^has_journal /dev/sdb1

7. 磁盘预读  (线上未测试)
blockdev –setra 256 /dev/sdb   256为sectors

8.修改swappiness  值(默认为60)
减少这个值 可以尽量多使用内存 不使用swap(使用swap了 cache设备性能会下降很多的 你懂的)
关于其他  swap与内存 之间的一些设置  可以去 这里看看  /proc/sys/vm/ 下面有很多东西 可以改的。

转载请保留固定链接: https://linuxeye.com/Linux/1988.html

------分隔线----------------------------
标签:缓存服务器
栏目列表
推荐内容