LINUX监控一:监控命令

简单的整理一下常用的linux监控命令

本篇参考了:http://www.cnblogs.com/JemBai/archive/2010/07/30/1788484.html的内容

1.top

top能实时显示CPU 和内存的使用状况。

  1. top - 01:56:31 up 15:59, 1 user, load average: 0.00, 0.00, 0.00
  2. Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie
  3. Cpu(s): 0.3%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.3%hi, 0.0%si, 0.0%st
  4. Mem: 1012552k total, 369308k used, 643244k free, 87220k buffers
  5. Swap: 2031608k total, 0k used, 2031608k free, 107636k cached
  6. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  7. 2301 root 20 0 867m 81m 7344 S 2.3 8.2 2:51.88 mongod
  8. 420 root 20 0 0 0 0 S 0.3 0.0 0:02.69 flush-253:0
  9. 1 root 20 0 19228 1496 1220 S 0.0 0.1 0:01.12 init
  10. 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
  11. 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
  12. 4 root 20 0 0 0 0 S 0.0 0.0 0:03.37 ksoftirqd/0
  13. 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
  14. 6 root RT 0 0 0 0 S 0.0 0.0 0:00.31 watchdog/0
  15. 7 root 20 0 0 0 0 S 0.0 0.0 1:23.72 events/0
  16. 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup
  17. 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper
  18. 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns
  19. 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr
  20. 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm
  21. 13 root 20 0 0 0 0 S 0.0 0.0 0:00.84 sync_supers
  22. 14 root 20 0 0 0 0 S 0.0 0.0 0:00.52 bdi-default
  23. 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0

第一行:系统概况

top - 01:56:31 up 15:59,  1 user,  load average: 0.00, 0.00, 0.00

分别是:当前时间   系统连续运行的时间  当前登录的用户  平均负载

01:56:31 当前时间
up 15:59 连接运行时间
1 user 当前登录的用户数
 load average: 0.00, 0.00, 0.00 平均负载,分别为1分钟、5分钟、15分钟,该数值除以逻辑CPU的个数>5时表示CPU使用高。

第二行:任务情况

Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie 共71个任务,1个运行,70个休眠,0个停止,0个僵死进程

第三行:CPU运行情况

Cpu(s): 0.3%us 用户空间使用的CPU占比
0.0%sy 系统空间使用的CPU占比
0.0%ni 改变过优先级的进程战用的CPU的占比
99.3%id 空间的CPU占比
0.0%wa IO等待使用的CPU占比
0.3%hi 硬中断的使用的CPU占比
0.0%si 软中断使用的CPU占比
0.0%st

第四行:内存

Mem: 1012552k total 内存总大小
369308k used 已经使用
643244k free 空闲多少内存
87220k buffers 缓存数量

第五行:交换分区

Swap: 2031608k total 交换分区的总大小
0k used 已经使用的交换分区大小
2031608k free 空闲的交换分区大小 
107636k cached 被缓存的交换分区大小

第6行:

PID 进程ID
USER 进程所有者
PR 进程优先级
NI nice值。负值表示高优先级,正值表示低优先级。
VIRT 进程使用的虚拟内存问题,单位KB。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小(真实内存大小).
SHR 共享内存大小,单位KB
S 进程状态。D不可中断的睡眠状态,R运行,S睡眠,T跟踪/停止,Z僵尸进程
%CPU 上次更新到现在使用的CPU占比
%MEM 进程使用的物理内存占比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 进程命令

引用:http://www.jb51.net/article/40807.htm

2.vmstat

