linux服务器监控命令

1.服务器监控设置

如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 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 这个命令。

  将服务器配置在控制台模式下,就需要下面的命令来查看配置了。

2.服务器监控常用命令

  • ps和pstree(pstack)

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

    ps命令:

    ps命令我们常用的是

     -au 显示较详细的资讯

     -aux 显示所有包含其他使用者的行程,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。

    au(x) 输出格式 :


    名词解释:

        USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

        USER: 行程拥有者

        PID: pid进程号

        %CPU: 占用的 CPU 使用率

        %MEM: 占用的记忆体使用率

        VSZ: 占用的虚拟记忆体大小

        RSS: 占用的记忆体大小

        TTY: 终端的次要装置号码 (minor device number of tty)

        STAT: 该行程的状态:

        D: 不可中断的静止

        R: 正在执行中

        S: 静止状态

        T: 暂停执行

        Z: 不存在但暂时无法消除

        W: 没有足够的记忆体分页可分配

        <: 高优先序的行程

        N: 低优先序的行程

        L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)

        START: 行程开始时间

        TIME: 执行的时间

        COMMAND:所执行的指令

    除上述命令外,常用的命令还有:

    1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。

    2)ps -A 显示所有程序。

    3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。

    4)ps -e 此参数的效果和指定"A"参数相同。

    5)ps e 列出程序时,显示每个程序所使用的环境变量。

    6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。

    7)ps -H 显示树状结构,表示程序间的相互关系。

    8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。

    9)ps s 采用程序信号的格式显示程序状况。

    10)ps S 列出程序时,包括已中断的子程序资料。

    11)ps -t<终端机编号>

    指定终端机编号,并列出属于该终端机的程序的状况。

    12)ps u

    以用户为主的格式来显示程序状况。

    13)ps x

    显示所有程序,不以终端机来区分。

    pstree:

    功能说明:以树状图显示程序。

      语  法:pstree [-acGhlnpuUV][-H <程序识别码>][<程序识别码>/<用户名称>]

      补充说明:pstree指令用ASCII字符显示树状结构,清楚地表达程序间的相互关系。如果不指定程序识别码或用户名称,则会把系统启动时的第一个程序视为基层,并显示之后的所有程序。若指定用户名称,便会以隶属该用户的第一个程序当作基层,然后显示该用户的所有程序。

      参  数:
      -a  显示每个程序的完整指令,包含路径,参数或是常驻服务的标示。
      -c  不使用精简标示法。
      -G  使用VT100终端机的列绘图字符。
      -h  列出树状图时,特别标明现在执行的程序。
      -H<程序识别码>  此参数的效果和指定"-h"参数类似,但特别标明指定的程序。
      -l  采用长列格式显示树状图。
      -n  用程序识别码排序。预设是以程序名称来排序。
      -p  显示程序识别码。
      -u  显示用户名称。里面的用户doyoo

      -U  使用UTF-8列绘图字符。
      -V  显示版本信息。

    再补充:

    说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
    参数: 
    -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号 
    -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *)

    pstack

    pstack显示每个进程的栈跟踪
  • netstat

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

    命令:netstat

    功能说明:显示网络状态。

    语  法netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

    补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。

    参  数:
      -a或--all   显示所有连线中的Socket。
      -A<网络类型>或--<网络类型>   列出该网络类型连线中的相关地址。
      -c或--continuous   持续列出网络状态。
      -C或--cache   显示路由器配置的快取信息。
      -e或--extend   显示网络其他相关信息。
      -F或--fib   显示FIB。
      -g或--groups   显示多重广播功能群组组员名单。
      -h或--help   在线帮助。
      -i或--interfaces   显示网络界面信息表单。
      -l或--listening   显示监控中的服务器的Socket。
      -M或--masquerade   显示伪装的网络连线。
      -n或--numeric   直接使用IP地址,而不通过域名服务器。
      -N或--netlink或--symbolic   显示网络硬件外围设备的符号连接名称。
      -o或--timers   显示计时器。
      -p或--programs   显示正在使用Socket的程序识别码和程序名称。
      -r或--route   显示Routing Table。
      -s或--statistice   显示网络工作信息统计表。
      -t或--tcp   显示TCP传输协议的连线状况。
      -u或--udp   显示UDP传输协议的连线状况。
      -v或--verbose   显示指令执行过程。
      -V或--version   显示版本信息。
      -w或--raw   显示RAW传输协议的连线状况。
      -x或--unix   此参数的效果和指定"-A unix"参数相同。
      --ip或--inet   此参数的效果和指定"-A inet"参数相同。

    常用组合,查看出正在连接和网络信息

    netstat -ntulpa


     netstat 的一些常用选项

      netstat –s

      本选项能够按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。

      netstat –e

      本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。

      netstat –r

      本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的 信息。除了显示有效路由外,还显示当前有效的连接。

      netstat –a

      本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。

      netstat –n

      显示所有已建立的有效连接。

     扩展资料: 常用参数组合

    1) netstat -tl    -nltp
    查看当前tcp监听端口
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 *:rrac                  *:*                     LISTEN      
    tcp        0      0 *:34006                 *:*                     LISTEN      
    ......

    2) netstat -tlp
    查看当前tcp监听端口, 需要显示监听的程序名,当不清楚mysql的监听端口时比较好用
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
    tcp        0      0 *:rrac                  *:*                     LISTEN      -                          
    tcp        0      0 *:34006                 *:*                     LISTEN      23425/mysqld  http://www.linuxso.com/command/netstat.html
  • iostat

      Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据要特别注意 iostat 统计结果中的 %iowait 值,太大了表明你的系统存储子系统性能低下。

    rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
    wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
    r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
    w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
    rsec/s: 每秒读扇区数。即 delta(rsect)/s
    wsec/s: 每秒写扇区数。即 delta(wsect)/s
    rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
    wkB/s: 每秒写K字节数。是 wsect/s 的一半。
    avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。即 delta(rsect+wsect)/delta(rio+wio)
    avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
    await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
    svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
    %util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。
    即 delta(use)/s/1000 (因为use的单位为毫秒)

    如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈,像上例中。
    更多资料,请参看:http://blog.csdn.net/wyzxg/article/details/3985221


  • meminfo和free
    meminfo命令:
    内存信息,例子:

    cat /proc/meminfo    读出的内核信息进行解释,

    MemTotal:       507480 kB 
    MemFree:         10800 kB 
    Buffers:         34728 kB 
    Cached:          98852 kB 
    SwapCached:        128 kB 
    Active:         304248 kB 
    Inactive:        46192 kB 
    HighTotal:           0 kB 
    HighFree:            0 kB 
    LowTotal:       507480 kB 
    LowFree:         10800 kB 
    SwapTotal:      979956 kB 
    SwapFree:       941296 kB 
    Dirty:              32 kB 
    Writeback:           0 kB 
    AnonPages:      216756 kB 
    Mapped:          77560 kB 
    Slab:            22952 kB 
    SReclaimable:    15512 kB 
    SUnreclaim:       7440 kB 
    PageTables:       2640 kB 
    NFS_Unstable:        0 kB 
    Bounce:              0 kB 
    CommitLimit:   1233696 kB 
    Committed_AS:   828508 kB 
    VmallocTotal:   516088 kB 
    VmallocUsed:      5032 kB 
    VmallocChunk:   510580 kB
    MemTotal: 所有可用RAM大小 (即物理内存减去一些预留位和内核的二进制代码大小) 
    MemFree: LowFree与HighFree的总和,被系统留着未使用的内存 
    Buffers: 用来给文件做缓冲大小 
    Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus SwapCache ). 
    SwapCached:被高速缓冲存储器(cache memory)用的交换空间的大小 
                 已经被交换出来的内存,但仍然被存放在swapfile中。用来在需要的时候很快的被替换而不需要再次打开I/O端口。 
    Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要否则不会被移作他用. 
    Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径. 
    HighTotal: 
    HighFree: 该区域不是直接映射到内核空间。内核必须使用不同的手法使用该段内存。 
    LowTotal: 
    LowFree: 低位可以达到高位内存一样的作用,而且它还能够被内核用来记录一些自己的数据结构。Among many 
                  other things, it is where everything from the Slab is 
                  allocated.  Bad things happen when you're out of lowmem. 
    SwapTotal: 交换空间的总大小 
    SwapFree: 未被使用交换空间的大小 
    Dirty: 等待被写回到磁盘的内存大小。
    Writeback: 正在被写回到磁盘的内存大小。
    AnonPages:未映射页的内存大小 
    Mapped: 设备和文件等映射的大小。
    Slab: 内核数据结构缓存的大小,可以减少申请和释放内存带来的消耗。 
    SReclaimable:可收回Slab的大小 
    SUnreclaim:不可收回Slab的大小(SUnreclaim+SReclaimable=Slab) 
    PageTables:管理内存分页页面的索引表的大小。 
    NFS_Unstable:不稳定页表的大小 

