`
luoqiaowen
  • 浏览: 9117 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

你需要知道的 16 个 Linux 服务器监控命令

 
阅读更多

如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。

有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个非常棒而且专业的工具 YaST,KDE 的 KDE System Guard 同样很出色。当然,要使用这些工具,你必须在服务器跟前进行操作,而且这些 GUI 的程序占用了很多系统资源,所以说,尽管 GUI 用来做基本的服务器健康状态监测挺好,但如果你想知道真正发生什么,请关掉 GUI 开始命令行之旅吧。

你应该只在需要的时候去启动 GUI ,不用的时候关掉它。如果要让服务器保持最佳性能,你应该将 Linux 服务器的运行级别 runlevel 设置为 3 ,就是控制台模式,当你需要图形化桌面的时候使用 startx 命令来启动它。

如果你的服务器启动后就直接进入图形界面,你需要修改配置 /etc/inittab 找到 initdefault 一样,将 id:5:initdefault 修改为 id:3:initdefault。

如果你没找到 /etc/inittab 文件,那就创建一个新的,文件内容增加 id:3 这么一行。这样下次服务器启动的时候就不会进入图形界面。如果你不想等到服务器重启的时候才生效,你可以执行 init 3 这个命令。

一旦你的服务器是在控制台模式下运行,你就可以开始我们接下来的内容。

iostat

iostat 命令用来显示存储子系统的详细信息,通常用它来监控磁盘 I/O 的情况。要特别注意 iostat 统计结果中的 %iowait 值,太大了表明你的系统存储子系统性能低下。

meminfo 和 free

Meminfo 可让你获取内存的详细信息,你可以使用 cat 和 grep 命令来显示 meminfo 信息:

1 cat /proc/meminfo

另外你可以使用 free 命令来显示动态的内存使用信息,free 只是给你大概的内存信息,而 meminfo 提供的信息更加详细。例如在 oschina 上的 free 命令执行结果:

mpstat

mpstat mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

再来看看 oschina 上的 mpstat 命令执行结果:

关于 mpstat 执行结果中的参数意思请参考此贴

netstat

Netstat 和 ps 命令类似,是 Linux 管理员基本上每天都会用的工具,它显示了大量跟网络相关的信息,例如 socket 的使用、路由、接口、协议、网络等等,下面是一些常用的参数:

1 -a Show all socket information
2 -r Show routing information
3 -i Show network interface statistics
4 -s Show network protocol statistics

nmon

Nmon, 是 Nigel's Monitor 的缩写,是一个使用很普遍的开源工具,用以监控 Linux 系统的性能。Nmon 监控多个子系统的性能数据,例如处理器的使用率、内存使用率、队列、磁盘I/O统计、网络I/O统计、内存页处理和进程信息。Nmon 也提供了一个图形化的工具:

sjvn_LinuxServerMonitoring_nmon.png

要运行 nmon,你可以在命令行中启动它,然后选择要监控的子系统,这些子系统都对应有一个快捷键,例如输入 c 可查看 CPU 信息,m用于查看内存,d用来查看磁盘信息等,你也可以使用 -f 命令将 nmon 的执行结果保存到一个 CSV 文件中,便于日后分析。

在每日的监控工作中,我发现 nmon 是我最常用的工具。

pmap

pmap 命令用来报告每个进程占用内存的详细情况,可用来看是否有进程超支了,该命令需要进程 id 作为参数。

ps 和 pstree

pspstree 命令是 Linux 系统管理员最好的朋友,都可以用来列表正在运行的所有进程。ps 告诉你每个进程占用的内存和 CPU 处理时间,而 pstree 显示的信息没那么详细,但它以树形结构显示进程之间的依赖关系,包括子进程信息。一旦发现某个进程有问题,你可以使用 kill 来杀掉它。

sar

sar 程序是系统监控工具里的瑞士军刀。该程序包含三个工具:sar 用来显示数据,sa1 和 sa2 用来收集数据并保存。sar 可用来显示 CPU 使用率、内存页数据、网络 I/O 和传输统计、进程创建活动和磁盘设备的活动详情。sar 和 nmon 最大的不同就是 sar 跟适合用作长期的监控,而 nmon 可以让你快速的了解系统当前状态。

strace

strace 经常被认为是程序员调试的工具,但不止如此。它可以记录进程进行系统调用的详情,因此它也是一个非常好的诊断工具,例如你可以使用它来找出某个程序正在打开某个配置文件。

Strace 也有一个缺陷,但它在跟踪某个进程时会让该进程的性能变得非常差,因此请谨慎使用。

tcpdump

Tcpdump 是一个简单、可靠的网络监控工具,用来做基本的协议分析,看看那些进程在使用网络以及如何使用网络。当然,如果你要获取跟详细的信息,你应该使用 Wireshark (下面我们会介绍).

top

top 命令显示当前的活动进程,默认它是按消耗 CPU 的厉害程度进行排序,每5秒钟刷新一次列表,你也可以选择不同的排序方式,例如 m 是按内存占用方式进行排序的快捷键。

uptime

uptime 命令告诉你这台服务器从开机启动到现在已经运行了多长时间了。同时也包含了从启动到现在服务器的平均负载情况,看看 oschina 的数据:

我已经忘了上次是为什么重启机器了,好像是换了个机柜。

vmstat

你可以使用 vmstat 来监控虚拟内存,一般 Linux 上的开发者喜欢使用虚拟内存来获得最佳的存储性能。该命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

在 oschina 上执行 vmstat 的结果:

Wireshark

Wireshark, 前身是 Ethereal ,是一个网络协议检测程序,让您经由程序抓取运行的网站的相关资讯,包括每一封包流向及其内容、资讯可依操作系统语系看出,方便查看、监控TCP session动态等等.

这里罗列的是大多数最有价值的 Linux 监控程序,当然,你可能还会使用其他的工具,不妨跟大家分享下。

英文原文 hp.com OSCHINA 原创翻译

分享到:
评论

相关推荐

    你需要知道的 16 个 Linux 服务器监控命令.pdf

    你需要知道的 16 个 Linux 服务器监控命令.pdf你需要知道的 16 个 Linux 服务器监控命令.pdf

    你需要知道的16个Linux服务器监控命令

    如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些 命令,那你就是一个 专业的 Linux 系统管理员。 有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个...

    16 个大师最爱用的Linux 服务器监控命令

    16 个大师最爱用的Linux 服务器监控命令

    16个不可不知的Linux服务器监控命令.docx

    16个不可不知的Linux服务器监控命令.docx

    Linux服务器的16个监控命令.pdf

    想不想知道你的服务器到底在干什么?那么你要知道本文介绍的这些基本命令。一旦你熟悉掌握了这些命令,就为成为专业的 Linux系统

    16个必备Linux服务器监控命令

    想不想知道你的服务器到底在干什么?那么你要知道本文介绍的这些基本命令.一旦你熟悉掌握了这些命令,就为成为专业的 Linux系统管理员打下了基础.

    服务器性能监控(主机、内存、磁盘、cpu)

    1、需要配置一台FTP服务器,可以LINUX服务器中搭建一个FTP服务即可。 2、监控的服务器需要与FTP服务器网络连通。 3、需要修改LINUX脚本中的FTP服务器地址,用户名和密码。 4、需要在每台...

    LR监控linux服务器配置

    LR监控linux服务器配置

    开源的Linux服务器监控,数据采集,Linux服务器运维的有力助手

    开源的Linux服务器监控,数据采集,Linux服务器运维的有力助手。支持:http监控,进程监控,MySQL监控,TCP监控,PING监控,命令结果监控。灵活使用会有意想不到的效果。

    Linux之Top命令监控服务器运行状态.png

    Linux之Top命令监控服务器运行状态.png

    IT运维之Linux服务器监控方案.doc

    IT运维之Linux服务器监控方案 随着Linux应用日益广泛,绝大部分的网络服务器都使用Linux操作系统。为了全面掌握 网络服务器的运行状况和趋势,需要对服务器进行全面的监控。 利用Linux发行版搭建一个网络服务器可能...

    Linux服务器自动化巡检日常报告脚本

    此脚本功能主要是远程服务器进行日常巡检,比如CPU型号,内存,网络,系统版本,系统名称,登录错误日志,当前登录的数量,以及dmesg错误日志,会输入到表格中,适合运维人员,需要在此脚本的目录下创建名为"Linux监控信息.xlsx...

    [Linux] Linux服务器监控工具

    Linux系列2:Linux服务器监控工具 推荐几个好用的: 1 top linux自带监控工具,功能比较少,不能交互 2 htop htop是top的扩展版本,能更全面的监控进程(比如,全命令展示,可视化、gui和ui)通过点击鼠标进行交互...

    使用IPMI控制/监控Linux服务器

    1 IPMI简述  IPMI提供了很多丰富功能,我使用的功能,说得...  [1]:使用ipmitool实现Linux系统下对服务器的ipmi管理http://www.ibm.com/developerworks/cn/linux/l-ipmi/  1.1 使用的必备条件:  由于IPMI功能

    Linux利用nc命令监控服务器端口的方法

    最近碰到一个项目,前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口),现在需要随时监控这三个端口的情况,一旦down掉需要能够立即告警处理。批量的系统...

    Linux服务器的系统内存监控方法详细解析

    内存是Linux内核所管理的最重要的资源之一。内存管理系统是操作系统中最为重要的部分,...本文阐述了内存使用情况监测内容,介绍了使甩vmstat命令监视虚拟内存使用情况,讨论了Linux服务器的内存泄露和回收内存的方法。

    LInux Unix Windows 实验室服务器批量管理操作监控软件

    显示不同的操作界面,有分组管理,可以有效分类的对服务器,工作站,进行分实验室,分组管理,Unix linux服务器远程批量操作模式,批量操作模式 可以多线程操控Unix,Linux,服务器执行命令,获 取状态,输出命令执行...

    Linux服务器的16个监控命令

    想不想知道你的服务器到底在干什么?那么你要知道本文介绍的这些基本命令。一旦你熟悉掌握了这些命令,为成为专业的 Linux系统管理员打下了基础。  你可以通过图形化用户界面(GUI)程序来获取这些外壳命令提供的大量...

Global site tag (gtag.js) - Google Analytics