1 监控系统的一些命令
top:是linux中常用的性能分析工具,用来查看系统中各个资源的占用空间的数据。
第一行是任务信息,从中到右分别是(当前时间),(系统运行时间,以时:分的格式),(当前登录用户数),(系统负载,三个数值分别是1分钟,5分钟,15分钟前到现在的平均值。
第二行属于进程,从左到右分别是(进程总数),(正在运行的进程),(睡眠的进程),(停止的进程数),(僵尸进程)。
第三行是关于CPU的信息,从左到右分别是(用户空间占用CPU百分比),(内核空间占用CPU百分比),(用户进程空间内改变过优先级的进程占用CPU的百分比),(空闲CPU的百分比)(,等待输入输出的CPU时间百分比),(硬件中断占用CPU时间的百分比),(软件中断占用CPU时间的百分比)。
第四行和第五行属于内存信息。
free:显示内存的使用状态。
(total)(Mem)属于物理内存。
(used)(Mem)使用的物理内存。
(free)(Mem)可以使用的内存。
他们之间的关系是(total)(Mem)=(used)(Mem)+(free)(Mem)
(shared)(Mem)共享内存,表示有几个进程共享的内存。
(buffers)(Mem)表示已经分配但还未使用的buffers大小。
(cached)(Mem)表示已经分配但还未使用的cached大小。
buffers和cached功能是:
buffers是用于存放要输出到disk(块设备)的数据,而cached是存放从disk上读出的数据。都是为了提高IO的性能,由OS管理。
操作系统为了提高IO read的性能,总是要多一些cached数据,这就是(cached)(memory)为什么比较大。
(used)(-buffers/cached):一个应用程序认为系统被用掉多少内存。(used)(-buffers/cached)=(used)(Mem)—(buffers)(Mem)—(cached)(Mem)
(free)(+buffers/cached):一个应用程序认为系统还有多少内存。(free)(+buffers/cached)=(free)(Mem)+(buffers)(Mem)+(cached)(Mem)
free命令的数值都是从?proc/meminfo中读取的。 $ free -m是数值的单位为MB,不过数值没有那么详细。可以使用命令($ free -wm)可以得到buffers和cached各自使用的数值。
pstree:以树状形式显示程序。进程状态的使用方法是(pstree PID)。
kill:比一个信号发给一个或多个进程,默认为发送终止信号。终止进程的方法是(kill PID)。杀死进程使用方法是(kill -9 PID)。
pgrep:通过进程和其他属性查找进程。查找进程方法是(pgrep 要查找的进程名称)。
pkill:通过进程和其他属性发信号给进程。杀死进程是(pkill 要杀死的进程名称)。
fdisk:创建磁盘分区。
d(delete):删除一个已存在的分区。
l(list):列出也存在分区的类型。
m(menu):列出fdisk中使用的所有命令。
n(new):添加一个新的分区。
p(print):列出分区表的内容。
q(quit):退出fdisk,但是不储存所操纵的变化。
t(title):改变分区系统的id。
w(write):退出fdisk,并储存所操纵的变化。
partprobe:重新初始化内存中内核的分区表。
mkfs:格式化内存。使用方法是(mkfs.操作过后的对象名 操作对象)。
e2label:设定或查看一个设备的label名称。查看某个分区的方法是(e2label 操作的对象)。设定命令的方法是(e2label 操作的对象 wg)。
df:查看硬盘分区信息。
mount:挂载文件系统。挂载的方法是(mount 挂载的目标 挂载的点)。
umount:卸载文件系统。卸载方法是(umount 操作的目标)。假如在操作的对象目录里使用方法是(umount -l 操作的对象)强制卸载。
2、dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。。
2 进程的信息
PID:进程id。
PPID:父进程id。
RUESR:Real user name。
UID:进程所有者的用户id。
USER:进程所有者的信息。
TTY:启动进程的终端名(不是从终端启动的进程则会显示?)。
RR:优先级。
NI:nice值。(负值表示高优先级,正值表示低优先级)。
P:最后使用的CPU(仅在多CPU环境下有意义)。
%CPU:上次更新到现在CPU时间占用的百分比。
TIME:进程使用CPU的时间统计(单位秒)。
%MEM:进程使用的物理内存百分比。
VIRT:进程使用的虚拟内存总理(单位KB)。VIRT=SWAP+RES.
SWAP:进程使用的虚拟内存中被换出的大小(单位KB)。
RES:进程使用的没有被换出的物理内存大小(单位KB)。RES=CODE+DATA。
CODE:可执行代码占用的物理内存大小(单位KB)。
DATA:可执行代码以外部分占用物理内存的大小(单位KB)。
SHR:共享内存大小(单位KB)。
nFLT:面页错误的次数。
nDRT:最后一次写入到现在被修改的次数。
S:进程状态
D=不可中断的睡眠状态。
R=运行。
S=睡眠。
T=跟踪或停止。
Z=僵尸进程。
COMMAND:命令名或命令行。
WCHAN:若该进程在睡眠,则会显示睡眠中的系统函数名。
Flags:任务标志,参考sched.h。
3 CPU的利用率与load average
CPU正常的利用率是<70%的。CPU负载<或=1时,能正常执行。CPU负载>1时,属于超负荷执行。load average应该<或=CPU核数*0.7。CPU负载和CPU利用率过高都是不好的现象。
为何要有1分钟,5分钟,15分钟三种cpu的负载:是希望我们将他们三个值结合起来看。或者说是展示一个动态图表示的数据。
进程挂起是自身原因,遇到了I/O的阻塞,便会让出CPU让其他进程去执行,保证CPU一直在运行。
与进程无关,在操作层面时,有个进程占用CPU过久时,或者需要调用硬盘里的文件时,而会调用其它进程使用CPU。
4 硬盘的相关内容
在linux系统中,每个设备都会被当一个文件来对待。而他们对应的文件名如下:
IDE硬盘:/dev/hd(a-d)
SCSI硬盘:/dev/sd(a-p)
U盘:/dev/sd(a-p){与SCSI硬盘一样)
CDROM:/dev/sr0
硬盘的结构和分区:硬盘为什么要有分区,更容易管理和控制操作系统,这样系统效率高,更容易备份,可以限制用户使用磁盘份额。
硬盘主要分为主分区,扩展分区和逻辑分区。一个硬盘上最大可以划分4个主分区,在SCSI磁盘最多可以分15个分区,IDE磁盘可以分63个分区。
硬盘的逻辑结构:硬盘结构为磁道,块,磁柱和分区。
块是盘片上访问的最小单位,一个块可以储存一个字节的数据。
磁道是有一系列的头尾相连块组成的圆圈。
磁柱是有一叠磁道在相同半径的每个盘面的磁道组成的。
分区是有一组相邻的磁道组成的。
挂载点的定义:将一个设备(通常是存储设备)挂载到一个已存在的目录。
虚拟内存的定义:指一块硬盘空间当作内存来使用,称为交换分区(swap)。linux交换分区的型号是0x82.
i节点的定义:i节点是一个数据结构,他存放着有关一个普通文件,目录或其他文件系统对象的基本信息。
符号(软)连接:符号连接的定义是只想另一个文件的一个文件。
创建软连接的方法是用ln命令:使用的方法是(ln -s 你要操作的文件 需要存放的目录/建立的符号链接)。例:ln –s wolf/dog.wolf.baby bodydog/dog_ wolf.boy
硬链接:硬链接(hard link)的定义是一个文件名和一个i节点之间对应关系,也可以认为一个硬链接在所对应的文件名上加一个额外的路径名。
使用ln命令创建硬链接的方法是:(ln 你要操作的文件 你要操作到哪个目录/你需要建立的路径名)例:ln wolf/wolf.dog backup/wolf.dog2.
掌握Linux系统中常见的文件类型: -:普通文件(regular file),也有人称为正规文件。 d:目录(directory)。 l:符号(软)链接。 b:块特殊文件(b是block的第1个字符),一般指块设备,如硬盘。 c:字符特殊文件(c是character的第1个字符),一般指字符设备,如键盘。怎样检查磁盘空间:用df命令显示文件系统中磁盘使用和空闲区的数量。
掌握df命令的功能:显示文件系统中磁盘使用和空闲区的数量。 -a 显示所有磁盘 -h 单位转换 掌握du命令的功能: 显示目录和文件的大小a h同上