Linux系统监控工具

需要监视Linux服务器的性能?试试这些内置的命令和一些附加的工具吧。大多数Linux发行版都集成了一些监视工具。这些工具可以获取有关系统活动的信息的详细指标。通过这些工具,你可以发现产生系统性能问题可能存在原因。下面讨论的是一些最基本的命令,它涉及到系统分析和调试服务器等一些问题,如:

1.    找出系统瓶颈问题.

2.    磁盘 (储存) 瓶颈问题.

3.    CPU和内存瓶颈问题.

4.    网络瓶颈问题.

# 1: top – 查看活动进程的命令

TOP工具能够实时显示系统中各个进程的资源占用状况。默认情况下,它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU/内存的使用情况和执行时间对任务进行排序,并每五秒钟更新一次。

常用的快捷键

Top命令为我们提供了很多有用的快捷键,如:

快捷键    用法

t             切换显示进程和CPU状态信息。

m           切换显示进程和CPU状态信息。

A            分类显示各种系统资源的消耗情况。可用于快速识别系统的性能要求极高的任务。

o            改变显示项目的顺序。

r            重新设置进程的优先级别。(系统提示用户输入需要改变的进程PID以及需要设置的优先级值。)

k            终止一个进程。(系统将提示用户输入需要终止的进程PID)

s            改变刷新的时间间隔。

u            查看指定用户的进程。

=> Related:要了解更多关于top的用法,请参考系统帮助文档。

# 2: vmstat – 系统活动、硬件以及系统信息

这个命令用来报告关于内核线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息。

# vmstat 3

输出样例:

[[email protected] ~]# vmstat 3

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

0  0      0  81408  93036 418400    0    0    20    13   69  125  1  1 97  2  0

0  0      0  81316  93044 418396    0    0     0    36   46   46  0  0 99  1  0

0  0      0  81324  93044 418400    0    0     0     0   49   50  0  0 100  0  0

0  0      0  81348  93044 418400    0    0     0     0   49   44  0  0 100  0  0

0  0      0  81348  93044 418400    0    0     0    32   44   46  0  0 100  0  0

显示内存使用情况:

# vmstat –m

=> Related: 要了解更多关于vmstat的用法,请参考系统帮助文档。

# 3: w – 找到已登陆的用户并且查看他们做了什么操作

W命令用来显示机器上最近登陆的用户信息以及他们的进程信息。

# w username

# w vivek

输出样例:

[[email protected] ~]# w

17:07:28 up  7:50,  1 user,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT

root     pts/0    192.168.10.21    09:24    0.00s  1:04   0.00s w

# 4: uptime – 系统已运行的时间

Uptime命令可以查看系统已经运行了多长时间。截止当前时间日期,系统已经运行了多长时间,当前登录的用户有哪些,已经在过去的1,5,15分钟,系统的平均负载值情况。

# uptime

输出样例:

17:09:32 up  7:52,  1 user,  load average: 0.00, 0.00, 0.00

1通常被认为是最佳的负载值。系统负载值根据系统的不同而不同。对于单CPU的系统,负载值在1-3为正常,SMP的系统,负载值在6-10之间也是可以接受的。(看具体的情况)

# 5: ps – 显示进程

ps命令用来报告当前进程的快照。要选择所有进程,使用-A或-e选项:

# ps –A

输出样例:

Ps命令跟top相似,但ps为我们提供了更多的信息。

以长格式显示输出:

# ps –Al

查看线程:(LWP和NLWP):

# ps –AlFH

To See Threads After Processes:

# ps –AlLm

在服务器上打印出所有进程:

# ps ax

# ps axu

打印出进程树:

# ps –ejH

# ps axjf

# pstree

See Every Process Running As User Vivek:

# ps -U vivek -u vivek u

设置以用户定义的格式输出:

# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm

# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

# ps -eopid,tt,user,fname,tmout,f,wchan

只显示lighttpd的进程树:

# ps -C lighttpd -o pid=

