一、实验内容
- Linux 命令FREE显示内存状态情况,观察结果并分析;
- 用VMSTAT命令监视虚拟内存使用情况,观察结果并分析;
- 使用PS和KILL命令回收内存,观察结果并分析(例如:可以打开两个终端,一个终端先运行无限循环程序,然后再另一个终端KILL该进程);
- 使用SYNC命令将内存缓冲区的数据写入磁盘;
- 观察ULIMIT命令结果,写出用法和作用。
二、实验结果
①Linux 命令FREE显示内存状态情况,观察结果并分析;
结果分析:
mem为内存使用情况,swap为交换内存使用情况。交换内存为磁盘上的一片空间,用于内存不足时使用,但是速度较慢。total列指的是内存总的大小,used列表示已使用的内存空间,free列显示剩余空间,shared列显示被共享的内存大小,buff/cache列显示被buffer和cache使用的物理内存大小,available列显示还可以被应用程序使用的物理内存大小。free是真正尚未被使用的物理内存数量,available是从应用程序的角度看到的可用内存数量。当应用程序需要内存时,如果没有足够的free内存可以用,内核就会从buffer和cache中回收内存来满足应用程序的请求。
②用VMSTAT命令监视虚拟内存使用情况,观察结果并分析;
结果分析:
procs(进程):
r:运行队列中进程数量
b:等待IO的进程数量
memory(内存):
swpd:使用虚拟内存大小
free:可用内存大小
buff:用作缓冲的内存大小
cache:用作缓存的内存大小
swap:
si:每秒从交换区写到内存的大小
so:每秒写入交换区的内存大小
io:(现在的Linux版本块的大小为1024bytes)
bi:每秒读取的块数
bo:每秒写入的块数
system:
in:每秒中断数,包括时钟中断(interrupt)
cs:每秒上下文切换数(count/second)
cpu(以百分比表示):
us:用户进程执行时间(user time)
sy:系统进程执行时间(system time)
id:空闲时间(包括IO等待时间),中央处理器的空闲时间,以百分比表示
wa:等待IO时间
st:来自于一个虚拟机偷取的CPU时间的百分比
如果r经常大于4,id经常少于40,表示cpu的负荷很重。
如果bi,bo长期不等于0,表示内存不足。
如果disk经常不等于0,且在b中的队列大于3,表示io性能不好。
(内容参考:https://blog.csdn.net/mosesmo1989/article/details/51094894)
③使用PS和KILL命令回收内存,观察结果并分析(例如:可以打开两个终端,一个终端先运行无限循环程序,然后再另一个终端KILL该进程);
结果分析:
ps命令用于命令用于显示当前进程的状态;
kill命令用于删除执行中的程序或工作,kill 2792表明杀死PID为2792的程序。
④使用SYNC命令将内存缓冲区的数据写入磁盘;
结果分析:
sync命令用于数据同步,linux会在关机前自动调用sync。
⑤观察ULIMIT命令结果,写出用法和作用。
用法和作用:
ulimit命令用于控制shell程序的资源,显示目前资源限制的设定。