首页 > 代码库 > Java性能优化权威指南-读书笔记(一)-操作系统性能监控工具

Java性能优化权威指南-读书笔记(一)-操作系统性能监控工具

一:CPU

1. 用户态CPU是指执行应用程序代码的时间占总CPU时间的百分比。

系统态CPU是指应用执行操作系统调用的时间占总CPU时间的百分比。系统态CPU高意味着共享资源有竞争或者I/O设备之间有大量的交互。

提高应用性能和扩展性的一个目标就是尽可能降低系统态CPU使用率。

2. CPU运行队列就是那些已经准备好运行、正等待可用CPU的轻量级进程。

当运行队列长度达到处理器的4被或者更多时,系统的相应就非常迟缓了。

解决运行队列长有两种办法:

1). 增加CPU以分担负载;

2). 分析系统中运行的应用,改进CPU使用率;

1. vmstat

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 104956    868 825812    0    0     1     5   16   25  0  0 100  0  0

r:CPU运行队列长度,值是运行队列中轻量级进程的实际数量

us:用户态CPU使用率

sy:系统态CPU使用率

id:CPU空闲率

2. top

top - 09:42:04 up 3 days, 3 min,  1 user,  load average: 0.00, 0.01, 0.05Tasks: 108 total,   3 running, 105 sleeping,   0 stopped,   0 zombie%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 stKiB Mem :  1015472 total,   104568 free,    84224 used,   826680 buff/cacheKiB Swap:        0 total,        0 free,        0 used.   727760 avail Mem   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                            784 root      20   0  553064  16340   5748 S  0.0  1.6   0:21.48 tuned                                                                                              743 root      20   0  110512  13140    676 S  0.0  1.3   0:00.13 dhclient                                                                                          9678 polkitd   20   0  527456  13128   4680 S  0.0  1.3   0:00.09 polkitd                                                                                              1 root      20   0   43684   6176   3804 S  0.0  0.6   0:05.08 systemd                                                                                          

上半部分是整个系统的统计信息,下半部分是进程的统计信息。

二:内存

1. 系统在使用页面交换或虚拟内存时,访问swap中内存以及JVM垃圾回收swap中内存时,都存在内存置换,性能肯定有问题;

2.

Java性能优化权威指南-读书笔记(一)-操作系统性能监控工具