Or

# pgrep lighttpd

Or

# pgrep -u vivek php-cgi

显示pid为55977的进程名:

# ps -p 55977 -o comm=

找出最耗费内存的前10个进程:

# ps -auxf | sort -nr -k 4 | head -10

找出最耗费CPU的前10个进程:

# ps -auxf | sort -nr -k 3 | head -10

# 6: free – 查看内存的使用情况

free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

参数:

 -b    以Byte为单位显示内存使用情况。

 -k    以KB为单位显示内存使用情况。

 -m   以MB为单位显示内存使用情况。

 -o   不显示缓冲区调节列。

 -s    <间隔秒数>  持续观察内存使用状况。

 -t    显示内存总和列。

 -V   显示版本信息。

# free

输出样例:

[[email protected] ~]# free

total       used       free     shared    buffers     cached

Mem:       1004412     912812      91600          0      93080     411008

-/+ buffers/cache:     408724     595688

Swap:      1048568         60    1048508

ree的输出一共有四行,第四行为交换区的信息,分别是交换的总量(total),使用量(used)和有多少空闲的交换区(free)。

第二行和第三行是比较让人迷惑的。这两行都是说明内存使用情况的。第一列是总量(free),第二列是使用量(free),第三列是可用量(free)。第一行的输出时从操作系统(OS)来看的。也就是说,从OS的角度来看,计算机上一共有:

999212KB(缺省时free的单位为KB)物理内存,即FO[2][1];

在这些物理内存中有967476KB(即FO[2][2])被使用了;

还用31736KB(即FO[2][3])是可用的;

=> Related: 要了解更多关于free的东西,请百度或者google之。

# 7: iostat – 监视CPU平均负载值,I/O状态

该命令用于报告CPU和输入/输出设备,分区和网络文件系统(NFS)的详细统计数据。

# iostat

输出样例:

基本使用:

# iostat -d -k 1 10

参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。

# iostat -d -k 1 10

 # 8: sar - 收集和报告系统状态信息

Sar 命令是用来收集,报告和保存系统活动信息的。

Sar 把自已收集的数据以二进制格式保存在[img]file:///C:\Users\ADMIN_~1\AppData\Local\Temp\[LC3U)F{0XCAB)[email protected][/img]ar/log[img]file:///C:\Users\ADMIN_~1\AppData\Local\Temp\{)_G62``_[8)(8ND1X0_M7L.gif[/img]里

使用 sar -d 可以得到当天磁盘活动的情况汇总

sar -n  DEV 则能给出网络接口的统计信息

sar -A 可以报告所有的信息

sar 适用于快速粗略了解历史信息。

sar 命令行的常用格式: sar [options] [-o file] t [n]

options 为命令行选项,sar命令的选项很多,下面只列出常用选项:

-A:所有报告的总和。        

-u:CPU利用率        

-v:进程、I节点、文件和锁表状态。        

-d:硬盘使用报告。        

-r:没有使用的内存页面和硬盘块。        

-g:串口I/O的情况。

-b:缓冲区使用情况。

-a:文件读写情况。

-c:系统调用情况。

-R:进程的活动情况。

-y:终端设备活动情况。

-w:系统交换活动。

# 9: mpstat – 实时系统监视工具

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

下面只介绍mpstat与CPU相关的参数,mpstat的语法如下:

Usage: mpstat [ options... ] [ <interval> [ <count> ] ]

Options are:

[ -P { <cpu> | ALL } ] [ -V ]

显示每个进程对CPU的平均利用率:

# mpstat -P ALL

输出样例:

#10: pmap – 查看进程使用内存的情况

pmap命令用来报告进程使用对于的相应内存的情况。使用下面命令可以查出某些内存瓶颈问题的原因。

# pmap -d PID

显示进程号为47394的进程所用内存的信息:

# pmap -d 3315

输出样例:

3315:   sshd: [email protected]/0

Address           Kbytes Mode  Offset           Device    Mapping

