磁盘瓶颈分析与调优方向

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 每次都要持久化到硬盘, 因为写数据的时候,会经过内存,有可能被内存 暂存了) 

 

 

4. 磁盘监控工具 iotop

1). 安装及运行

ubantu下使用安装命令:

sudo apt-get install iotop

安装成功后在终端运行iotop,效果如图:

 

 

说明:如果想看正在产生I/O的进程,可以加参数iotop -o,或者在运行过程中按o键。效果如下:

 

 

 

2).瓶颈分析及优化建议

例如:

web网站 -- 图片过大,占用大量的磁盘 I/O,同时也会占用大量的网络带宽;
日志 -- 控制详细程度:日志越详细,磁盘占用越大
磁盘空间是有限的,监控 磁盘空间的占用增长情况

目前的系统,主要还是数据库系统用磁盘比较多,后续再单独分析数据库性能测试及瓶颈分析

 

posted @ 2023-03-02 23:25  我是小菜鸡丫丫  阅读(59)  评论(0编辑  收藏  举报