linux基础
一、系统监控命令
1.top命令:
a、如图显示使用top命令查看系统的当前运行的情况。如图对top命令执行的结果做了简单的图解,下面针对每一项做详细的解释。
b、第一行显示的内容依次为“系统当前时间 、系统到目前为止已运行的时间、当前登录系统的用户数量、系统负载(任务队列的平均长度)三个值分别为1分钟、5分钟、15分钟前到现在的平均值【这三个一般会小于1,如果持续高于5,请仔细查看那个程序影响系统的运行】”
c、top命令的第二行“Tasks: 120 total, 2 running, 118 sleeping, 0 stopped, 0 zombie”显示的内容依次“所有启动的进程数”、“正在运行的进程数”、“挂起的进程数”、“停止的进程数”、“僵尸进程数”。
d、top命令的第三行“Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st”显示的内容依次为“用户空间占用CPU百分比”、“系统内核空间占用CPU百分比”、“用户空间内改变过优先级的进程占用CPU百分比”、“空闲CPU百分比”、“等待输入输出CPU时间百分比”、“CPU服务于硬件中断所耗费的时间总额”、“CPU服务软中断所耗费的时间总额”、“Steal Time”
e、top命令第四行“Mem: 508820k total, 480172k used, 28648k free, 41944k buffers”显示内容依次为“物理内存总量”、“已使用的物理内存”、“空闲物理内存”、“内核缓存内存量”。
f、top命令第5行“Swap: 392184k total, 0k used, 392184k free, 259152k cached”显示内容依次为“交换区总量”、“已使用交互区总量”、“空闲交换区总量”、“缓冲的交换区总量”。
g、top命令第7行“PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ”显示内容依次为“进程ID”、“进程所有者”、“优先级”、“nice值,负值表示高优先级,正值表示低优先级”、“进程使用的虚拟内存总量”、“进程使用的、未被换出的物理内存大小”、“共享内存大小”、“进程状态”、“上次更新到现在的CPU时间占用百分比”、“进程使用的物理内存百分比”、“进程使用CPU总时间”、“命令名、命令行”。
补充: top [选项参数]
top -c:显示 完整命令:
top -b:以批处理模式显示程序信息
top -n 3:表示更新3次后终止更新显示
top -d 3:设置信息更新时间为3s
通过”shift + >”或”shift + <”可以向右或左改变排序列
2、free命令
命令格式:free [参数]
参数说明:
-m:以M为单位查看内存使用情况(默认为kb)
-b:以字节为单位查看内存使用情况
-s:可以在指定时间段内不简单监控内存的使用情况
-h:人性化显示
Mem:表示物理内存统计; -/+ buffers/cached:表示物理内存的缓存统计 ;Swap:表示硬盘上交换分区的使用情况,
第1行 Mem中total:表示物理内存总量。 used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。 shared:共享内存,一般系统不会用到,这里也不讨论。 buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量。total = used + free
第2行 -/+ buffers/cached中used:也就是第一行中的used - buffers-cached 也是实际使用的内存总量。free:未被使用的buffers 与
cached 和未被分配的内存之和,这就是系统当前实际可用内存=free+buffers+cached。
注:因为buffers和cached是系统为了提高性能申请的内存数,实际上当应用程序需要此功能时,是可以使用这些内存的,所以对应用程序来说,这些内存也是可以使用的。
缓存(cached)是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。
1 – 释放页缓存即数字1是用来清空最近放问过的文件页面缓存
2 – 释放dentries和inodes即数字2是用来清空文件节点缓存和目录项缓存
3 – 释放所有缓存即数字3是用来清空1和2所有内容的缓存。
-a 显示一个终端的所有进程,除了会话引线
-N 忽略选择。
-d 显示所有进程,但省略所有的会话引线(utility)
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程。
U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
-f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 用户自定义格式。
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
h 不显示第一行
虽然 uid 通常是指数字型的标识,但在第一列下指定的是用户名,标记为 UID
2) 进程ID (PID)
3) 父进程ID (PPID)PPID 是父进程的标识号。对于 Oracle 进程,这里的标识号为 1 — 它是 init 进程(所有进程的父进程)的 id,因为在本系统中安装的 Oracle 是作为登录进程的一部分而启动的
4) CPU 调度情况 (C)即是是由 CPU 用于计算执行优先级的因子。
5) 进程启动的时间 (STIME)
6) 进程共占用CPU的时间(TIME)
7) 启动进程的命令 (CMD)
8)问号表示这些进程不属于任何 TTY,因为它们是由系统启动的。
-c 不使用精简标示法。
-G 使用VT100终端机的列绘图字符。
-h 列出树状图时,特别标明现在执行的程序。
-H <程序识别码> 此参数的效果和指定”-h”参数类似,但特别标明指定的程序。
-l 采用长列格式显示树状图。
-n 用程序识别码排序。预设是以程序名称来排序。
-p 显示程序识别码(程序识别码值得是pid)。
-u 显示用户名称。
-U 使用UTF-8列绘图字符。
-V 显示版本信息。
p、打印分区表。
n、新建一个新分区。
d、删除一个分区。
q、退出不保存。
w、把分区写进分区表,保存并退出。
补充:
1、程序运行三种状态:
运行态:CPU正在运行的程序
就绪态:等待cpu运的程序
阻塞态:进行其他 I/O操作,不占用CPU,I/O操作完成后返回就绪态