本文主要是介绍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
这篇关于Linux知识心得19 Top命令 +存储初识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!