vmstat从总体上显示了系统的状况。一般画[ 两个参数,如vmstat 2 3表示2秒采取一次数据,一共采集3次

  1. [[email protected] ~]# vmstat 2 3
  2. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
  3. r b swpd free buff cache si so bi bo in cs us sy id wa st
  4. 1 0 0 632736 95324 108892 0 0 2 6 154 428 0 0 99 0 0
  5. 0 0 0 632712 95324 108892 0 0 0 0 144 491 1 0 99 0 0
  6. 0 0 0 632712 95324 108892 0 0 0 26 148 496 1 1 99 0 0
r 运行队列
b 阻塞的进程
swpd 虚拟内存使用的大小,如果数值大于0,说明内存不够用
free 空间的物理内存大小
buff 用于缓存的物理内存大小
cache cache占用的内存的大小
si (swap in)第秒从磁盘读入swap的内存大小
so (swap out)从swap 写入磁盘的
bi (block in)块设备(比如硬盘)接收的块数量,块默认大小1024b.比如写磁盘就会有block in。
bo (block out)块设备发送的块数量。比如读磁盘。一般来说,bi bo都不应该太大。
in (interrupt) CPU 中断次数
cs 每秒上下文切换的次数。在执行系统调用、程序切换等等时要进行上下文切换,很费CPU资源,如果程序总是在做上下文切换,可用的CPU资源就不多。
us 用户的CPU时间
sy 系统使用的CPU时间
id (idle)空闲CPU时间
wa (wait)等待IO的CPU时间
st

相关参数:

  1. [[email protected] ~]# vmstat --help
  2. usage: vmstat [-V] [-n] [delay [count]]
  3. -V prints version.
  4. -n causes the headers not to be reprinted regularly.
  5. -a print inactive/active page stats. 打印活动/不活动的页状态
  6. -d prints disk statistics 打印磁盘情况
  7. -D prints disk table 打印磁盘信息
  8. -p prints disk partition statistics 打印磁盘分区信息
  9. -s prints vm table 打印vm表
  10. -m prints slabinfo slablinfo信息
  11. -t add timestamp to output
  12. -S unit size
  13. delay is the delay between updates in seconds.
  14. unit size k:1000 K:1024 m:1000000 M:1048576 (default is K)
  15. count is the number of updates.

3.ps命令

  1. [[email protected] ~]# ps --help
  2. ********* simple selection ********* ********* selection by list *********
  3. -A all processes -C by command name
  4. -N negate selection -G by real group ID (supports names)
  5. -a all w/ tty except session leaders -U by real user ID (supports names)
  6. -d all except session leaders -g by session OR by effective group name
  7. -e all processes -p by process ID
  8. T all processes on this terminal -s processes in the sessions given
  9. a all w/ tty, including other users -t by tty
  10. g OBSOLETE -- DO NOT USE -u by effective user ID (supports names)
  11. r only running processes U processes for specified users
  12. x processes w/o controlling ttys t by tty
  13. *********** output format ********** *********** long options ***********
  14. -o,o user-defined -f full --Group --User --pid --cols --ppid
  15. -j,j job control s signal --group --user --sid --rows --info
  16. -O,O preloaded -o v virtual memory --cumulative --format --deselect
  17. -l,l long u user-oriented --sort --tty --forest --version
  18. -F extra full X registers --heading --no-heading --context
  19. ********* misc options *********
  20. -V,V show version L list format codes f ASCII art forest
  21. -m,m,-L,-T,H threads S children in sum -y change -l format
  22. -M,Z security data c true command name -c scheduling class
  23. -w,w wide output n numeric WCHAN,UID -H process hierarchy

ps命令的参数非常多,常用的有

1)ps -ef 显示所有进程详细信息

2)ps -efH 所有进程的线程信息

3)ps -AL 长格式显示进程

4)ps -ax 显示服务器上进程

4.iostat

iostat是用来显示磁盘和CPU的情况:

  1. [[email protected] ~]# iostat 2 2
  2. Linux 2.6.32-358.el6.x86_64 (node1) 12/28/2015 _x86_64_ (1 CPU)
  3. avg-cpu: %user %nice %system %iowait %steal %idle
  4. 0.41 0.00 0.35 0.04 0.00 99.20
  5. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
  6. scd0 0.00 0.00 0.00 288 0
  7. sda 0.72 4.56 13.94 357190 1092500
  8. dm-0 1.98 4.44 13.94 347810 1092448
  9. dm-1 0.00 0.03 0.00 2376 0

deveice:    磁盘

tps:        每秒IO请求数

blk_read/s:每秒读的block个数

blk_wrtn/s:每秒写的block个数

blk_read:   一共读的block个数

blk_wrtn:   一共写的block个数

