京东商智_物理机cpu&load&memory监控参数说明

京东商智_物理机cpu&load&memory监控参数说明

Linux常用查看系统状态T命令

netstat

查看各种网络相关信息,如网络连接、路由表、接口状态、pid、程序名等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
jiazhengyang3@ZBMac-G44J4T0DY ~ % netstat
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 localhost.58046 localhost.58047 ESTABLISHED
tcp4 0 0 localhost.58047 localhost.58046 ESTABLISHED
tcp4 0 0 bogon.58038 tsa01s11-in-f10..https SYN_SENT
tcp4 0 0 bogon.58022 tsa03s08-in-f10..https SYN_SENT
tcp4 0 0 localhost.56641 localhost.58015 ESTABLISHED
tcp4 0 0 localhost.58015 localhost.56641 ESTABLISHED
tcp4 0 0 localhost.56641 localhost.58014 ESTABLISHED
tcp4 0 0 localhost.58014 localhost.56641 ESTABLISHED
tcp4 0 0 localhost.56641 localhost.58013 ESTABLISHED
tcp4 0 0 localhost.58013 localhost.56641 ESTABLISHED
tcp4 0 517 bogon.57993 tsa01s09-in-f10..https ESTABLISHED
tcp4 0 517 bogon.57548 tsa01s09-in-f10..https FIN_WAIT_1

top

查看CPU和内存使用情况,输出第一行为负载均衡,第二行为进程统计,第三行为cpu占用情况,第四行为
内存使用情况,第五行为交换分区使用情况,剩下的就是各个进程的详细监控数据。

以下case为macOS,略有不同:

1
2
3
4
5
6
7
8
9
10
11
Processes: 410 total, 5 running, 405 sleeping, 3222 threads                                           23:45:26
Load Avg: 5.92, 6.51, 7.26 CPU usage: 17.82% user, 12.28% sys, 69.89% idle
SharedLibs: 299M resident, 69M data, 14M linkedit.
MemRegions: 448904 total, 2578M resident, 371M private, 1500M shared.
PhysMem: 15G used (2660M wired), 79M unused.
VM: 137T vsize, 3823M framework vsize, 462953460(31) swapins, 468214307(0) swapouts.
Networks: packets: 69720517/27G in, 65290912/15G out. Disks: 295518772/15T read, 56002541/7782G written.

PID COMMAND %CPU TIME #TH #WQ #PORTS MEM PURG CMPRS PGRP PPID STATE
62859 CGEScheduler 99.9 192 hrs 80/1 1 978 27M 0B 22M 62859 174 running
27436 ReportCrash 99.7 179 hrs 10/1 1 108 6563K 0B 5088K 27436 1 running

df/du

df用于查看整个磁盘情况,du用于查看指定文件夹占用磁盘情况。

free

用于查看内存使用情况,比top命令多了一个buffers/cache标识内核使用的内存缓冲区情况。

1
2
3
4
5
[root@localhost ~]# free
total used free shared buffers cached
Mem: 515740 455452 60288 0 61456 311040
-/+ buffers/cache: 82956 432784
Swap: 1020116 0 1020116

CPU监控

User

User表示CPU一共花了多少比例的时间运行在用户态空间或者说是用户进程(running user space processes),这不包括运行操作系统内核代码的时间,典型的用户态空间程序有:Shells、数据库、web服务器等。

Nice

与User类似,Nice表示CPU执行优先级较低的用户级应用程序代码的时间。nice命令可以改变进程的优先级,nice值越高,优先级越低,范围为[-20,19]。

System

System表示CPU花了多少比例的时间在内核空间运行。分配内存、IO操作、创建子进程等都是内核操作,这也表明,当IO操作频繁时,System参数会很高。

Wait

在计算机中,读写磁盘的操作远比CPU运行的速度要慢,CPU负载处理数据,而数据一般在磁盘上需要读到内存中才能处理。当CPU发起读写操作后,需要等着磁盘驱动器将数据读入内存,从而导致CPU 在等待的这一段时间内无事可做,CPU处于这种等待状态的时间由Wait或IOWait参数来衡量。

Idle

Idel表示CPU处于空闲状态时间比例。一般而言,idel + user + nice 约等于100%,认真来说user + system + nice + idle + iowait + irq + softirq + … = 100%才是正确的。

Load监控

load average负载均衡,表示一段时间内的活跃进程数。上图中分别是1分钟、5分钟、15分钟的负载值,该值是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。

Memory监控

free命令可以直观的展示内存使用情况:

total

total表示内存总数。

used

used表示已经使用内存数。

free

free表示剩余内存数。注意used + free = total。

shared

shared表示不同进程间共享内存,共享内存是一种特殊类型的内存,可以被系统上的多个进程访问,使得进程间通信能够更快捷、高效。

buffers

buffers指的是缓冲(Buffer)内存的使用量。缓冲内存是由内核管理的内存区域,用于缓存(即临时存储)文件系统的元数据和跟踪在实际数据读写操作中使用的块设备(比如硬盘)的信息。当文件系统需要读写块设备数据时,它通常会首先检查缓冲区中是否已经存在该数据。如果数据已经在缓冲区中,那么可以直接从内存读取,而无需访问较慢的磁盘,从而提高了性能。

cached

cached指的是缓存(cached)内存的使用量。缓存是把读取过的数据保存在内存中,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。 简单来说,buffer是已经被读过的数据所在块的所有数据,是很可能即将要被读写的数据;而cache是已经被读取过的数据。

-buffers/cache

等于used - buffers - cached,表示被系统被实际使用掉的内存。

+buffers/cache

等于free + buffers + cached,表示可以挪用的内存总数。

Swap

Swap交换空间是一块磁盘上的空间,当系统的物理内存(RAM)不足时,操作系统可以使用这个交换空间作为一个临时的内存使用,是物理内存的一个扩展,可以视为硬盘上的虚拟内存。当系统内存不足时,操作系统会将不常用的内存页移到Swap空间中,以便释放物理内存给当前需要的进程使用。然而,因为交换空间位于硬盘上或者是固态驱动器上,所以其访问速度比直接访问物理内存慢得多,过度依赖交换空间会导致系统性能降低,这种情况被称为“交换爆炸”。通常,当系统使用了大量的Swap并且系统响应变慢时,可能是物理内存不足的迹象,需要考虑增加物理内存或优化当前运行的应用程序。