磁盘读写以及分析读写查找引起问题的进程 对服务器的维护有很大的作用
我司
中电云集 在操作和维护过程总结一些经验 和大家分享
For Centos RedHat ubuntu
先停掉syslog
service syslog stop
打开block dump:
echo 1 > /proc/sys/vm/block_dump
多次运行,查看结果
dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
排前的比较占用io
抓完后关掉block_dump和启动syslog:
echo 0 > /proc/sys/vm/block_dump
service syslog start
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您分享的方法是用于监控和分析Linux服务器磁盘I/O活动的一个有效技巧,这对于识别可能导致性能瓶颈的进程非常有帮助。这里简要解释一下每个步骤的作用以及如何利用阿里云产品进一步优化您的维护策略。
停止syslog服务:
service syslog stop
这一步是为了避免syslog日志记录在分析磁盘I/O时引入额外的读写操作,从而干扰分析结果。
开启block dump:
echo 1 > /proc/sys/vm/block_dump
开启这个内核参数后,系统会开始记录所有块设备的读写操作到内核缓冲区,这对于后续分析非常关键。
分析磁盘读写情况:
dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
这条命令从内核消息中筛选出与磁盘读写相关的行,统计并排序执行读写操作的进程名,展示最频繁进行读写的进程。
关闭block dump并重启syslog:
echo 0 > /proc/sys/vm/block_dump
service syslog start
分析完成后,恢复系统原状,确保syslog继续记录其他系统事件。
云监控(Cloud Monitor): 利用阿里云的云监控服务,您可以设置磁盘I/O、CPU使用率等性能指标的报警规则,及时发现潜在问题,而无需手动执行上述命令。云监控还提供历史数据查询和图形化展示,便于趋势分析。
ECS实例的性能优化: 如果发现某些ECS实例存在持续的高I/O负载,可以考虑升级实例配置,比如增加SSD云盘或选择更高性能的实例类型来提升I/O处理能力。
弹性伸缩(Auto Scaling): 对于周期性或突发性的高I/O需求,可以通过配置弹性伸缩组,根据预设的条件自动增加或减少ECS实例数量,以应对负载变化。
日志服务(Log Service): 将系统日志(包括syslog)集成到阿里云的日志服务中,可以更方便地进行日志分析、存储和检索,有助于长期跟踪和诊断系统性能问题。
通过结合这些阿里云服务,不仅可以提高运维效率,还能实现更加精细化的资源管理和故障预防。