一、内存监控

监控内存的使用状态是非常重要的,通过监控有助于了解内存的使用状态,比如内存占用是否正常,内存是否紧缺等等,监控内存最常使用的命令有free、vmstat、top等

1.1 free

$ free
total used free shared buffers cached
Mem: 32872632 12393128 20479504 0 23308 7496048
-/+ buffers/cache: 4873772 27998860
Swap: 0 0 0

第一行(Mem):

  • total:内存总数 32872632 KB
  • used:已使用的内存数 12393128 KB
  • free:空闲的内存数 20479504 KB
  • shared:多个进程共享的内存,总是0
  • buffers:缓存内存数 23308 KB
  • cached:缓存内存数 7496048 KB

第二行(-/+ buffers/cache):

  • used:第一行Mem中的 used - buffers - cached = 12393128 - 23308 - 7496048 = 4873772 KB
  • free:第一行Mem中的 free + buffers + cached = 20479504 + 23308 + 7496048 = 27998860 KB
  • 可见这一行【used-buffers/cache】反映的是被程序实实在在吃掉的内存,【used+buffers/cache】反映的是可以挪用的内存总数。

第三行(Swap):表示交换分区的内存使用状态。

第一行内存状态是对于操作系统来说的,buffers/cached 都是属于被使用。

第二行内存状态是对于应用程序来说的,对于应用程序来说,buffers/cached占有的内存是可用的,因为buffers/cached是为了提高程序执行的性能,当应用程序需要用到内存的时候buffers/cached会很快地被回收,以供应用程序使用。

通常我们是从应用的角度来看的,所以只看第二行就行了。

另外,我们可以使用参数-m-g来以MBGB单位显示:

$ free -m
total used free shared buffers cached
Mem: 32102 12104 19998 0 22 7320
-/+ buffers/cache: 4760 27341
Swap: 0 0 0

1.2 vmstat

vmstat(Virtual Meomory Statistics,虚拟内存统计)是对系统的整体情况进行统计,包括内核进程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。

$ vmstat 2 100      # 2表示刷新间隔,100表示输出次数

结果如下:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 192532 91788 88812 0 0 2 1 20 30 0 0 100 0 0
0 0 0 192492 91788 88812 0 0 0 0 31 35 0 1 99 0 0
0 0 0 192492 91788 88812 0 0 0 0 23 30 0 0 100 0 0
0 0 0 192492 91788 88812 0 0 0 0 22 30 0 0 100 0 0
0 0 0 192492 91788 88812 0 0 0 0 22 31 0 1 100 0 0
0 0 0 192492 91788 88812 0 0 0 0 21 29 0 0 100 0 0
0 0 0 192492 91788 88812 0 0 0 0 21 30 0 0 100 0 0
0 0 0 192492 91788 88812 0 0 0 0 21 28 0 0 100 0 0

1)procs

  • r列表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,就说明CPU资源不足,可以考虑增加CPU;
  • b列表示在等待资源的进程数,比如正在等待I/O或者内存交换等。

2)memory

  • swpd列表示切换到内存交换区的内存数量(以KB为单位)。如果swpd的值不为0或者比较大,而且si、so的值长期为0,那么这种情况一般不用担心,不会影响系统性能;
  • free列表示当前空闲的物理内存数量(以KB为单位);
  • buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲;
  • cache列表示page cached的内存数量,一般作文件系统的cached,频繁访问的文件都会被cached。如果cached值较大,就说明cached文件数较多。如果此时IO中的bi比较小,就说明文件系统效率比较好。

3)swap

  • si列表示由磁盘调入内存,也就是内存进入内存交换区的数量;
  • so列表示由内存调入磁盘,也就是内存交换区进入内存的数量
  • 一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足,需要考虑是否增加系统内存。

4)IO

  • bi列表示从块设备读入的数据总量(即读磁盘,单位KB/秒)
  • bo列表示写入到块设备的数据总量(即写磁盘,单位KB/秒)

    这里设置的bi+bo参考值为1000,如果超过1000,而且wa值比较大,则表示系统磁盘IO性能瓶颈。

