Linux的内存和进程的查看和windows的查看基本是一样的。
一、内存
Linux 内存是后台开发人员,需要深入了解的计算机资源。合理的使用内存,有助于提升机器的性能和稳定性
free命令
free:查看内存的使用情况 (默认单位是字节)
选项:
-m:以兆为单位进行显示
-g:以吉字节为单位进行显示
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 1863000 483584 980900 12764 398516 1207056
Swap: 2097148 0 2097148
Mem:内存信息
Swap:交换分区(由于现在内存的廉价,交换分区已经很少使用。现在以是历史的产物)
- total:显示一共多少内存
- used:显示使用多少内存
- free:剩余多少内存
- shared:共享内存占用的内存地址空间
- buff/cache:缓存、缓存占用的内存地址空间
- available:可用内存
主要是看available:可用内存
二、进程
即使我们不会编程,我们依然可以很容易的理解什么是进程。
例如windows里面的:任务管理器
top 命令
top:以动态形式展示进程的信息(每隔几秒刷新一次)
[root@localhost ~]# top
top - 15:37:27 up 5:35, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 175 total, 1 running, 174 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1863000 total, 989336 free, 475176 used, 398488 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1215520 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125732 4208 2604 S 0.0 0.2 0:01.33 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 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.38 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
top头部信息信息说明:
第一行:
top - 15:37:27 up 5:35, 2 users, load average: 0.00, 0.01, 0.05
当前时间 运行时间 当前2个用户登录系统 cpu在过去1分钟、5分钟、15分钟的负载
第二行:
Tasks: 175 total, 1 running, 174 sleeping, 0 stopped, 0 zombie
一共有175个进程 1个进程在运行 174个正在睡眠 停止状态的进程数量 僵死状态的进程数
第三行:
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
用户空间进程占用cpu比例 内核空间进程比例 调整nice值的进程的比例 cpu的空闲比例
0.0%wa cpu等待IO完成的时间比例(该值大,那么说明磁盘太慢,或者内存不足)
0.0%hi, 0.0%si, 0.0%st表示硬中断和软中断的比例 CPU被偷走的时间比例
第四行:
KiB Mem : 1863000 total, 989336 free, 475176 used, 398488 buff/cache
内存的总大小 空余的 使用的 缓冲/缓存的
第五行:
KiB Swap: 2097148 total, 2097148 free, 0 used. 1215520 avail Mem
交换分区的总大小 空余的 使用的, 这个是可用的内存(一行占不下)
top详细信息说明:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125732 4208 2604 S 0.0 0.2 0:01.33 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 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.38 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
- PID:进程ID
- USER:该进程有那个用户发起
- PR:进程优先级
- NI:进程NI值
- VIRT:虚拟内存及(可以清楚)
- RES:常驻内存及(不可以清楚)
- SHR:共享空间数据所占用的空间大小
- S:进程的static状态
- %CPU:进程所占cup的百分比
- %MEM:进程所占内存的百分比
- TIME+:该进程使用CPU时长
- COMMAND:该进程是由那个命令发起的
平均负载
单核cpu的话:
1:表示当前是满负载
小于1:表示是还没有达到最大负载
大余1:表示已经超负载
双核cpu的话:
2:表示当前是满负载
小于2:表示是还没有达到最大负载
大余2:表示已经超负载
ps命令
ps:查看进程信息
ps aux
ps -elf
[root@localhost ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 31433 ep_pol 10:02 ? 00:00:01 /usr/lib/systemd/s
1 S root 2 0 0 80 0 - 0 kthrea 10:02 ? 00:00:00 [kthreadd]
1 S root 4 2 0 60 -20 - 0 worker 10:02 ? 00:00:00 [kworker/0:0H]
1 S root 6 2 0 80 0 - 0 smpboo 10:02 ? 00:00:00 [ksoftirqd/0]
1 S root 7 2 0 -40 - - 0 smpboo 10:02 ? 00:00:00 [migration/0]
1 S root 8 2 0 80 0 - 0 rcu_gp 10:02 ? 00:00:00 [rcu_bh]
1 R root 9 2 0 80 0 - 0 - 10:02 ? 00:00:00 [rcu_sched]
1 S root 10 2 0 60 -20 - 0 rescue 10:02 ? 00:00:00 [lru-add-drain]
5 S root 11 2 0 -40 - - 0 smpboo 10:02 ? 00:00:00 [watchdog/0]
- F:进程的表示
- S:进程的状态
- UID:发起进程的用户
- PID:进程的ID
- PPID:进程的父进程的ID(每个进程都有其父进程)
- SZ:进程占用的内存大小
- TTY:表示进程是终端相关进程还是终端无关进程
- ?:表示终端无关进程
- tty1或者pts/0:表示终端相关进程
- 终端相关进程:终端一旦关闭,进程就结束了。相反同理
两个文件
[root@localhost home]# cat /proc/meminfo
[root@localhost home]# cat /proc/cpuinfo
伪文件系统
/proc
/sys
特点:
1:伪文件不是真实的文件,是物理硬件设备的映射
2:伪文件是在系统开始的时候生成,在系统关机的时候自动删除
3:伪文件可以用cat进行查看,但是不能用vi进行编辑
4:伪文件都是保存在内存中的
结束进程
命令:kill
格式:kill 信号 进程id
信号:
-9:立刻杀死进程
-15:等待用户访问结束(断开连接),在杀死进程
案例:批量关闭httpd的进程
[root@localhost home]# kill -9 `ps -elf | grep httpd | grep -v "grep" | awk -F " " '{print $4}'`