注意:以下文档只适用于TOP接口,请谨慎使用!
应用优化--ECS-IO篇
ECS服务器以最优的状态运行,ECS硬件配置、系统问题、系统架构、网络、软件等问题都会影响到系统的性能好坏,如何定位性能问题出在哪个方面,如何解决性能问题,是ECS性能优化的一大难题。本ECS篇从这些方面,重点讲述优化CPU、内存、IO的性能问题的方法,并且提供ECS典型优化案例。
IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发展。Memchached也好,NoSql也好,这些流行技术的背后都在直接或者间接地回避IO瓶颈,从而提高系统性能。传统的物理环境部署RAID、SAN等等提高IO能力。现在云上,底层已经做好了
A.硬件配置低,系统过于忙碌,硬件配置、网络等等满足不了目前业务对IO的要求
B.过多的死进程或僵尸进程
C.数据库安装在ECS上,应用程序存在bug等
D.系统消耗过多的交换内存或虚拟内存(见内存优化部分)
Iotop-监控Linux磁盘I/O
Iotop命令同样也非常类似于top命令和Htop程序,不过它具有监控并显示实时磁盘I/O和进程的统计功能。在查找具体进程和大量使用磁盘读写进程的时候,这个工具就非常有用。
JST#iotop
Windows机器通过任务管理器或性能计数器可查看系统IO的信息
A.Cache策略,充分利用cpu和内存的资源来缓解磁盘读写压力。
B.服务器前端部署SLB,分担服务器的读写压力
C.前端部署OCS,缓存数据,提高读写速率,减轻后端服务器IO压力
D.通过监控命令,查出高IO的进程,直接杀掉,或进行应用程序优化
E. 编辑脚本将监控数据输出到log文件里。案例脚本见文档最后附件脚本
好:iowait%<20%
坏:iowait%>=35%
糟糕:iowait%>=50%
linux下监控io性能数据的脚本,仅供参考
直接贴脚本:
3、io
#!/bin/bash
CurrentDate=`date -d today '+%Y%m%d'`
CurrentTime=`date -d today '+%Y%m%d%H%M'`
mytext="$CurrentTime\t`iostat -p sda | grep -w sda`"
echo -e $mytext >> /home/www/monitor/log/io$CurrentDate.log
4、swap
#!/bin/bash
CurrentDate=`date -d today '+%Y%m%d'`
CurrentTime=`date -d today '+%Y%m%d%H%M'`
mytext="$CurrentTime\t`top -b -n 1 | grep Swap:`"
echo -e $mytext >> /home/www/monitor/log/swap$CurrentDate.log