00007f1c70798000    1280 rw-s- 0000000000000000 000:00004 zero (deleted)

00007f1c708d8000      16 r-x-- 0000000000000000 008:00005 pam_limits.so

00007f1c708dc000    2044 ----- 0000000000004000 008:00005 pam_limits.so

00007f1c70adb000       4 r---- 0000000000003000 008:00005 pam_limits.so

00007f1c70adc000       4 rw--- 0000000000004000 008:00005 pam_limits.so

00007f1c70add000       8 r-x-- 0000000000000000 008:00005 pam_keyinit.so

......

......

00007fff80661000      84 rw--- 0000000000000000 000:00000   [ stack ]

00007fff80720000       4 r-x-- 0000000000000000 000:00000   [ anon ]

ffffffffff600000       4 r-x-- 0000000000000000 000:00000   [ anon ]

mapped: 100364K    writeable/private: 1064K    shared: 2560K

最后一行非常重要:

mapped: 100364K total amount of memory mapped to files.

writeable/private: 1064K the amount of private address space.

shared: 2560K the amount of address space this process is sharing with others.

 #11 : netstat 和 ss – 查看网络情况

netstat命令显示网络连接,路由表,网络接口统计,伪装连接,组播成员身份。ss命令类似netstat命令的信息。关于ss和netstat命令,您可以参阅系统帮助文档或者互联网上的资源。

#12: iptraf – 实时网络状况监视工具

iptraf是一款彩色的交互式的IP局域网监控工具。这是一个基于ncurses的IP LAN监视工具,它会统计网络中产生的各种数据,包括TCP信息,UDP连接数,ICMP和OSPF信息,以太网负载信息,节点统计,IP校验和错误,以及其他信息。并且提供:

Network traffic statistics by TCP connection

IP traffic statistics by network interface

Network traffic statistics by protocol

Network traffic statistics by TCP/UDP port and by packet size

Network traffic statistics by Layer2 address

上图是General interface statistics: IP traffic statistics by network interface

上图是网络连接中建立的TCP连接信息的统计

#13: tcpdump – 网络状况分析工具

tcpdump用来抓包的一个的简单命令。但是,要使用该工具,你需熟悉TCP /IP协议。例如:显示网络中有关DNS的信息,请输入:

# tcpdump -i eth1 ‘udp port 53‘

显示去往202.54.1.5的所有ftp会话信息:

# tcpdump -i eth1 ‘dst 202.54.1.5 and (port 21 or 20‘

显示去往192.168.1.5的所有HTTP会话信息:

# tcpdump -ni eth0 ‘dst 192.168.1.5 and tcp and port http‘

使用Wireshark查看tcpdump抓包文件的详细信息,输入:

# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80

#14]: strace – 系统调用工具

strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统呼叫及它所接收的系统信息。strace是一个有用的小工具,它可以通过跟踪系统调用来让你知道一个程序在后台所做的事情。Strace是一个基础的调试工具,在大多数 Linux系 统上默认已经安装;但是即便你不是在跟踪一个问题的时候它也是一个极好的软件。它能告诉你很多关于一个Linux程序怎样工作的信息。

#15: /Proc 文件系统

Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。几个例子:

# cat /proc/cpuinfo

# cat /proc/meminfo

# cat /proc/zoneinfo

# c。at /proc/mounts

Related: 要更详细地去了解/proc文件系统,你可以去查看官方文档

#16: Nagios – 服务器和网络信息监视工具

Nagios是一款很流行的开源系统和网络监控应用软件。你可以很轻松地用它监控所有的主机,网络设备和服务。在系统或服务状态异常时会第一时间通知网站运维人员(发出邮件或短信报警),在状态恢复正常后发出邮件或短信通知。

#17: Cacti -基于WEB的监视工具

Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。CACTI软件Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。

#18: KDE System Guard – 图形化的系统监视工具

KDE System Guard (KSysguard)是KDE的任务管理和性能监控工具。它采用client/server架构,可以监控本机也可以监控远端主机。

