Linux教程

Linux知识心得19 Top命令 +存储初识

本文主要是介绍Linux知识心得19 Top命令 +存储初识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

笔记

1、复习昨日内容

1、查看进程(ps)
    ps -aux : 主要查看进程状态及CPU使用率和内存使用率
    ps -ef  :主要查询PPID

2、进程状态
	R :运行状态
	S :可中断运行
	D :不可中断睡眠
	T :暂停状态
	s : 包含子进程
	l : 多线程
	+ :前台运行
	< : 优先级较高
	N : 优先级较低
	Z :僵尸进程
3、系统信号
	1、查看系统信号列表
		kill -l
	
	2、SIGHUP
		1、重载配置
		2、进程挂起
	
	3、停止和终止信号
		1、SIGKILL
		2、SIGTERM
		
	4、中断的三种信号
		INT		:中断进程
		QUIT	:退出进程
		TSTP	:停止进程
		
	5、暂停与恢复
		1、SIGSTOP 
		2、SIGCONT 

4、查看网络状态(netstat)
	
	-t : TCP
	-u : UDP
	-l : 监听
	-n : 不反解
	-p : PID

5、proc文件系统

	主要是系统硬件映射

6、后台
	nohup &

7、管道
	将前面一个命令执行的结果交给后面一个命令来处理

8、僵尸进程和孤儿进程
	僵尸进程:进程生命周期已经结束,但是进程PID号依然占用
	孤儿进程:父进程生命周期已经结束,子进程由系统进程接管,称之为孤儿进程

2、TOP命令

1、 什么是平均负载?
  	  	平均负载是指,单位时间内,系统处于可运⾏状态和不可中断状态的平均进程数,也就是平均活跃进程数
    平均负载多少合理?
    	假设现在在4,2,1核的CPU上,如果平均负载为2时,意味着什么呢?
    ------------------------------------------------
    核⼼数 平均负载 含义
    4 2 有⼀半(50%)的CPU是空闲状态
    2 2 CPU刚好完全被占⽤
    1 2 ⾄少⼀半的进程是抢不到CPU
    -------------------------------------------------
    ===========>平均负载的三个数值我们该关注哪⼀个?
    三个值相当于三个样本,我们应该统筹地看
    1、如果1分钟,5分钟,15分钟的负载数值相差不⼤,代表系统的负载很'稳定'
    2、如果1分钟的值,远⼩于15分钟的值,那么证明系统的平均负载逐渐降低,即我们的系统刚刚经历过⼤⻛浪,
    但⽬前已逐渐趋于平均。⾄于15分钟区间内,系统负载上升的原因,还需要我们认真查明
    3、如果15分钟的值,远⼩于1分钟的值,那么证明系统的平均负载逐渐升⾼,有可能是临时的也有可能持续上
    升,需要观察
    4、⼀旦1分钟的平均负载接近或超过了CPU的个数,就意味着,系统正在发⽣过载的问题,这时候就得分析问题
    了, 并且要想办法优化。
    
    运行状态数
    
    睡眠状态数
    
    所有进程数
    
    
    1分钟内   100进程   5运行态进程    5%
    5         100      5             1%
    
    while true; do ((1+1)); done

2、负载怎么来的?

	运行态进程 / 总进程 / 单位时间  =  单位时间内的平均负载

0.00,  0.01,  0.05
一分钟 五分钟 十五分钟

Tasks:  92 total,   1 running,  91 sleeping,   0 stopped,   0 zombie
		总进程      正在运行      睡眠进程        停止         僵尸进程
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st


us ⽤户态进程占⽤cpu时间的百分⽐
sys 内核态进程占⽤cpu时间的百分⽐
ni 代表优先被调度的进程占cpu时间的百分⽐
id cpu空闲的百分⽐
wa cpu等待io的百分⽐
hi 硬件中断,处理硬件中断所占⽤CPU的时间
si 软件中断,处理软件中断所占⽤CPU的时间
st 被偷⾛的cpu


KiB Mem :   995692 total,   824928 free,    93828 used,    76936 buff/cache
			总体的内存        空闲的内存      使用的内存        buff内存

 PID   USER  PR     NI      VIRT    RES     SHR     S       %CPU %MEM     TIME+ COMMAND  
 进程号 用户 优先级  nice值 虚拟内存  实际内存 共享内存 进程状态 CPU使用率  内存使用率
 
