磁盘瓶颈分析与调优方向
1. 磁盘基本认识
磁盘是用于存储数据的,相比于内存的优点是可以大量存储数据,可持久化;缺点是读写速度慢
2.程序的使用场景
1).日志文件--长期使用
2).附件上传存储,比如头像、图片、视频等
3).数据库系统--表数据读写
4). 程序本身的代码,配置文件都是在磁盘存放起来,需要加载到内存
3.检查磁盘读写速度
1).通过df命令找到要测试的磁盘编号,如
2).dd 命令工具测试读写速度
dd命令能粗略测试硬盘IO性能,但是需要注意,执行dd命令测试硬盘IO性能,对硬盘的损害很大,不建议多次或长时间尝试,一般来说,同一型号的硬盘,测试一块/批 就可以
测试-读取速度:time dd if=/dev/sda1 of=/dev/null bs=8k count=100000
参数含义:
time有计时作用;dd用于复制-数据从磁盘读出来,放到一个不存在空间;从if读出;写到of
测试 -写速度:time dd if=/dev/zero of=/mnt/vda1 bs=8k count=100000 oflag=dsync
(oflag=dsync 每次都要持久化到硬盘, 因为写数据的时候,会经过内存,有可能被内存 暂存了)
说明:如果想看正在产生I/O的进程,可以加参数iotop -o,或者在运行过程中按o键。效果如下:
2).瓶颈分析及优化建议
例如:
web网站 -- 图片过大,占用大量的磁盘 I/O,同时也会占用大量的网络带宽;
日志 -- 控制详细程度:日志越详细,磁盘占用越大
磁盘空间是有限的,监控 磁盘空间的占用增长情况
目前的系统,主要还是数据库系统用磁盘比较多,后续再单独分析数据库性能测试及瓶颈分析