在进行这种更改之前,请确保反复地运行vmstat以确定系统中确实正在进行大量的上下文切换工作。
与vmstat或iostat不同的是,这种方法的默认设置可能不会提供您想要的那么多信息。
在脚本的开头,我们选择vmstat1作为要被执行的命令并且每秒读取一次。
您需要理解这一概念,才能尝试解释vmstat和sar等命令的输出。
事实上,您应该使用vmstat来确定瓶颈的原因,即使在您尚未确定它是否与内存有关的时候。
如果指定了interval,vmstat将立即反复按照最新的间隔总结系统活动的概要信息。
代码的下一部分将通过vmstat命令创建一个管道,程序将在其中每秒读取一次数据。
等待几秒待FluidSynth程序激活后,即可开始处理vmstat输出。
vmstat命令通常在前台的独立xterm窗口中运行,其输出将发送到终端。
本系列的第2部分非常详细地讨论了vmstat,这是我们最喜欢的VMM监视工具之一。
本系列文章的第2部分非常详细地介绍了vmstat,这是我最喜欢的VMM监视工具之一。
第二天我又接到另一个电话,于是再次启动vmstat(请参见清单2)。
netstat的确不是vmstat和iostat意义上的监控工具。
在操作系统级,sar、vmstat和top命令都非常适合检查基本的系统健康状况。
vmstat命令可以报告关于系统的内存使用信息,以及诸如分页替换这样的VMM操作的统计信息。
如果未指定任何参数,vmstat就只会列出系统的前一次统计数据,而且不会进行刷新。
vmstat输出没有提供关于计算性文件分页的信息。
chordStats程序将读取标准的vmstat程序,并在不缓冲的情况下把通知事件写入FluidSynth的stdin。
我们喜欢使用这个命令快速地进行故障排除,特别是当希望在屏幕上显示比vmstat更丰富的信息时。
vmstat中的avm列显示访问的所有虚拟内存,即使它没有被换出。
我们在电子表格中记录了这些数字,这是我们随后用来分析vmstat日志的东西。
注意:这些统计数字是由我们在测试过程中运行的2秒钟间隔的vmstat日志生成的。
Timeinterval指定vmstat刷新的间隔,而count指定它将刷新的最大次数。
vmstat命令度量和记录测试期间CUP和虚拟内存使用量。
修改chordStats的一种简单方法是将vmstat命令替换为刷新速度更快的事件生成器。
如果给定了count,vmstat就会重复获取系统的统计数据,直到达到了所指定的count次数。
下面是在测试程序不断消耗内存时vmstat的输出。