$ free -m
total used free shared buffers cached
Mem: 15948 15261 687 304 37 6343
-/+ buffers/cache: 8880 7068
Swap: 0 0 0
Mem
是从 操作系统
的角度来看的 15948 = 15261 + 687
-/+ buffers/cache
是从 应用程序
的角度来看的 8880 ≈ (15261 - 37 - 6343 = 8881) 7068 ≈ (687 + 37 + 6343 = 7067)
$ vmstat -S M 1 5
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 295 1 5684 0 0 8 23 1 2 5 1 93 0 0
0 0 0 295 1 5684 0 0 0 0 11326 25112 6 5 90 0 0
0 0 0 295 1 5685 0 0 0 0 10855 24065 2 2 96 0 0
0 0 0 294 1 5686 0 0 0 4 11756 25472 4 2 94 0 0
0 0 0 294 1 5686 0 0 0 0 10208 22726 4 4 91 0 0
$ free -m
total used free shared buffers cached
Mem: 15948 15655 293 5362 1 5687
-/+ buffers/cache: 9966 5981
Swap: 0 0 0
-u
: Report CPU utilization
-r
: Report page faults
and memory utilization
-d
: Report I/O statistics
-w
: Report task switching activity
-t
: Also display statistics for threads
associated with selected tasks -p { pid [,...] | SELF | ALL }
: Select tasks (processes) for which statistics are to be reported $ pidstat -u -p 4256 1 3
Linux 2.6.32-696.el6.x86_64 (XXXX) 2019年XX月XX日 _x86_64_ (32 CPU)
22时59分32秒 PID %usr %system %guest %CPU CPU Command
22时59分33秒 4256 71.00 13.00 0.00 84.00 1 java
22时59分34秒 4256 60.00 10.00 0.00 70.00 1 java
22时59分35秒 4256 76.24 12.87 0.00 89.11 1 java
平均时间: 4256 69.10 11.96 0.00 81.06 - java
$ pidstat -u -I -p 4256 1 3
Linux 2.6.32-696.el6.x86_64 (XXXX) 2019年XX月XX日 _x86_64_ (32 CPU)
23时06分18秒 PID %usr %system %guest %CPU CPU Command
23时06分19秒 4256 69.31 12.87 0.00 2.63 1 java
23时06分20秒 4256 69.00 12.00 0.00 2.57 1 java
23时06分21秒 4256 62.00 12.00 0.00 2.34 1 java
平均时间: 4256 66.78 12.29 0.00 2.51 - java
$ pidstat -r -p 4256 1 3
23时11分26秒 PID minflt/s majflt/s VSZ RSS %MEM Command
23时11分27秒 4256 2132.00 0.00 22427892 5172756 7.84 java
23时11分28秒 4256 1623.00 0.00 22427892 5172728 7.84 java
23时11分29秒 4256 1942.00 0.00 22427892 5172728 7.84 java
平均时间: 4256 1899.00 0.00 22427892 5172737 7.84 java
$ pidstat -d -p 4256 1 3
23时24分59秒 PID kB_rd/s kB_wr/s kB_ccwr/s Command
23时25分00秒 4256 0.00 408.00 0.00 java
23时25分01秒 4256 0.00 356.44 0.00 java
23时25分02秒 4256 0.00 375.76 0.00 java
平均时间: 4256 0.00 380.00 0.00 java
$ pidstat -w -p 4256 1 3
22时54分33秒 PID cswch/s nvcswch/s Command
22时54分34秒 4256 0.00 0.00 java
22时54分35秒 4256 0.00 0.00 java
22时54分36秒 4256 0.00 0.00 java
平均时间: 4256 0.00 0.00 java
$ pidstat -w -t -p 4256 | head -n 10
23时32分03秒 TGID TID cswch/s nvcswch/s Command
23时32分03秒 4256 - 0.00 0.00 java
23时32分03秒 - 4256 0.00 0.00 |__java
23时32分03秒 - 4259 0.00 0.00 |__java
23时32分03秒 - 4306 0.04 0.01 |__java
23时32分03秒 - 4307 0.04 0.01 |__java
23时32分03秒 - 4308 0.04 0.01 |__java
23时32分03秒 - 4315 0.04 0.01 |__java
jstack可以查看 线程堆栈
的运行情况,可以结合 pidstat -t -p PID
来查看具体线程的 状态
$ sudo /usr/local/java/bin/jstack -F 5850
Thread 5853: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- java.lang.Object.wait() @bci=2, line=503 (Interpreted frame)
- xx.xx.xx.service.client.proxy.Provider.start() @bci=889, line=208 (Interpreted frame)
- xx.xx.xx.xx.xx.main(java.lang.String[]) @bci=368, line=90 (Interpreted frame)