Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何判断linux磁盘IO是否导致过多(> 1秒)的应用程序停顿大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个 Java应用程序执行大容量(数百MB)的连续输出(流纯文本)到大约12个文件ext3 SAN文件系统.有时,此应用程序一次暂停几秒钟.我怀疑与ext3 vsfs(Veritas Filesystem)功能相关的东西(和/或它与操作系统的交互方式)是罪魁祸首. 我可以采取哪些步骤来证实或反驳这一理论?我知道iostat和/ proc / diskstats作为起点. 修改标题不再强调日记并
我有一个 Java应用程序执行大容量(数百MB)的连续输出(流纯文本)到大约12个文件ext3 SAN文件系统.有时,此应用程序一次暂停几秒钟.我怀疑与ext3 vsfs(Veritas Filesystem)功能相关的东西(和/或它与操作系统的交互方式)是罪魁祸首.

我可以采取哪些步骤来证实或反驳这一理论?我知道iostat和/ proc / diskstats作为起点.

修改标题不再强调日记并强调“摊位”

做了一些谷歌搜索,发现至少有一篇文章似乎描述了我正在观察的行为:Solving the ext3 latency problem

附加信息

>红帽企业Linux服务器版本5.3(Tikanga)
>内核:2.6.18-194.32.1.el5
>主应用程序磁盘是光纤通道SAN:lspci | grep -i fiber>> 14:00.0光纤通道:Emulex Corporation Saturn-X:LightPulse光纤通道主机适配器(rev 03)
>装载信息:输入vxfs(rw,tmplog,largefiles,mincache = tmpcache,ioerror = mwdisablE)0 0
> cat / sys / block / VxVM123456 / queue / scheduler>> noop expectedatory [截止日期] cfq

解决方法

我的猜测是,还有一些其他进程会占用磁盘I / O容量一段时间.如果你有一个足够的内核,iotop可以帮助你找到它.

如果是这种情况,则不是关于文件系统,更不用说日志了.负责在冲突的应用程序之间进行仲裁的是I / O调度程序.一个简单的测试:检查当前的调度程序并尝试不同的调度程序.它可以在运行中完成,无需重新启动.例如,在我的桌面上检查第一个磁盘(/ dev / sda):

cat /sys/block/sda/queue/scheduler
=>  noop deadline [cfq]

表明它使用的是CFQ,这对于台式机来说是一个不错的选择,但对服务器来说并不是很好.更好地设定’截止日期’:

echo 'deadline' > /sys/block/sda/queue/scheduler
cat /sys/block/sda/queue/scheduler
=>  noop [deadline] cfq

并等待几个小时,看看它是否有所改善.如果是这样,请在启动脚本中永久设置(取决于分发)

@H_801_47@

大佬总结

以上是大佬教程为你收集整理的如何判断linux磁盘IO是否导致过多(> 1秒)的应用程序停顿全部内容,希望文章能够帮你解决如何判断linux磁盘IO是否导致过多(> 1秒)的应用程序停顿所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。