长沙java培训
达内长沙芙蓉路中心

18487146383

热门课程

检查Linux服务器性能的10条命令(三)

  • 时间:2016-10-11
  • 发布:长沙Java培训
  • 来源:codeceo

(7) free–m

$ free -m

total       used       free     shared    buffers     cached

Mem:        245998      24545     221453         83         59        541

-/+ buffers/cache:      23944     222053

Swap:            0          0          0

free命令可以查看系统内存的使用情况,-m参数表示按照兆字节展示。最后两列分别表示用于IO缓存的内存数,和用于文件系统页缓存的内存数。达内长沙java培训提醒大家需要注意的是,第二行-/+ buffers/cache,看上去缓存占用了大量内存空间。这是Linux系统的内存使用策略,尽可能的利用内存,如果应用程序需要内存,这部分内存会立即被回收并分配给应用程序。因此,这部分内存一般也被当成是可用内存。

如果可用内存非常少,系统可能会动用交换区(如果配置了的话),这样会增加IO开销(可以在iostat命令中提现),降低系统性能。

(8) sar -n DEV 1

$ sar -n DEV 1

Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015     _x86_64_    (32 CPU)

12:16:48 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil

12:16:49 AM      eth0  18763.00   5032.00  20686.42    478.30      0.00      0.00      0.00      0.00

12:16:49 AM        lo     14.00     14.00      1.36      1.36      0.00      0.00      0.00      0.00

12:16:49 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

12:16:49 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil

12:16:50 AM      eth0  19763.00   5101.00  21999.10    482.56      0.00      0.00      0.00      0.00

12:16:50 AM        lo     20.00     20.00      3.25      3.25      0.00      0.00      0.00      0.00

12:16:50 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

^C

sar命令在这里可以查看网络设备的吞吐率。在排查性能问题时,可以通过网络设备的吞吐量,判断网络设备是否已经饱和。如示例输出中,eth0网卡设备,吞吐率大概在22 Mbytes/s,既176 Mbits/sec,没有达到1Gbit/sec的硬件上限。

(9) sar -n TCP,ETCP 1

$ sar -n TCP,ETCP 1

Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015    _x86_64_    (32 CPU)

12:17:19 AM  active/s passive/s    iseg/s    oseg/s

12:17:20 AM      1.00      0.00  10233.00  18846.00

12:17:19 AM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s

12:17:20 AM      0.00      0.00      0.00      0.00      0.00

12:17:20 AM  active/s passive/s    iseg/s    oseg/s

12:17:21 AM      1.00      0.00   8359.00   6039.00

12:17:20 AM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s

12:17:21 AM      0.00      0.00      0.00      0.00      0.00

^C

sar命令在这里用于查看TCP连接状态,其中包括:

active/s:每秒本地发起的TCP连接数,既通过connect调用创建的TCP连接;

passive/s:每秒远程发起的TCP连接数,即通过accept调用创建的TCP连接;

retrans/s:每秒TCP重传数量;

TCP连接数可以用来判断性能问题是否由于建立了过多的连接,进一步可以判断是主动发起的连接,还是被动接受的连接。TCP重传可能是因为网络环境恶劣,或者服务器压力过大导致丢包。

(10)top

$ top

top - 00:15:40 up 21:56,  1 user,  load average: 31.09, 29.87, 29.92

Tasks: 871 total,   1 running, 868 sleeping,   0 stopped,   2 zombie

%Cpu(s): 96.8 us,  0.4 sy,  0.0 ni,  2.7 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem:  25190241+total, 24921688 used, 22698073+free,    60448 buffers

KiB Swap:        0 total,        0 used,        0 free.   554208 cached Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

20248 root      20   0  0.227t 0.012t  18748 S  3090  5.2  29812:58 java

4213 root      20   0 2722544  64640  44232 S  23.5  0.0 233:35.37 mesos-slave

66128 titancl+  20   0   24344   2332   1172 R   1.0  0.0   0:00.07 top

5235 root      20   0 38.227g 547004  49996 S   0.7  0.2   2:02.74 java

4299 root      20   0 20.015g 2.682g  16836 S   0.3  1.1  33:14.42 java

1 root      20   0   33620   2920   1496 S   0.0  0.0   0:03.82 init

2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kthreadd

3 root      20   0       0      0      0 S   0.0  0.0   0:05.35 ksoftirqd/0

5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H

6 root      20   0       0      0      0 S   0.0  0.0   0:06.94 kworker/u256:0

8 root      20   0       0      0      0 S   0.0  0.0   2:38.05 rcu_sched

top命令包含了前面好几个命令的检查的内容。比如系统负载情况(uptime)、系统内存使用情况(free)、系统CPU使用情况(vmstat)等。因此通过这个命令,可以相对全面的查看系统负载的来源。同时,top命令支持排序,可以按照不同的列排序,方便查找出诸如内存占用最多的进程、CPU占用率最高的进程等。

但是,top命令相对于前面一些命令,输出是一个瞬间值,如果不持续盯着,可能会错过一些线索。这时可能需要暂停top命令刷新,来记录和比对数据。

上一篇:检查Linux服务器性能的10条命令(二)
下一篇:Java8中你可能不知道的新特性(上)

达内长沙Java培训教你阅读GC日志

spring注入配置文件属性到java类

Java中Vector和ArrayList的区别

达内长沙Java培训详解volatile关键字

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货