vmstat对Java程序的pidstat结果分析

时间:2015-11-05 03:11:41

标签: java linux context-switch

vmstat 1 100

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 2307452 283392 712136 0 0 2 2 17 21 0 1 99 0 0
 3 0 0 2307436 283392 712136 0 0 0 0 10677 3455 21 43 35 0 0
 4 0 0 2307436 283392 712136 0 0 0 0 10700 3620 22 42 36 0 0
 3 0 0 2307436 283392 712136 0 0 0 0 10549 3523 21 43 36 0 0

pidstat -I -w -p 3809 2

PID cswch / s nvcswch / s命令

3809 0.00 0.00 java

3809 0.00 0.00 java

3809 0.00 0.00 java

我正在进行压力测试。服务器程序是WebSocket服务器,可接受10,000个客户端连接。每个客户端连接每2秒向服务器发送一条消息,服务器每2秒向每个客户端发送一条消息。

我的问题是:

1)从 vmstat 1 100 ,似乎cpu(sy是42%,我们是21%左右)正在做很多系统级工作而不是用户级工作。所以我认为CPU的上下文切换太多了。

但是,从 pidstat cswch / s nvcswch / s 对于服务器程序都是0。我认为这个结果意味着没有太多的CPU上下文切换。

有人可以帮忙解释一下Linux服务器监控结果吗?

1 个答案:

答案 0 :(得分:0)

  • pidstat正在引用进程3809
  • vmstat正在测量系统的所有过程,因为您只设置采样频率