free命令:

  • [root@localhost ~]# free
                 total           used          free        shared    buffers     cached
    Mem:       4038116    4010292      27824      0          205228    1343276
    -/+ buffers/cache:    2461788    1576328
    Swap:      8289500     254076    8035424

    第一行:
    total 物理内存总数: 4038116
    used 已经使用的内存数: 4010292
    free 空闲的内存数: 27824
    shared 当前已经废弃不用,总是0
    buffers 即Buffer Cache内存数: 205228
    cached 即Page Cache内存数: 1343276

    关系:total = used + free

    第二行:
    -/+ buffers/cache的意思相当于:
    -buffers/cache 的内存数:2461788 (等于第1行的 used – buffers – cached),实际上是应用程序所使用的内存。
    +buffers/cache 的内存数: 1576328 (等于第1行的 free + buffers + cached),是对应用程序来说还剩余的内存。

    可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。
    对操作系统来讲buffers/cached 都是属于被使用,所以它认为free只有27824.
    对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。

    第三行是交换分区swap, 列出已使用、空闲的swap.

    那buffers和cached都是缓存,两者有什么区别呢?
    为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
    磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。
    Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。
    Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。
    简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。

    所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准.
    如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。


  • mpstat

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

    语法:

          mpstat [-P {|ALL}] [internal [count]]

    参数:

        (1)-P {|ALL}:表示监控哪个CPU,在[0,cpu个数-1]中取值;

        (2)internal:相邻的两次采样的间隔时间;

        (3)count:采样的次数,count只能和delay一起使用;

          备注:当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。

    例子:
    [root@kqzj ~]# mpstat
    Linux 2.6.18-194.el5 (kqzj)     2011年01月13日
    23时47分13秒  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
    23时47分13秒  all    0.19    0.02    0.41    0.20    0.09   53.61    0.00   45.48    714.95
     
    各値详解:
    %user 在internal时间段里,用户态的CPU时间(%),不包含 nice值为负 进程 (usr/total)*100  
    %nice 在internal时间段里,nice值为负进程的CPU时间(%)   (nice/total)*100  
    %sys  在internal时间段里,核心时间(%)   (system/total)*100
    %iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
    %irq 在internal时间段里,硬中断时间(%)      (irq/total)*100
    %soft 在internal时间段里,软中断时间(%)    (softirq/total)*100
    %idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%)(idle/total)*100
    %intr/s 在internal时间段里,每秒CPU接收的中断的次数intr/total)*100

    计算公式:
    total_cur=user+system+nice+idle+iowait+irq+softirq
    total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq
    user=user_cur – user_pre
    total=total_cur-total_pre
     
    其中_cur 表示当前值,_pre表示interval时间前的值。上表中的所有值可取到两位小数点。

  • Nmon工具
    Nmon, 是 Nigel's Monitor 的缩写,是一个使用很普遍的开源工具,用以监控 Linux 系统的性能。Nmon 监控多个子系统的性能数据。

    nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括:

    • CPU 使用率
    • 内存使用情况
    • 内核统计信息和运行队列信息
    • 磁盘 I/O 速度、传输和读/写比率
    • 文件系统中的可用空间
    • 磁盘适配器
    • 网络 I/O 速度、传输和读/写比率
    • 页面空间和页面速度
    • CPU 和 AIX 规范
    • 消耗资源最多的进程
    • IBM HTTP Web 缓存
    • 用户自定义的磁盘组
    • 计算机详细信息和资源
    • 异步 I/O,仅适用于 AIX
    • 工作负载管理器 (WLM),仅适用于 AIX
    • IBM TotalStorage® Enterprise Storage Server® (ESS) 磁盘,仅适用于 AIX
    • 网络文件系统 (NFS)
    • 动态 LPAR (DLPAR) 更改,仅适用于面向 AIX 或 Linux 的 pSeries p5 和 OpenPower