5)system

  • in列表示在某一时间间隔中观察到的每秒设备中断数;
  • cs列表示每秒产生的上下文切换次数。

    上面这两个值越大,会看到内核消耗的CPU时间就越多。

6)CPU

  • us列显示了用户进程消耗CPU的时间百分比。us的值比较高时,说明用户进程消耗的CPU时间多,如果长期大于50%,需要考虑优化程序啥的。
  • sy列显示了内核进程消耗CPU的时间百分比。sy的值比较高时,说明内核消耗的CPU时间多;如果us+sy超过80%,就说明CPU的资源存在不足。
  • id列显示了CPU处在空闲状态的时间百分比;
  • wa列表示IO等待所占的CPU时间百分比。wa值越高,说明IO等待越严重。如果wa值超过20%,说明IO等待严重。
  • st列一般不关注,虚拟机占用的时间百分比。
$ vmstat -s      # 查看内存使用的详细信息

     32872632  total memory
25946240 used memory
21298968 active memory
3228124 inactive memory
6926392 free memory
79764 buffer memory
6767888 swap cache
0 total swap
0 used swap
0 free swap
5625247020 non-nice user cpu ticks
75476 nice user cpu ticks
3961269668 system cpu ticks
228172341381 idle cpu ticks
1685706618 IO-wait cpu ticks
11227 IRQ cpu ticks
537233093 softirq cpu ticks
0 stolen cpu ticks
817859502644 pages paged in
874791545051 pages paged out
0 pages swapped in
0 pages swapped out
1845948435 interrupts
2656703667 CPU context switches
1341191961 boot time
1691075642 forks

上面的信息主要来自于/proc/meminfo/proc/stat/proc/vmstat

二、CPU监控

2.1 top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况及总体状况,类似于Windows的任务管理器。

top - 20:32:28 up 1149 days, 11:13,  2 users,  load average: 2.97, 2.42, 1.67
Tasks: 671 total, 1 running, 669 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.2%us, 0.1%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 32872632k total, 12336240k used, 20536392k free, 23064k buffers
Swap: 0k total, 0k used, 0k free, 7441684k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2543 root 20 0 9204 636 396 S 0.7 0.0 614:57.76 irqbalance
4279 work 20 0 15.8g 1.4g 10m S 0.7 4.6 121:19.27 java
11761 work 20 0 153m 7192 1080 S 0.7 0.0 642:26.65 python

第一行:

  • 20:32:28: 当前时间
  • up 1149 days, 11:13:系统运行时间,系统已经运行了1149天11小时13分钟了。
  • 2 users:当前登录用户数
  • load average:系统负载,即任务队列的平均长度。三个数值分别为最近1分钟、最近5分钟、最近15分钟的平均负载 —— 超过N(CPU核数)说明系统满负荷运行。也可以通过$w$uptime命令查看load average。

第二行:

  • 显示进程总数、正在运行的进程数、休眠的进程数、停止的进程数、僵尸进程数

第三行:

  • %us:用户进程消耗的CPU百分比
  • %sy:内核进程消耗的CPU百分比
  • %ni:改变过优先级的进程占用CPU的百分比
  • %id:空闲CPU的百分比
  • %wa:IO等待消耗的CPU百分比

按”1”查看单个CPU的状况:

top - 20:32:49 up 1149 days, 11:13,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 671 total, 1 running, 669 sleeping, 0 stopped, 1 zombie
Cpu0 : 1.0%us, 0.7%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.7%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu8 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu9 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu10 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu11 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu12 : 1.0%us, 0.3%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu13 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu14 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu15 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu16 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu17 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu18 : 0.7%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu19 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu20 : 0.7%us, 1.0%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu21 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu22 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu23 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 32872632k total, 12336360k used, 20536272k free, 23080k buffers
Swap: 0k total, 0k used, 0k free, 7441976k cached

另外,下面的命令可以查看CPU的核数:

$ grep 'model name' /proc/cpuinfo | wc -l
24

2.2 mpstat

