1、cpu
查看cpu
[root@fttsaxf ~]# top
top - 17:48:11 up 16 min, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 108 total, 2 running, 106 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1863032 total, 1533444 free, 195136 used, 134452 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1521024 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1584 root 20 0 0 0 0 S 0.3 0.0 0:00.04 kworker/1:0
1 root 20 0 43420 3844 2572 S 0.0 0.2 0:01.57 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
4 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:00.13 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.04 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
# load average: cpu的平均负载率,1分钟,5分钟,15分钟的ready和running队列里的进程的平均数量。每时每刻超过1个进程,就说明cpu很忙
这里边这个排序,默认情况下是根据CPU排序的。
- 若要按照内存排序(%MEM)按"M";
- 若是想要根据CPU排序,按"P";
- 看有几个cpu,按数字1
就绪队列或者阻塞队列中的进程都是"sleeping"的;stopped,是挂起的进程;zombie,是僵尸进程(子进程退出的时候,父进程没有回收它的空间,导致“死而不化”,死掉了还是占着空间。解决方法,kill它的父进程)。
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
"us",是用户进程所消耗的cpu;"sy",是系统内存消耗的cpu;"id",是空闲的。一般只看这三个就行了
1.1、内存
系统开机之后,分两块空间,user space和kernel space;代码一般存放再磁盘(disk)中,当进程运行起来之后,把代码加载到内存中来,在内存中开辟一块空间存放。
[root@fttsaxf ~]# free -h # 以人类可以识别的大小显示
total used free shared buff/cache available
Mem: 1.8G 190M 1.5G 9.5M 131M 1.5G
Swap: 2.0G 0B 2.0G
[root@fttsaxf ~]# free -m # 所有单位都是兆
total used free shared buff/cache available
Mem: 1819 190 1497 9 131 1485
Swap: 2047 0 2047
- 上面这"Mem"这一行代表着物理内存,
- "Swap",交换分区,从磁盘中拿出一块空间来做内存使用,一般不要使用
- "total",是总共有多少内存
- used,使用了多少内存
- free,剩余(空闲)多少内存可以使用
- shared,共享内存占用的空间
- buff/cache。buffer,从内存往磁盘写数据的时候的缓存(memory data write to disk);cache,从磁盘读数据到内存的缓存(read data from disk to memory)。它们都能起到加快读写速度,提高效率的作用。因为内存的数据速度快,磁盘的数据慢很多。减少了IO次数,即读写磁盘的速度。
例如这里有一个app,我们要写到磁盘里边去。首先会把数据写到buffer里边,buffer满了,kernel的代码就会操纵buffer,把buffer刷到disk里边;读数据的时候,先会读到cache中,要用的时候到cache里边去拿
- available,等于free + buffer/cache里还没有使用的缓存空间。后面的程序还可以使用多少空间