top命令的快捷键
	
	M 按内存的使⽤排序
    P 按CPU使⽤排序
    N 以PID的⼤⼩排序
    R 对排序进⾏反转
    f ⾃定义显示字段
    1 显示所有CPU的负载
    s 改变画⾯更新频率(默认:3秒钟)
    
    more command as below:
    l – 关闭或开启第⼀部分第⼀⾏ top 信息的表示
    t – 关闭或开启第⼀部分第⼆⾏ Tasks 和第三⾏ Cpus 信息的表示
    m – 关闭或开启第⼀部分第四⾏ Mem 和 第五⾏ Swap 信息的表示
    N – 以 PID 的⼤⼩的顺序排列表示进程列表
    P – 以 CPU 占⽤率⼤⼩的顺序排列进程列表
    M – 以内存占⽤率⼤⼩的顺序排列进程列表
    h – 显示帮助
    n – 设置在进程列表所显示进程的数量
    q – 退出 top

3、系统存储

1、简介
       查看分区命令:lsblk /dev/sd*
       
	1、MBR 与 GPT之间的区别?
		MBR分区工具主要针对于 2TB以下的硬盘
		GPT分区工具主要针对于 2TB以上的硬盘

2、MBR分区  
	command:fdisk /dev/sd*
	1、MBR分区工具主要针对于 2TB以下的硬盘
	2、最多有4个分区
	3、分区内命令
		n : 创建一个分区
		p : 查看分区列表
		w : 写入分区信息到硬盘 完成创建后操作
		d : 删除⼀个已有的分区,保存退出后需要执⾏partprobe命令刷新⼀下分区表
	
	
	
3、GPT分区
	command:gdisk /dev/sd*
	1、GPT分区工具主要针对于 2TB以上的硬盘
	2、支持128个分区
	3、分区命令
		? : 帮助
		n : 创建一个分区
		p : 查看分区列表
		w : 写入分区信息到硬盘 完成创建后操作
		d : 删除⼀个已有的分区,保存退出后需要执⾏partprobe命令刷新⼀下分区表

4、制作文件系统

	硬盘  ->  分区  -> 格式化制作文件系统 -> 被挂载
	
	1、文件系统
		mkfs.btrfs : 1、性能好,2、占用空间比较小
		mkfs.xfs   : 1、性能好,2、功能比较丰富,3、生态很OK
		mkfs.ext   : 

	例:针对⼀块硬盘/dev/sdb,可以不分区,直接格式化制作⽂件系统
	    # mkfs.xfs /dev/sdb # /dev/sdb整体就是⼀个分区

5、修复文件系统

	1、开机自动挂载
		/etc/fstab
        [root@egon ~]# sed -i '$a /dev/sdb1 /opt xfs defaults 0 0' /etc/fstab
        [root@egon ~]# tail -1 /etc/fstab
        /dev/sdb1 /opt xfs defaults 0 0
		
		补充:
			开机自启动脚本
				/etc/re.local : 使用之前必须添加可执行权限

	2、修复文件系统
		xfs_repair 
			-n : 检测
			-L : 清空文件修复(将每一个存储桶中的数据删除,达到一个修复的效果,但是这种方式会删除文件, 日常维护过程中依然需要做备份)
		xfs.repair [分区路径] : 强制修复分区

