我管理一系列 Windows 和 Linux 服务器。在 Windows 服务器上,我有以下性能计数器每 15 秒记录一次 CSV 文件:
瓶颈分析:
- 处理器队列长度
- 内存:页面输入/秒(从磁盘读取页面以解决硬页面错误的速率,即当系统的物理 RAM 太小时)
- 物理磁盘:当前磁盘队列长度(对于每个驱动器)
- 网络接口:输出队列长度(针对每个 NIC)
一般活动:
- 处理器时间百分比(总计)
- 总工作集(所有进程的总和)
- 内存:可用 MBytes
- 物理磁盘:字节/秒(对于每个驱动器)
- 网络接口:总字节数/秒(对于每个 NIC)
我的 Linux 服务器缺少类似的性能日志。我查看了 Sysstat ( http://sebastien.godard.pagesperso-orange.fr/ ),它看起来很有前途,尽管相当复杂。
如果我要使用 Sysstat(或其他东西),我如何设置与上述 Windows 计数器等效的 Linux?
dstat 和 collectl 是很好的工具,可以为您提供系统概览,但如果您希望获取特定信息以放入 CSV 文件,我认为最简单的方法是解析 sysstat 工具或 vmstat 的输出,或者只是解析 /proc 中的原始数据。
具体来说:
处理器队列长度:来自 /proc/loadavg 的 1 分钟平均负载
内存页面输入/输出:来自 vmstat 输出的 si/so 列
物理磁盘:iostat -x 的输出
网络接口输出队列长度:ethtool -g ethN 和 ifconfig ethN(静态值,所以可能没有多大意义?)
% processor time:参见 mpstat 或 per-CPU with "mpstat -P ALL"
总工作集:查看“free”或“vmstat -s”的输出
可用内存:free 或 vmstat -s
物理磁盘:参见 iostat -x
nic: ip -s link or netstat -i and calculate, or sar -n DEV
我想推荐另一个名为SeaLion的免费工具。它是一个基于云的监控工具,可以执行一些众所周知的系统分析命令,如
top
、uptime
、iostat
、等vmstat
,netstat
并以非常漂亮的时间轴格式呈现。这里要注意的最重要的一点是安装过程很简单。它很快就建立起来,数据很快就开始填充。如果您要监视数百台服务器,这很好。