一篇51CTOblog的博文,对KDE System Guard的介绍很详细,有兴趣的朋友去看看。

http://linuxshow.blog.51cto.com/1572053/371657

 #19: Gnome System Monitor – 图形化系统监视工具

它可以显示系统信息,监视系统进程,系统资源负载情况,以及文件系统。你也可以用它来提高系统性能。尽管功能不像KDE System Guard那么强大,但作为Gnome桌面环境的图形化性能分析工具,Gnome System Monitor可以图形化显示性能相关系统资源用于发现可能的峰值和瓶颈。产生的所有统计信息都是实时,要想做长时间的性能分析需使用其它工具来完成。

功能:

Displays various basic information about the computer‘s hardware and software.

Linux Kernel version

GNOME version

Hardware

Installed memory

Processors and speeds

System Status

Currently available disk space

Processes

Memory and swap space

Network usage

File Systems

Lists all mounted filesystems along with basic information about each.

其他工具:

nmap – 扫描主机的端口开放情况.

lsof - 列出系统当前打开的文件,网络连接以及更多信息。

ntop web based tool – Ntop是一款监控网络流量工具,它显示的网络状况更加直观、详细。Ntop甚至可以列出每个节点计算机的网络带宽利用率。它是一个灵活的、功能齐全的,用来监控和解决局域网问题的工具;可以自动从网络中识别有用的信息;将截获的数据包转换成易于识别的格式;对网络环境中通信失败的情况进行分析;探测网络通信的时间和过程等。

Conky -  Conky是x-window下,一款免费的,轻量级系统监控的工具。它能够监控许多系统环境的状态,其中包括的CPU,内存,交换空间,磁盘存储,温度,进程,网络接口,电池电量,系统消息,电子邮件收件箱等。

GKrellM – 它来用于监测CPU状态,内存,硬盘,网络接口,本地和远程邮箱,以及其他的东西等。

vnstat – vnstat是一个基于控制台的网络流量监控软件,它会保持每月,每天,每小时,监视并记录所选定网络接口的网络通信状况。

htop – htop是一个增强版本的top,同时也是一个交互式进程查看器,它可以以树状结构来显示进程列表。

mtr – mtr在单一的网络诊断工具上,结合了traceroute和ping程序的功能。

时间: 2024-10-29 04:57:40

Linux系统监控工具的相关文章

LR杂记 - Linux系统监控工具之vmstat详解

题意:求一个无向图的,去掉两个不同的点后最多有几个连通分量. 思路:枚举每个点,假设去掉该点,然后对图求割点后连通分量数,更新最大的即可.算法相对简单,但是注意几个细节: 1:原图可能不连通. 2:有的连通分量只有一个点,当舍去该点时候,连通分量-1: 复习求割点的好题! #include<iostream> #include<cstdio> #include<vector> using namespace std; int n,m; vector<vector&

管理员必备的几个Linux系统监控工具

需要监控Linux服务器系统性能吗?尝试下面这些系统内置或附件的工具吧.大多数Linux发行版本都装备了大量的监控工具.这些工具提供了能用作取得相关信息和系统活动的量度指标.你能使用这些工具发现造成性能问题可能原因.此次讨论到的工具只是分析和调试服务器下面问题时最基本工具中的一部分. 1.找出瓶颈2.硬盘(存储)瓶颈3.CPU及内存瓶颈4.网络瓶颈#1: top - 进程活动top提供一个当前运行系统实时动态的视图,也就是正在运行进程.在默认情况下,显示系统中CPU使用率最高的任务,并每5秒钟刷

【转】管理员必备的Linux系统监控工具

原文连接: 管理员必备的Linux系统监控工具 #1: top - 进程活动 top提供一个当前运行系统实时动态的视图,也就是正在运行进程.在默认情况下,显示系统中CPU使用率最高的任务,并每5秒钟刷新一次. #2: vmstat -系统活动.硬件及系统信息 使用vmstat命令可以得到关于进程.内存.内存分页.堵塞IO.traps及CPU活动的信息. #3: w - 显示谁已登录,他们正在做什么? w命令显示系统当前用户及其运行进程的信息. #4:uptime - 告诉系统已经运行了多久? u

