一段时间以来,咱们在网上向读者介绍了如何为Linux以及类Linux操做系统配置多种不一样的性能监控工具。在这篇文章中咱们将罗列一系列使用最频繁的性能监控工具,并对介绍到的每个工具提供了相应的简介连接,大体将其划分为两类,基于命令行的和提供图形化接口的。html
该命令整合了vmstat,iostat和ifstat三种命令。同时增长了新的特性和功能可让你能及时看到各类的资源使用状况,从而可以使你对比和整合不一样的资源使用状况。经过不一样颜色和区块布局的界面帮助你可以更加清晰容易的获取信息。它也支持将信息数据导出到cvs格式文件中,从而用其余应用程序打开,或者导入到数据库中。你能够用该命令来监控cpu,内存和网络状态随着时间的变化。python
这个使用ASCII码显示方式的命令行工具是一个显示全部进程活动的性能监控工具。它能够展现每日的系统日志以进行长期的进程活动分析,并高亮显示过载的系统使用资源。它包含了CPU,内存,交换空间,磁盘和网络层的度量指标。全部这些功能只需在终端运行atop便可。linux
# atop
固然你也能够使用交互界面来显示数据并进行排序。ios
Nmon是Nigel's Monitor缩写,它最先开发用来做为AIX的系统监控工具。若是使用在线模式,能够使用光标键在屏幕上操做实时显示在终端上的监控信息。使用捕捉模式可以将数据保存为CSV格式,方便进一步的处理和图形化展现。数据库
更多的信息参考使用nmon进行性能监控的文章。vim
这个应用可以显示缓存分配器是如何管理Linux内核中缓存的不一样类型的对象。这个命令相似于top命令,区别是它的重点是实时显示内核slab缓存信息。它可以显示按照不一样排序条件来排序显示缓存列表。它同时也可以显示一个slab层信息的统计信息的题头。举例以下:缓存
# slabtop --sort=a # slabtop -s b # slabtop -s c # slabtop -s l # slabtop -s v # slabtop -s n # slabtop -s o
更多的信息参考监控内核slab缓存的文章。网络
sar 命令能够将操做系统上所选的累积活动计数器内容信息输出到标准输出上。其基于计数值和时间间隔参数的审计系统,会按照指定的时间间隔输出指定次数的监控信息。若是时间间隔参数为设置为0,那么sar命令将会显示系统从开机到当时时刻的平均统计信息。有用的命令以下:ide
# sar -u 2 3 # sar -u -f /var/log/sa/sa05 # sar -P ALL 1 1 # sar -r 1 3 # sar -W 1 3
Saidar是一个简单且轻量的系统信息监控工具。虽然它没法提供大多性能报表,可是它可以经过一个简单明了的方式显示最有用的系统运行情况数据。你能够很容易地看到运行时间、平均负载、CPU、内存、进程、磁盘和网络接口统计信息。工具
Usage: saidar [-d delay] [-c] [-v] [-h] -d 设置更新时间(秒) -c 彩色显示 -v 显示版本号 -h 显示本帮助
做为一个广为人知的Linux工具,top是大多数的类Unix操做系统任务管理器。它能够显示当前正在运行的进程的列表,用户能够按照不一样的条件对该列表进行排序。它主要显示了系统进程对CPU和内存的使用情况。top能够快速检查是哪一个或哪几个进程挂起了你的系统。你能够在这里看到top使用的例子。 你能够在终端输入top来运行它并进入到交互模式:
交互模式的一些快捷操做: 全局命令: <回车/空格> ?, =, A, B, d, G, h, I, k, q, r, s, W, Z 统计区的命令: l, m, t, 1 任务区的命令: 外观: b, x, y, z 内容: c, f, H, o, S, u 大小: #, i, n 排序: <, >, F, O, R 色彩方案: <Ret>, a, B, b, H, M, q, S, T, w, z, 0 - 7 窗口命令: -, _, =, +, A, a, G, g, w
Sysdig是一个可以让系统管理员和开发人员之前所未有方式洞察其系统行为的监控工具。其开发团队但愿改善系统级的监控方式,经过提供关于存储,进程,网络和内存子系统的统一有序以及粒度可见的方式来进行错误排查,并能够建立系统活动记录文件以便你能够在任什么时候间轻松分析。
简单例子:
# sysdig proc.name=vim # sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd" # sysdig evt.type=chdir and user.name=root # sysdig -l # sysdig -L # sysdig -c topprocs_net # sysdig -c fdcount_by fd.sport "evt.type=accept" # sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd" # sysdig -c topprocs_file # sysdig -c fdcount_by proc.name "fd.type=file" # sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open # sysdig -c topprocs_cpu # sysdig -c topprocs_cpu evt.cpu=0 # sysdig -p"%evt.arg.path" "evt.type=chdir and user.name=root" # sysdig evt.type=open and fd.name contains /etc