pmap :

显示指定程序的内存信息/链接库信息.
pmap 命令用来报告每个进程占用内存的详细情况,可用来看是否有进程超支了,该命令需要进程 id 作为参数。

语 法

pmap[必要参数][选择参数][程序]
功 能
pmap 命令:用来显示指定程序的内存信息
参数
必要参数
-s 显示细节
-d 显示偏移和设备号
-q 不显示处理信息
例子:
范例1: 显示程序的内存信息
root@snail-hnlinux:~# ps -A //显示所有进程
PID TTY  TIME CMD
1 ? 00:00:03 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 watchdog/0
……忽略部分
31327 ? 00:00:00 sshd
31400 pts/1 00:00:00 bash
31485 pts/2 00:00:00 bash
31653 ? 00:00:00 aptd
31658 pts/1 00:00:00 ps
root@snail-hnlinux:~# pmap 31327 //显示31327进程的内存信息
31327:  sshd: root@pts/2 
00110000  100K r-x-- /lib/libselinux.so.1
00129000   4K r---- /lib/libselinux.so.1
0012a000   4K rw--- /lib/libselinux.so.1
0012b000  1356K r-x-- /lib/tls/i686/cmov/libc-2.11.1.so
0027e000   4K ----- /lib/tls/i686/cmov/libc-2.11.1.so
0027f000   8K r---- /lib/tls/i686/cmov/libc-2.11.1.so
00281000   4K rw--- /lib/tls/i686/cmov/libc-2.11.1.so
00282000   12K rw---  [ anon ]
……忽略部分
b7666000   36K rw-s- /var/lib/samba/passdb.tdb
b766f000   24K rw-s- /var/lib/samba/secrets.tdb
b7675000   64K r--s- /usr/share/samba/valid.dat
b7685000   28K r--s- /usr/lib/gconv/gconv-modules.cache
b768c000  128K r--s- /usr/share/samba/lowcase.dat
b76ac000  128K r--s- /usr/share/samba/upcase.dat
b76cc000  1280K rw-s- /dev/zero (deleted)
b780c000   24K rw---  [ anon ]
b7822000   8K rw---  [ anon ]
bf8c5000   84K rw---  [ stack ]
total  13120K
root@snail-hnlinux:~# 



