Linux知识心得19 Top命令 +存储初识
2021/7/16 7:08:06
本文主要是介绍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命令 +存储初识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南