6、系统备份

	xfsdump的备份级别有以下两种,默认为0(即完全备份)
    0 完全备份
    1 <= level <= 9 增量备份:
    # ps:增量备份是和第⼀次的备份(level 0)进⾏⽐较,仅备份有差异的⽂件(level 1)

	xfsdump常用参数
	-L:xfsdump会记录每次备份的session Label,这⾥可以填写针对此⽂件系统的简易说明;
    -M:xfsdump可以记录存储Media Label,这⾥可以填写此媒体的简易说明。
    -l:是L的⼩写,就是指定level,有0~9共10个等级,默认为0,即完整备份。
    -f:后⾯接产⽣的⽂件和destination file 。例如/dev/st0设备⽂件名或其他⼀般⽂件⽂件名
    -I:⼤写的“i”,从/var/lib/xfsdump/inventory 列出⽬前备份的信息状态。

	xfsdump的限制
    1.必须⽤root权限
    2.只能备份已挂载的⽂件系统
    3.只能备份XFS⽂件系统
    4.只能⽤xfsrestore解释(恢复)
    5.透过⽂件系统的UUID来分辨备份档,因此不能备份相同UUID的⽂件系统

	xfsdump -l 0 -L sdb3_bak -M sdb3_bak -f 全量备份的成果路径1 备份的源路径

	例1:备份/opt目录
		[root@localhost ~]# xfsdump -l 0 -L sdc1_bak -M sdc1_bak -f /root/text.bak  /opt
		
        # 1、数据备份
        # 1.1 先做全量备份,切记“备份的源路径”末尾不要加左斜杠/
        xfsdump -l 0 -L sdb3_bak -M sdb3_bak -f 全量备份的成果路径1 备份的源路径

        # 1.2 再做增量备份
        xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f 增量备份的成果路径2 备份的源路径
        xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f 增量备份的成果路径3 备份的源路径
        xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f 增量备份的成果路径4 备份的源路径

	例2:恢复text.bak
		xfsrestore -f [备份文件的路径]  [恢复的路径]
		[root@localhost ~]#  xfsrestore -f /root/text1.bak /mnt/
		
        # 2、数据恢复
        # 2.1、先恢复全量备份
        xfsrestore -f 全量备份的成果路径1 数据恢复的路径
        # 2.2、再依次恢复增量
        xfsrestore -f 增量备份的成果路径2 数据恢复的路径
        xfsrestore -f 增量备份的成果路径2 数据恢复的路径
        xfsrestore -f 增量备份的成果路径2 数据恢复的路径
        
     备份案例:
     -数据备份
     # 1、准备⼀个分区并制作好xfs⽂件系统,挂载好后给它加⼀点初始数据
     [root@localhost ~]# df
     ⽂件系统 1K-块 已⽤ 可⽤ 已⽤% 挂载点
     。。。。。。
     /dev/sdb3 1038336 76836 961500 8% /opt
     [root@localhost ~]# cp -r /etc/ /opt/
     [root@localhost ~]# echo 111 > /opt/1.txt
     [root@localhost ~]# ls /opt/
     1.txt etc
     [root@localhost ~]#
     # 2、先做全量备份
     [root@localhost ~]# xfsdump -l 0 -L sdb3_bak -M sdb3_bak -f /all.bak /opt
     # 3、往/opt下新增⽂件2.txt,然后作增量备份
     [root@localhost ~]# echo 222 > /opt/2.txt
     [root@localhost ~]# xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f /add.bak1 /opt
     # 4、往/opt下新增⽂件3.txt,然后作增量备份
     [root@localhost ~]# echo 333 > /opt/3.txt
     [root@localhost ~]# xfsdump -l 1 -L sdb3_bak -M sdb3_bak -f /add.bak2 /opt
     # 5、查看⼀下备份⽂件⼤⼩
     [root@localhost ~]# du -sh /opt/
     41M /opt/
     [root@localhost ~]# ll -h /all.bak # 全量备份⼤⼩
     -rw-r--r--. 1 root root 37M 11⽉ 4 18:44 /all.bak
     [root@localhost ~]# ll -h /add.bak1 # 增量备份⼤⼩
     -rw-r--r--. 1 root root 22K 11⽉ 4 18:45 /add.bak1
     [root@localhost ~]# ll -h /add.bak2 # 增量备份⼤⼩
     -rw-r--r--. 1 root root 23K 11⽉ 4 18:46 /add.bak2
     
     -数据恢复:
     [root@localhost ~]# rm -rf /opt/*
     [root@localhost ~]# xfsrestore -f /all.bak /opt/ # 先恢复全量
     ......
     [root@localhost ~]# ls /opt/
     1.txt etc
     [root@localhost ~]# xfsrestore -f /add.bak1 /opt/ # 再恢复增量1
     [root@localhost ~]# ls /opt/
     1.txt 2.txt etc
     [root@localhost ~]# xfsrestore -f /add.bak2 /opt/ # 再恢复增量2
     [root@localhost ~]# ls /opt/
     1.txt 2.txt 3.txt etc

7、LVM动态扩容
    什么是lvm
    逻辑卷管理LVM是硬盘的⼀个系统⼯具。⽆论在Linux或者其他类似的系统,都是⾮常的好⽤。传统分区使⽤固定⼤⼩分区,重新调整⼤⼩⼗分麻烦。但是,LVM可以创建和管理“逻辑”卷,⽽不是直接使⽤物理硬盘。可以让管理员弹性的管理逻辑卷的扩⼤缩⼩,操作简单,⽽不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。
 

	1、动态扩容
		1、安装lvm
			yum install lvm2 -y
			
		2、制作pv
			pvcreate /dev/sdd
		
		3、制作vg
			vgcreate [vg名称] /dev/sdd

		4、扩容vg
			vgcreate [vg名称] /dev/sdc

		5、制作lv
			lvcreate -L [大小] -n "名字" [名称]
		
		6、制作文件系统
			mkfs.xfs /dev/vg1/lv_vg1
		
		7、挂载
			mount /dev/vg1/lv_vg1 /mnt

		8、扩容
			vg:
				vgextend /dev/sde
			
			lv:
				lvextend -L [大小] [lv路径]

		9、缩容
			lvreduce -L [大小] [lv路径]
			不要缩容!!!并且xfs⼲脆不⽀持缩容
		
		10、删除
			pv :
				pvremove
			
			vg:
				vgremove
			
			lv:
				lvremove

14 存储管理2

这篇关于Linux知识心得19 Top命令 +存储初识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!