mpstat(Multiprocessor Statistics,多处理器统计)是实时系统监控工具,它会报告与CPU相关的统计信息,这些信息存放在/proc/stat文件中。

$ mpstat -P ALL 2        # ALL表示显示所有CPUs,也可以指定某个CPU;2表示刷新间隔
Linux 2.6.32-2.0.0.1 (localhost)    2015年09月05日     _x86_64_    (24 CPU)

18时52分35秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
18时52分37秒 all 0.23 0.00 0.12 0.00 0.00 0.00 0.00 0.00 99.65
18时52分37秒 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 1 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
18时52分37秒 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 6 1.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 98.99
18时52分37秒 7 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
18时52分37秒 8 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 10 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
18时52分37秒 11 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 12 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.00
18时52分37秒 13 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
18时52分37秒 14 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 15 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 18 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.00
18时52分37秒 19 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.50
18时52分37秒 20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
18时52分37秒 21 0.50 0.00 1.50 0.00 0.00 0.00 0.00 0.00 98.00
18时52分37秒 22 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
18时52分37秒 23 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

至于各百分比的含义前面已经介绍过了,这里就不再赘述。

三、网络监控

3.1 ethtool

使用ethtool查看网卡带宽,需要root权限:

# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000003 (3)
Link detected: yes

可以看出网卡eth0的带宽为1000Mbps(兆比特每秒),所以理论上的网速极限为1000÷8 = 125MB/s。

3.2 sar

$ sar -n DEV 3 100
$ sar -n DEV 3 100
Linux 2.6.32-2.0.0.1 (localhost) 08/25/2015 _x86_64_ (24 CPU) 08:37:55 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:37:58 PM lo 2.01 2.01 0.44 0.44 0.00 0.00 0.00
08:37:58 PM eth0 5.35 0.00 0.49 0.00 0.00 0.00 0.00
08:37:58 PM eth1 12.04 3.01 0.95 0.86 0.00 0.00 0.00 08:37:58 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:38:01 PM lo 9.00 9.00 2.52 2.52 0.00 0.00 0.00
08:38:01 PM eth0 17.33 0.00 1.02 0.00 0.00 0.00 0.00
08:38:01 PM eth1 24.33 12.67 3.04 6.48 0.00 0.00 0.00
  • IFACE:网络设备的名称
  • rxpck/s:每秒钟接收到的包数目
  • txpck/s:每秒钟发送出去的包数目
  • rxkB/s:每秒钟接收到的字节数
  • txkB/s:每秒钟发送出去的字节数

3.3 netstat

netstat命令一般用于检验本机各端口的网络连接情况,用于显示与IP、TCP、UDP和ICMP协议相关的统计数据。

部分选项如下:

    -a, --all, --listening     显示所有连接中的Socket。
-n, --numeric 以数字形式显示地址和端口号。
-t, -–tcp 显示TCP传输协议的连线状况。
-u, -–udp 显示UDP传输协议的连线状况。
-p, --programs 显示正在使用socket的程序名/进程ID
-l, --listening 显示监控中的服务器的Socket。
-o, --timers 显示计时器。
-s, --statistics 显示每个网络协议的统计信息(比如SNMP)
-i, --interfaces 显示网络界面信息表单(网卡列表)
-r, --route 显示路由表

常用的几种:

$ netstat -aup        # 输出所有UDP连接状况
$ netstat -atp # 输出所有TCP连接状况
$ netstat -s # 显示各个协议的网络统计信息
$ netstat -i # 显示网卡列表
$ netstat -r # 显示路由表信息

找出程序运行的端口:

$ netstat -ap | grep ssh

找出运行在指定端口的进程:

$ netstat -anp | grep 60010

四、磁盘监控

4.1 df

df命令的功能是用来检查linux的文件系统的磁盘空间占用情况。如果没有文件名被指定,则显示当前所有被挂载的文件系统,默认以 KB 为单位。

常用选项如下:

