今天学习的仍然是Linux基础知识,就让我们回顾一下所学到的内容,加深印象。
系统监控
系统监视和进程控制工具—top和free
一、top命令
功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
使用top命令列出系统状态时,系统默认每5秒刷新一下屏幕上的显示结果。
1.第一行是任务队列信息
2. 第二、三行为进程和CPU的信息
st: steal time(虚拟服务占用的CPU时间百分比)
3. 第四五行为内存信息。
KiBMem: 999936 total, 524296 free, 84148used , 391492 buff/cache
/ / / /
物理内存总量 空闲总量 使用中总量 缓存的内存量
KiBSwap: 2097148 total, 2096168 free, 780used , 248292 avail Mem
/ / / /
交换区总量 空闲交换区总量 使用的交换区总量 可用的交换区总量
4. 进程信息
cpu利用率与load average
cpu利用率:CPU执行非系统空闲进程的时间 / CPU总的执行时间(正常情况,cpu利用率<70%)
cpu负载:公司在一分钟内为某个码农安排了3个任务,而1分钟内该码农能做6个任务,那么该码农一分钟内的负载为0.5
如果公司在5分钟内为某个码农安排了100个任务,而5分钟内该码农只能做50个任务,那么该码农5分钟内的负载为2.0,即超负荷运转
如果有4核,相当于将100个任务交给4个码农去干,如果每个码农的负载都是100%,那么整体的cpu负载达到4.0则是很正常的现象
多核cpu, load average 应该 <= cpu核数 * 0.7
cpu负载<=1:能正常应付
cpu负载>1:超负荷运转
给出CPU负载的三个值,我们就可以结合起来查看。比如最近一分钟显示负载120%。而最近5分钟和15分钟显示负载为50%。可能你不用太过担心。但是如果你发现系 统的负载一直维持在120%以上,就必须要提高硬件配置了。
cpu利用率和cpu负载过高,都是不好的现象,但是也有可能出现,低利用率,高负载的情况。
在两种情况下会导致一个进程在逻辑上不能运行:
1. 进程挂起是自身原因,遇到I/O阻塞,便要让出CPU让其他进程去执行,这样保证CPU一直在工作
2. 与进程无关,是操作系统层面,可能会因为一个进程占用时间过多,或者优先级等原因,而调用其他的进程去使用CPU。
一个进程有三种状态,如下图:
二、free命令
功能:显示内存的使用状态。
在centos6和centos7下显示的free命令的执行结果有些不同,上面是我们在centos7下下运行的结果。
buffer和cache的解释:
- A buffer is something that has yet to be "written" to disk.
- A cache is something that has been "read" from the disk and stored for later use.
buffer是用于存放要输出到disk(块设备)的数据的,而cache是存放从disk上读出的数据。这二者是为了提高IO性能的,并由OS管理。
我们发现Mem这一行数据是从一个应用程序的角度看系统内存的使用情况,实际上,cache根据应用程序的需要是可以回收利用的,因此free这一栏并不能真实地表现有多少“可以使用”的内存。实际系统可用内存应该以available数据为准。
从man free命令中也可以得到,Used memory (calculated as total – free – buffers – cache)
可以使用-w命令行选项得到buff和cache各自使用的数量:
需要注意的是,free
表示的是当前完全没有被程序使用的内存;而cache
在有需要时,是可以被释放出来以供其它进程使用的(当然,并不是所有cache
都可以释放,比如当前被用作ramfs
的内存)。而available
才真正表明系统目前可以提供给应用程序使用的内存。
三、 系统中进程的监控—ps
进程定义:进程是程序的一次动态执行。
守护进程是在后台运行并提供系统服务的一些进程。
当一个进程创建另一个进程时,第1个进程被称为新进程的父进程,而新进程被称为子进程。
ps命令的功能:用来显示当前进程的状态。
ps –aux 显示所有的与用户相关的完整信息
系统中进程的监控pstree、kill
centos7 minimal版本默认没有pstree,需要yum -y install psmisc
pstree命令的功能:以树状图显示程序。
例如:列出PID为4729的进程的进程状态树的命令:pstree 4729
kill命令的功能:把一个信号发送给一个或多个进程。默认发送终止信号。
应用kill命令终止进程:例如:终止PID为3852的进程的命令:kill 3852
应用kill -9命令杀死进程:例如:杀死PID为3906的进程的命令:kill -9 3906
pgrep命令的功能:通过名称或其他属性查找进程
例如:查找名为firefox的进程的命令为:pgrep firefox
pkill命令的功能:通过名称或其他属性发信号给进程
例如:杀死名为firefox的进程的命令为:pkill firefox
硬盘分区、格式化及文件系统的管理一
1.在Linux系统中,每个设备都被当成一个文件来对待。
各种设备在Linux中的文件名见下表:
2. 硬盘的结构及硬盘分区
首先我们为什么要进行硬盘分区:
a) 更容易管理和控制系统,因为相关的文件和目录都放在一个分区中。
b) 系统效率更高。
c) 可以限制用户使用硬盘的份额(磁盘空间的大小)。
d) 更容易备份和恢复。
再者,硬盘的逻辑结构:一个硬盘逻辑上可以被划分成块、磁道、磁柱和分区。
a) 块是盘片上寻址(访问)的最小单位,一个块可以存储一定字节的数据。
b) 磁道是由一系列头尾相连的块组成的圆圈。
c) 磁柱是由一叠磁道,由在相同半径上每个盘面的磁道所组成。
d) 分区是由一组相邻的磁柱所组成。
3. Linux系统中硬盘的分区
硬盘的分区可以分为主分区、扩展分区和逻辑分区。在一个硬盘上最多可以划分出4个主分区。
Linux操作系统的内核支持每个硬盘上的分区数量还是有一定限制的,Linux内核在每个硬盘上可以最多支持:
a) 在SCSI硬盘上划分15个分区(Partitions)。
b) 在IDE硬盘上划分63个分区(Partitions)。
4. 使用fdisk和partprobe命令来管理硬盘分区
1) fdisk命令的功能:创建磁盘分区。
2) fdisk命令列表中常用的命令:
a) d:删除一个(已经存在的)分区,其中d是delete的第1个字母。
b) l:列出(已经存在的)分区的类型,其中l是list的第1个字母。
c) m:列出fdisk中使用的所有命令,其中m是menu的第1个字母。
d) n:添加一个新的分区,其中n是new的第1个字母。
e) p:列出分区表的内容,其中p是print的第1个字母。
f) q:退出fdisk,但是不存储所做的变化,其中q是quit的第1个字母。
g) t:改变分区系统的id,其中t是title的第1个字母。
h) w:退出fdisk并存储所做的变化,其中w是write的第1个字母。
3) partprobe命令的功能:重新初始化内存中内核的分区表。
5. 创建文件系统(数据的管理)
1) 格式化的定义:所谓的格式化就是将分区中的硬盘空间划分成大小相等的一些数据块(Blocks),以及设定这个分区中有多少个i节点可以使用等。
2) 文件系统的定义:文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法。
3) 常用的文件系统类型
ext2:Linux系统中标准的文件系统
ext3:一种日志式文件系统
ext4:一种针对ext3系统的扩展日志式文件系统
lvm:逻辑盘卷管理
iso9660:目前唯一通用的光盘文件系统
4) mkfs命令的功能:格式化磁盘。
5) 常用的格式化命令:
mkfs.文件系统类型
例如,将分区/dev/sdb1格式化为ext4文件系统的命令为:mkfs.ext4 /dev/sdb1
6. 为一个分区设定label(分区名)
1) e2label命令的功能:设定或查看一个设备的label名称。
2) 应用e2label命令设定label:
a) 例如:查看/dev/sdb1分区的label的命令为:e2label /dev/sdb1
b) 例如:将/dev/sdb1分区的label设定为wg的命令:e2label /dev/sdb1 wg
硬盘分区、格式化及文件系统的管理二
1. 文件系统的挂载与卸载
挂载的定义:挂载指将一个设备(通常是存储设备)挂接到一个已存在的目录上。
mount命令的功能:实现文件系统的挂载。
应用mount命令实现文件系统的挂载:
例如:将/dev/sdb1分区挂载到/wg目录上的命令:mount /dev/sdb1 /wg
umount命令的功能:实现文件系统的卸载。
应用umount命令实现文件系统的卸载:
例如:卸载/wg上的文件系统的命令:umount /wg
2. 虚拟内存的概念以及设置与管理
虚拟内存的定义:所谓虚拟内存就是一块硬盘空间被当做内存使用,也被称为交换分区(swap)。
Linux交换分区的类型为:0x82
mkswap命令的功能:设置交换分区。
使用mkswap命令设置交换分区的用法举例:
例如:将分区/dev/sdb2设置为交换分区的命令:mkswap /dev/sdb2
swapon命令的功能:启动交换分区。
swapon –a命令的功能:启动全部的交换分区。
swapon –s命令的功能:列出当前正在使用的所有系统交换分区的状态。
使用swapon命令的用法举例:
例如:启用交换分区/dev/sdb2的命令:swapon /dev/sdb2
3. i节点
i节点的定义:i节点实际上是一个数据结构,它存放了有关一个普通文件、目录或其他文件系统对象的基本信息。
4. 符号(软)链接
符号链接的定义:符号链接是指向另一个文件的一个文件。
ln命令创建软连接的用法举例:
例如:为wolf/dog.wolf.baby文件建立一个dog_ wolf.boy符号链接并放在bodydog目录中的命令:
ln –s wolf/dog.wolf.baby bodydog/dog_ wolf.boy
5. 硬链接
硬链接的定义:一个硬链接(hard link)是一个文件名与一个i节点之间的对应关系,也可以认为一个硬链接是在所对应的文件上添加了一个额外的路径名。
ln命令创建硬连接的用法举例:
为wolf/wolf.dog文件在backup目录中建立一个名为wolf.dog2的硬链接命令:ln wolf/wolf.dog backup/wolf.dog2
6. Linux系统中的文件类型
Linux系统中常见的文件类型:
-:普通文件(regular file),也有人称为正规文件。
d:目录(directory)。
l:符号(软)链接。
b:块特殊文件(b是block的第1个字符),一般指块设备,如硬盘。
c:字符特殊文件(c是character的第1个字符),一般指字符设备,如键盘。
7. 怎样检查磁盘空间
df命令的功能:显示文件系统中磁盘使用和空闲区的数量。
-a 显示所有磁盘
-h 单位转换
du命令的功能: 显示目录和文件的大小a h同上