更详细的信息:

  1. [[email protected] ~]# iostat -x
  2. Linux 2.6.32-358.el6.x86_64 (node1) 12/28/2015 _x86_64_ (1 CPU)
  3. avg-cpu: %user %nice %system %iowait %steal %idle
  4. 0.40 0.00 0.35 0.04 0.00 99.20
  5. Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
  6. scd0 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 11.19 11.19 0.00
  7. sda 0.19 1.09 0.07 0.65 4.49 13.95 25.49 0.00 2.58 1.72 0.12
  8. dm-0 0.00 0.00 0.24 1.74 4.38 13.95 9.25 0.01 3.53 0.62 0.12
  9. dm-1 0.00 0.00 0.00 0.00 0.03 0.00 8.00 0.00 4.53 1.39 0.00
Blk_read  读入块的当总数.

Blk_wrtn  写入块的总数.

kB_read/s  每秒从驱动器读入的数据量,单位为K.

kB_wrtn/s  每秒向驱动器写入的数据量,单位为K.

kB_read  读入的数据总量,单位为K.

kB_wrtn  写入的数据总量,单位为K.

rrqm/s  将读入请求合并后,每秒发送到设备的读入请求数.

wrqm/s  将写入请求合并后,每秒发送到设备的写入请求数.

r/s  每秒发送到设备的读入请求数.

w/s  每秒发送到设备的写入请求数.

rsec/s  每秒从设备读入的扇区数.

wsec/s  每秒向设备写入的扇区数.

rkB/s  每秒从设备读入的数据量,单位为K.

wkB/s  每秒向设备写入的数据量,单位为K.

avgrq-sz  发送到设备的请求的平均大小,单位是扇区.

avgqu-sz  发送到设备的请求的平均队列长度.

await  I/O请求平均执行时间.包括发送请求和执行的时间.单位是毫秒.

svctm  发送到设备的I/O请求的平均执行时间.单位是毫秒.

%util  在I/O请求发送到设备期间,占用CPU时间的百分比.用于显示设备的带宽利用率.  当这个值接近100%时,表示设备带宽已经占满.

来源: <http://blog.csdn.net/zhangjay/article/details/6656771>

5.free

  1. [[email protected] ~]# free
  2. total used free shared buffers cached
  3. Mem: 1012552 463420 549132 0 100304 179744
  4. -/+ buffers/cache: 183372 829180
  5. Swap: 2031608 0 2031608

mem:系统层面的各指标.总内存1012522,使用了463420(包括 shared buffers cached),空闲free

-/+buffers/cache:程序层面的指标,shared buffers cached都是可以被程序使用的,所有算在空闲里面

swap:正常情况下不应该被使用,否则就是内存不够用。

6.netstat

  1. [[email protected] ~]# netstat -a
  2. Active Internet connections (servers and established) 网络连接(TCP)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State
  4. tcp 0 0 *:28017 *:* LISTEN
  5. tcp 0 0 *:ssh *:* LISTEN
  6. tcp 0 0 localhost:smtp *:* LISTEN
  7. tcp 0 0 *:27017 *:* LISTEN
  8. tcp 0 0 localhost:ssh 192.168.75.1:49742 ESTABLISHED
  9. tcp 0 1 localhost:46531 localhost:27017 SYN_SENT
  10. tcp 0 1 localhost:35646 192.168.75.12:27017 SYN_SENT
  11. tcp 0 0 localhost:ssh 192.168.75.1:58264 ESTABLISHED
  12. tcp 0 0 *:ssh *:* LISTEN
  13. tcp 0 0 localhost:smtp *:* LISTEN
  14. Active UNIX domain sockets (servers and established) 本地UNIX套接字
  15. Proto RefCnt Flags Type State I-Node Path
  16. unix 2 [ ACC ] STREAM LISTENING 24929 /tmp/mongodb-27017.sock
  17. unix 2 [ ACC ] STREAM LISTENING 8691 @/com/ubuntu/upstart
  18. unix 2 [ ACC ] STREAM LISTENING 11532 public/cleanup
  19. unix 2 [ ACC ] STREAM LISTENING 11539 private/tlsmgr
  1. Recv-Q Send-Q 指tcp的接收和发送队列,一般情况下都应该为0,队列中没有任务需要等待。
  2. local和foregine分别表示本机和外机的地址,星表示没数据。
  3. state 状态。
  4. 常见参数
  5. -a (all)显示所有选项
  6. -t (tcp)仅显示tcp相关选项
  7. -u (udp)仅显示udp相关选项
  8. -n 拒绝显示别名,能显示数字的全部转化成数字。
  9. -l 仅列出有在 Listen (监听) 的服務状态
  10. -p 显示建立相关链接的程序名
  11. -r 显示路由信息,路由表
  12. -e 显示扩展信息,例如uid等
  13. -s 按各个协议进行统计
  14. -c 每隔一个固定时间,执行该netstat命令。
  15. 提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

