查看CPU-内存等信息

157 阅读4分钟

查看CPU信息 (top命令)

pidstat 命令

查看进程占用的系统资源,包括CPU,内存,磁盘,IO,线程切换,线程数等数据

使用方式:pid -urd -p u表示cpu,r表示内存,d表示io

  1. 查看PID
[root@geoNode1 ~]# ps -elf |grep java
0 S root     27001 26979  2  80   0 - 1130740 futex_ 23:12 pts/1  00:00:06 java -jar idt-shelf-db-0.0.1-SNAPSHOT.jar
0 S root     27059 27034  0  80   0 - 28177 pipe_w 23:16 pts/2    00:00:00 grep --color=auto java

[root@geoNode1 ~]# jps
27001 idt-shelf-db-0.0.1-SNAPSHOT.jar
27132 Jps
  1. 查看CPU使用信息
[root@geoNode1 ~]# pidstat -u -p 27001
Linux 3.10.0-957.21.3.el7.x86_64 (geoNode1)     04/02/2022      _x86_64_        (4 CPU)

11:18:33 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
11:18:33 PM     0     27001    0.00    0.00    0.00    0.00     3  java
  1. 查看内存使用信息
[root@geoNode1 ~]# pidstat -r -p 27001
Linux 3.10.0-957.21.3.el7.x86_64 (geoNode1)     04/02/2022      _x86_64_        (4 CPU)

11:20:43 PM   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
11:20:43 PM     0     27001      0.00      0.00 4522960 110308   1.38  java
  1. 数据io使用信息
[root@geoNode1 ~]# pidstat -d -p 27001
Linux 3.10.0-957.21.3.el7.x86_64 (geoNode1)     04/02/2022      _x86_64_        (4 CPU)

11:21:56 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
11:21:56 PM     0     27001      0.00      0.00      0.00  java
  1. vmstat 显示关于内核线程,虚拟内存,磁盘I/O,陷阱和CPU占有率
[root@geoNode1 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 6402288 157024 1149212    0    0     0     1    1    1  0  0 99  0  0

重要参数说明

参数说明
cache操作系统会自动调节这个参数,当内存紧张时,cache值会减少以保证其他进程可用
cs线程环境的切换次数,如果该值太大,说明线程的同步机制有问题
si/so如果这两个值比较大,说明系统频繁使用交换区,需要关注系统的内存是否够用
bi/bo如果该值比较大,说明磁盘IO负载很高
  1. mpstat 实时监控CPU的统计信息,一般是几核CPU就会有几核的信息
[root@geoNode1 ~]# mpstat -P ALL
Linux 3.10.0-957.21.3.el7.x86_64 (geoNode1)     04/02/2022      _x86_64_        (4 CPU)

11:53:46 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
11:53:46 PM  all    0.27    0.00    0.40    0.00    0.00    0.00    0.00    0.00    0.00   99.33
11:53:46 PM    0    0.39    0.00    0.56    0.01    0.00    0.00    0.00    0.00    0.00   99.05
11:53:46 PM    1    0.15    0.00    0.24    0.00    0.00    0.00    0.00    0.00    0.00   99.61
11:53:46 PM    2    0.38    0.00    0.55    0.00    0.00    0.00    0.00    0.00    0.00   99.06
11:53:46 PM    3    0.16    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.59

查看内存

free 显示系统内存使用情况

包括总内存,已使用内存,内核使用缓冲区-包括buffer+cache

[root@geoNode1 ~]# free
              total        used        free      shared  buff/cache   available
Mem:        8008876      295316     6413704         536     1299856     7439684
Swap:             0

pmap (pmap -d pid)

显示底层的进程占用内存的信息,并且可以打印内存的地址,用于定位jvm的内存情况

[root@geoNode1 ~]# pmap -d 27207
27207:   java -jar idt-shelf-db-0.0.1-SNAPSHOT.jar -Xms1024m -Xmx1024m -XX:PermSize=128 -Xss256k
Address           Kbytes Mode  Offset           Device    Mapping
0000000000010000   51200 rw--- 0000000000000000 000:00000   [ anon ]
0000000003210000  153600 ----- 0000000000000000 000:00000   [ anon ]
0000000085cb1000      60 ----- 0000000000000000 000:00000   [ anon ]
0000000085cc0000   16320 rw--- 0000000000000000 000:00000   [ anon ]
0000000086cb0000 1973056 ----- 0000000000000000 000:00000   [ anon ]
00000000ff380000   12800 rw--- 0000000000000000 000:00000   [ anon ]
00005598898e5000       4 r-x-- 0000000000000000 0fd:00001 java
0000559889ae5000       4 r---- 0000000000000000 0fd:00001 java
0000559889ae6000       4 rw--- 0000000000001000 0fd:00001 java