管理员必备的20个Linux系统监控工具

需要监控Linux服务器系统性能吗?尝试下面这些系统内置或附件的工具吧.大多数Linux发行版本都装备了大量的监控工具.这些工具提供了能用作取得相关信息和系统活动的量度指标.你能使用这些工具发现造成性能问题可能原因.此次讨论到的工具只是分析和调试服务器下面问题时最基本工具中的一部分. 1.找出瓶颈 2.硬盘(存储)瓶颈 3.CPU及内存瓶颈 4.网络瓶颈 #1: top - 进程活动 top提供一个当前运行系统实时动态的视图,也就是正在运行进程.在默认情况下,显示系统中CPU使用率最高的任务,并

linux系统监控工具dstat、glances及实时进程查看工具htop(含部分进程原理)

简单罗列基础命令,只分享我的想法! 基于LinuxKernel是多人多任务的OS,Windows NT Kernel是单人多任务的OS,OS Kernel的功能无外乎是"承上启下"即驱动硬件.为上层应用程序提供系统调用.内存管理.FS管理.进程管理等,所以Linux的进程.线程机制和Windows有一些区别,我说的是原理. 当然了二进制程序文件肯定是有区别,因为进程就是程序向内核申请,由内核"审批"通过之后才能成为进程. Kernel的作用就是管理进程,所以,当程序

linux系统监控工具glances

glances linux系统自带了很多系统性能监控工具,如top,vmstat,iftop等等,还有一款监视工具glances,它能把其他几个监控的指标都集于一身.Glances是一个相对比较新的系统监控工具,用 Python 编写的,使用 psutil 库从系统获取信息.可以用它来监控 CPU.平均负载.内存.网络接口.磁盘 I/O,文件系统空间利用率.挂载的设备.所有活动进程以及消耗资源最多的进程.Glances 有很多有趣的选项.它的主要特性之一是可以在配置文件中设置阀值(careful

linux系统监控工具汇总及几个小脚本 , 系统初始化脚本

重要性能监测工具:top.vmstat.w.uptime.ps.free.iostat.netstat./proc等 需要监视Linux服务器的性能?大多数Linux发行版都集成了一些监视工具.这些工具可以获取有关系统活动的信息的详细指标.通过这些工具,你可以发现产生系统性能问题可能存在原因.下面讨论的是一些最基本的命令,它涉及到系统分析和调试服务器等一些问题,如:1.    找出系统瓶颈问题.2.    磁盘 (储存) 瓶颈问题.3.    CPU和内存瓶颈问题.4.    网络瓶颈问题.#

linux系统监控工具-glances

##一.glances介绍 glances是一个基于python语言开发,可以为linux或者UNIX性能==提供监视和分析性能数据==的功能.glances在用户的终端上显示重要的系统信息,并动态的进行更新,让管理员实时掌握系统资源的使用情况,而动态监控并不会消耗大量的系统资源,比如CPU资源,通常消耗小于2%,glances默认每两秒更新一次数据.同时glances还可以将相同的数据捕获到一个文件,便于以后对报告进行分析和图形绘制,支持的文件格式有.csv电子表格格式和和html格式. gl

linux系统监控工具之top详解

基础视图 第一行: 09:57:34 系统当前运行时间 up 23 days,23:33  系统自上次开机运行的时间. 1 user  当前登录用户 load average: 0.32, 0.24, 0.15 系统平均负载,即任务队列的长度.分别是1分钟.5分钟.15分钟 第二行: 245 total 进程总数 1 running 1个运行进程 244 sleeping 239个休眠进程 0 stopped 0个停止进程 0 zombie  0个僵尸进程 第三行: 3.1% us   用户空间