查找特定端口:

netstat -a |grep 27017

来自为知笔记(Wiz)

时间: 2024-08-07 16:44:15

LINUX监控一:监控命令的相关文章

Linux常用系统性能监控命令

-->Linux常用系统性能监控命令 Linux常用系统性能监控命令 2016-01-19 Linux爱好者 Linux爱好者 Linux爱好者 微信号 LinuxHub 功能介绍 伯乐在线旗下账号,「Linux爱好者」专注分享 Linux/Unix 相关内容,包括:工具资源.使用技巧.课程书籍等.   来源:工学1号馆 链接:http://wuyudong.com/archives/56 监控CPU使用率 使用下面的命令: [[email protected] ~]# gnome-system

Linux服务器上监控网络带宽的18个常用命令

Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以显示单个进程所使用的带宽.这样一来,用户很容易发现过度使用网络带宽的某个进程. 这些工具使用不同的机制来制作流量报告.nload等一些工具可以读取"proc/net/dev"文件,以获得流量统计信息;而一些工具使用pcap库来捕获所有数据包,然后计算总数据量,从而

Linux CPU实时监控mpstat命令详解

Linux CPU实时监控mpstat命令详解 简介 mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中.在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息.mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据:而类似工具vmstat只能查看系统整体cpu情况. 语法 mpstat [-P {|ALL}] [internal [co

【No.2】监控Linux性能25个命令行工具

接着上一篇博文继续 [No.1]监控Linux性能25个命令行工具 10:mpstat -- 显示每个CPU的占用情况 该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的 mpstat -P ALL 1 Linux 3.13.0-75-generic (lnmp)  06/25/2016  _x86_64_ (2 CPU) 02:28:59 PM  CPU    %usr   %nice    %sys %iowait    %irq   %s

Linux系统性能10条命令监控

Linux系统性能10条命令监控 如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断. 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n

Linux中IO监控命令的使用分析

一篇不错的有关linux io监控命令的介绍和使用. 1.系统级IO监控 iostat iostat -xdm 1    # 个人习惯 %util         代表磁盘繁忙程度.100% 表示磁盘繁忙, 0%表示磁盘空闲.但是注意,磁盘繁忙不代表磁盘(带宽)利用率高 argrq-sz    提交给驱动层的IO请求大小,一般不小于4K,不大于max(readahead_kb, max_sectors_kb) 可用于判断当前的IO模式,一般情况下,尤其是磁盘繁忙时, 越大代表顺序,越小代表随机

Linux服务器上监控网络带宽的18个常用命令nload, iftop,iptraf-ng, nethogs, vnstat. nagios

Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 这些工具使用不同的机制来制作流量报告.nload等一些工具可以读取"proc/net/dev"文件,以获得流量统计信息:而一些工具使用pcap库来捕获所有数据包,然后计算总数据量,从而估计流量负载. 下面是按功能划分的命令名称. 监控总体带宽使用――nload.bmon.sl

用 Python 脚本实现对 Linux 服务器的监控

hon 分享到:8 原文出处: 曹江华 目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的脚本实现对 Linux 服务器的监控. 本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写. Python 版本说明 Python 是由 Guido va

Linux安装rpc监控系统资源

1.rpc服务需rsh的支持,一般情况下rsh已安装.rpm -qa rsh查看.2.右键另存为http://heanet.dl.sourceforge.net/sourceforge/rstatd/rpc.rstatd-4.0.1.tar.gz下载rpc.rstatd-4.0.1.tar.gz.3.执行以下命令解压和安装tar zxvf rpc.rstatd-4.0.1.tar.gzcd rpc.rstatd-4.0.1./configure   //配置make          //编译m

Day 7 Linux之系统监控、硬盘分区等

Linux之系统监控.硬盘分区等 系统监控 系统监视和进程控制工具—top和free 1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 2) 了解使用top命令列出系统状态时,系统默认每5秒刷新一下屏幕上的显示结果.  1.第一行是任务队列信息 14:54:36 当前时间 up 3:42 系统运行时间(时:分) 3 users 当前登录用户数 load average:0.03 0.05 0.10