因为我技术比较菜 很多东西都是 百度+google+一些不明来历的资料 来凑并且小小总结了一下搞的,可能有些数据资料跟别人网上的一样(那应该就是我抄的他们的吧)。 我这里讲解的顺序是一块盘(我们线上的cache都是多快盘)从插到电脑上 分区 格式化 挂载 然后跑了一段时间后,后续的一些优化等等。。 1.插盘 (这个应该没啥优化的) 可能不同厂商bios里面有些设置可以提升io性能 (我猜的)(我们的机器都是摸不到的 目前我是没法在这里开始优化) 2.分区(这块也应该没啥优化吧 根据大家需求分区就行吧) 3.格式化(如果是用的ats裸盘 这里就不用了) -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种 (大家去看帮助吧) 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 |