范例2: 显示内存详细信息 


root@snail-hnlinux:~# pmap -x 31327
31327:  sshd: root@pts/2 
Address  Kbytes   RSS  Anon Locked Mode  Mapping
00110000   100    -    -    - r-x-- libselinux.so.1
00129000    4    -    -    - r---- libselinux.so.1
0012a000    4    -    -    - rw--- libselinux.so.1
……部分结果省略
b768c000   128    -    -    - r--s- lowcase.dat
b76ac000   128    -    -    - r--s- upcase.dat
b76cc000  1280    -    -    - rw-s- zero (deleted)
b780c000   24    -    -    - rw---  [ anon ]
b7822000    8    -    -    - rw---  [ anon ]
bf8c5000   84    -    -    - rw---  [ stack ]
-------- ------- ------- ------- -------
total kB  13120    -    -    -
root@snail-hnlinux:~# 
范例3:显示内存对应时同时显示设备号
root@snail-hnlinux:~# pmap -d 31327
31327:  sshd: root@pts/2 
Address  Kbytes Mode Offset      Device  Mapping
00110000   100 r-x-- 0000000000000000 008:00001 libselinux.so.1
00129000    4 r---- 0000000000018000 008:00001 libselinux.so.1
0012a000    4 rw--- 0000000000019000 008:00001 libselinux.so.1
0012b000  1356 r-x-- 0000000000000000 008:00001 libc-2.11.1.so
002a8000    4 rw--- 0000000000022000 0………部分结果省略
b780c000   24 rw--- 0000000000000000 000:00000  [ anon ]
b7822000    8 rw--- 0000000000000000 000:00000  [ anon ]
bf8c5000   84 rw--- 0000000000000000 000:00000  [ stack ]
mapped: 13120K  writeable/private: 1552K  shared: 3064K

root@snail-hnlinux:~#


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动态等等.

业务热线电话:(+86)021-52765253 021-61172807      上海哲涛网络科技有限公司版权所有 © 2005-2018       沪ICP备06058430-1号

沪公网安备 31011302000898号

校睿宝,培训机构学员管理软件,教师工资计算软件,消课管理软件!

手机智慧课堂答题,短信答题,微信答题!

数据备份软件,文件数据备份软件,文件备份软件,B/S架构备份软件,分布式计算机备份软件!