-a  全部文件系统列表
-h 以方便阅读的方式显示
-i 显示inode信息
-T 显示文件系统类型
-l 只显示本地文件系统
-k 以KB为单位
-m 以MB为单位

最常用的就是$ df -h

4.2 iostat

上面在介绍CPU监控时,就可以看到%wa%iowait这一项,它表示I/O等待所占用CPU的百分比。为了得到关于磁盘IO更详细的状态信息,可以使用 iostat(I/O statistics,输入输出统计)命令:

    -c 显示CPU使用情况
-d 显示磁盘使用情况
-k 以 KB 为单位显示
-m 以 M 为单位显示
-x 显示详细信息
$ iostat -x -k 2 100        # 2表示刷新间隔,100表示刷新次数

Linux 2.6.32-2.0.0.1 (localhost)    2015年09月05日     _x86_64_    (24 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
2.34 0.00 1.87 0.70 0.00 95.08 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sdj 0.06 0.13 6.18 2.20 708.94 740.47 345.95 0.00 5.32 2.63 2.20
sdd 0.06 0.13 6.34 2.15 716.75 722.91 339.00 0.02 2.07 2.73 2.32
sdb 0.05 0.12 3.01 1.68 365.89 581.01 404.05 0.02 3.26 2.19 1.03
sdf 0.06 0.14 6.25 2.21 712.99 741.76 343.92 0.00 5.20 2.62 2.22
sda 0.30 1.86 9.34 5.54 705.95 766.81 197.98 0.03 1.88 2.72 4.05

iostat主要是用来监控磁盘I/O,首先输出了CPUs的平均数据(avg-cpu),我们可以看%iowait这一项,除此之外iostat还提供了一些更详细的I/O状态数据,比如

  • r/s: 每秒完成的读 I/O 设备次数。
  • w/s: 每秒完成的写 I/O 设备次数。
  • rkB/s: 每秒读K字节数.是 rsect/s 的一半,因为每扇区大小为512字节。
  • wkB/s: 每秒写K字节数.是 wsect/s 的一半。
  • avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
  • avgqu-sz: 平均I/O队列长度。
  • await: 平均每次设备I/O操作的等待时间 (毫秒)。
  • svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
  • %util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。

五、进程监控

5.1 top

前面介绍过的top命令中可以对进程进行监控,其中一行就输出了进程的总体情况:

Tasks: 661 total,   1 running, 659 sleeping,   0 stopped,   1 zombie

默认情况下,top按照CPU使用率对各个进程进行排序。

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
2543 root 20 0 9204 636 396 S 0.7 0.0 614:57.76 irqbalance
4279 work 20 0 15.8g 1.4g 10m S 0.7 4.6 121:19.27 java
11761 work 20 0 153m 7192 1080 S 0.7 0.0 642:26.65 python
  • RES:进程使用的物理内存大小
  • SHR:进程共享内存大小
  • S:进程状态(R表示运行 ,S表示睡眠,Z表示僵死,D表示不可中断的睡眠)

在top运行状态下,输入M按内存使用率排序、输入P按CPU占用率排序、输入T按累计时间排序、输入c显示进程的启动命令,输入u显示指定用户的进程。

$ top -p <pid> 

动态显示进程号为pid的进程的状态。

5.2 ps

ps(Process Status,进程状态)命令是最基本同时也是非常强大的进程查看命令,最常用的命令就是ps aux——显示当前所有进程

$ ps aux | grep root       # 输出root用户的所有进程
$ ps -p <pid> -L # 显示进程<pid>的所有线程
$ ps -e -o pid,uname,pcpu,pmem,comm # 定制显示的列
$ ps -o lstart <pid> # 显示进程的启动时间

ps命令的输出可以按任意某一列进行排序,通过使用内部排序键(列的别名),例如:

$ ps aux --sort=+rss         # 按内存升序排列
$ ps aux --sort=-rss # 按内存降序排列
$ ps aux --sort=+%cpu # 按cpu升序排列
$ ps aux --sort=-%cpu # 按cpu降序排列

ps命令的用法太多了,掌握一些常用的用法就好。如需了解更多的可选项,可以查看man手册。

个人站点:http://songlee24.github.com

常用linux系统监控命令的更多相关文章

  1. Linux系统监控命令及如何定位到Java线程

    >>PID.TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID ...

  2. Linux系统监控命令及定位Java线程

    1.PID.TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID.GID:~ ...

  3. 总结:常用的Linux系统监控命令

    记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了 找到最耗CPU的java线程 ps命令 命令: ps -mp pid -o THREAD,tid,time 或者 ps -Lf ...

  4. 常用的linux系统监控命令

    记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了 找到最耗CPU的java线程 ps命令 命令:ps -mp pid -o THREAD,tid,time   或者  ps - ...

  5. 常用的linux系统监控命令整理

    找到最耗CPU的java线程ps命令 命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid 结果展示: 这个命令的作用,主要是可以获取到对应一个进程下的线程的 ...

  6. 总结:常用的Linux系统监控命令(2)

    判断I/O瓶颈 mpstat命令 命令:mpstat -P ALL 1 1000 结果显示: 注意一下这里面的%iowait列,CPU等待I/O操作所花费的时间.这个值持续很高通常可能是I/O瓶颈所导 ...

  7. Linux记录-linux系统监控命令汇总

    命令 功能应用 用法举例     free 查看内存使用情况,包括物理内存和虚拟内存 free -h或free -m     vmstat 对系统的整体情况进行统计,包括内核进程.虚拟内存.磁盘.陷阱 ...

  8. linux 系统监控命令之 top-(转自 Howie的专栏)

    top命令经常用来监控linux的系统状况,比如cpu.内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解. 本文通过一个运行中的 ...

  9. Linux系统监控命令之iotop

    iotop命令 iotop命令是一个用来监视磁盘I/O使用状况的top类工具.iotop具有与top相似的UI,其中包括PID.用户.I/O.进程等相关信息.Linux下的IO统计工具如iostat, ...

随机推荐

  1. 快速入门Numpy

    教你十分钟学会使用numpy. 简单介绍一下numpy的话,这就是一个基于多维数组的python科学计算的核心库. 基本信息 # 一般用np作为numpy的缩写 import numpy as np ...

  2. PAT Basic 1025

    1025 反转链表 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4,则输出应该为4→3→2 ...

  3. 封装微信分享到朋友/朋友圈js

    在页面引入: <script src="/static/lib/jquery-2.2.2.min.js"></script><script src=& ...

  4. python基础学习笔记——文件操作

    文件操作 初始文件操作 使用Python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了 根据打开方式的不同能够执行的操作 ...

  5. return_url notify_url

    return_url对返回订单状态进行更新和判断,notify_url为异步调动页面,需要先判断notify_url里是否对订单数据做过处理,避免重复更新数据,然后如果用户付款成功直接关闭页面,会造成 ...

  6. 00049_super关键字

    1.子父类中构造方法的调用 (1)在创建子类对象时,父类的构造方法会先执行,因为子类中所有构造方法的第一行有默认的隐式super();语句: (2)格式 调用本类中的构造方法 this(实参列表); ...

  7. 图论trainning-part-1 F. Highways

    F. Highways Time Limit: 1000ms Memory Limit: 10000KB 64-bit integer IO format: %lld      Java class ...

  8. HDU-1392 Surround the Trees,凸包入门!

    Surround the Trees 此题讨论区里大喊有坑,原谅我没有仔细读题还跳过了坑点. 题意:平面上有n棵树,选一些树用绳子围成一个包围圈,使得所有的树都在这个圈内. 思路:简单凸包入门题,凸包 ...

  9. RHEL7网卡命名规则

    systemd 和 udev 引入了一种新的网络设备命名方式:一致网络设备命名(CONSISTENT NETWORK DEVICE NAMING).根据固件.拓扑.位置信息来设置固定名字,带来的好处是 ...

  10. Android点击两次返回退出程序

    代码改变世界 Android点击两次返回退出程序 private long mExitTime; public boolean onKeyDown(int keyCode, KeyEvent even ...