day16~17-系统负载高故障与磁盘管理
1.每日复盘与今日内容
1.1复盘
- 僵尸进程排查与处理.
- kill,pkill
- &, nohup 命令 &
- ps,top 核心组成与内容
- ps,top案例过滤
- 进程状态.
- swap.
1.2今日内容
- 补充top命令内容(了解)
- 系统负载高,负载高处理,实战使用--核心
- 磁盘基础知识点选型
- 磁盘使用流程
- 面试题:raid(物理服务器)
- swap
- 磁盘空间不足
- 紧急救援模式
- 文件系统只读
2.进程管理
2.1 top补充(了解)
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
0.0 ni--nice--高优先级进程占用cpu
0.1 hi hard 硬件中断
0.0 si soft 软件中断
0.0 st steal 被偷的时间(被强占的时间) 被占用 虚拟机
宿主机 虚拟机
2.2 系统负载🍟🍟🍟🍟🍟
1.负载
衡量系统繁忙程序指标
处于可运行(R,Scpu)状态的,还有不可中断进程(D io)数量
核心数:4
结果:系统负载高,负载值接近或超过cpu核心总数
2.系统负载高
第1阶段:可以定位到具体的进程即可
第2,3阶段:定位到进程,找出服务然后进一步分析
负载高常见原因:
占用系统cpu过多导致的负载高
占用磁盘I/O过多导致的
3.模拟系统负载高
stress压力测试(类似与电脑手机跑分)
#1.安装
yum install -y stress#2.模拟cpu导致的负载高
stress --cpu 1 --timeout 1000几个核心就填几 持续时间
#查看cpu使用lscpu#3.模拟I/O导致的系统负载高
stress --hdd 10 --hdd-bytes 1g --timeout 1000s 10个进程来回读写 每个进程读取1g 持续时间
#查看内存使用free -h 查看磁盘使用df -h(静态)或iotop -o(实时)
- 负载cpu--可以看到cpu使用率为100%,cpu%为89.5%.
- 负载I/O--可以看到平均负载为4.5
4.系统负载高
- 核心排查流程
1️⃣检查是否高
2️⃣定位cpu,io
3️⃣定位具体进程
2.3 总结
- 负载高的原因
- 情境模拟
3.磁盘管理
3.1 磁盘
磁盘/硬盘:永久存放数据
内存:临时,程序软件运行地方.
磁盘分类:机械硬盘,固态硬盘
机械硬盘:
固态硬盘:
磁盘接口 | 硬盘 | 大小 |
---|---|---|
sata接口 | 机械硬盘,固态硬盘 | 机械:4tb 10k(转速) 性能要求不高的地方--备份 |
sas接口 | 机械硬盘,固态硬盘 | 机械:900G 15k 性能更好 企业环境使用 |
pcie-e接口 | 固态硬盘 | tb级别 3,4,8tb硬盘 |
- 固态硬盘颗粒
存储颗粒:slc mlc tlc xxxx 3d nand
3.2 磁盘性能指标
以某宝商品为例
指标 | 机械硬盘 | 固态硬盘 |
---|---|---|
容量 | 1TB | 1TB |
缓存 | 64MB | 暂无 |
吞吐量 | 暂无 | 暂无 |
顺序读取速度 | 121MB/s | 3300MB/s |
顺序写入速度 | 119MB/s | 2000MB/s |
随机读取次数 iops | 1.38MB/s | 暂无 |
随机写入次数 iops | 0.86MB/s | 暂无 |
延迟 | 15ms | 暂无 |
价格 | 183 | 409 |
iops 每秒io次数,衡量随机读写的
顺序读写 一般就是买硬盘标记的速度#1.dd命令 简单测试#2.专用工具 图吧工具箱
Https://www.tbtool.cn
3.3 磁盘使用流程
- 已经安装好的系统
- 磁盘分区
- 磁盘格式化
- 磁盘挂载.永久挂载.
磁盘常用的使用流程 | 说明 | 对比 |
磁盘分区 | 给硬盘创建多个分区 | 1套房子,划分屋子房间,划分隔断 |
磁盘格式化 | 给磁盘分区创建文件系统 | 给房间进行装修 |
挂载 | 给磁盘分区设置入口 | 给房间安装门窗 |
- mbr磁盘
mbr磁盘分区知识点深入: 理解这三个分区关系即可.
主分区 最多4个.
某1个主分区的位置 创建扩展分区. 扩展分区无法直接使用.需要在扩展分区中创建逻辑分区.磁盘分区信息存放在磁盘的开头的: 0头0道1扇区(机械硬盘组成). 1扇区大小 512字节
2.格式化
- linux格式化叫做创建文件系统
- 不同的文件系统相当于是不同的装修风格
创建文件系统 make filesystem mkfs命令#正式环境中添加硬盘,一般不需要添加多个分区,一个硬盘创建1个分区即可,这个分区使用所有容量
#df -hT 参考系统已有的比如根分区
#创建文件系统(格式化)格式xfs格式
mkfs.xfs /dev/sdb1#使用命令查看已经格式的分区/文件系统
blkid
3.挂载
- 不挂载的硬盘分区,无法直接使用
- 挂载操作相当于给硬盘设置了入口.
- 挂载点(入口)是1个目录(已经存在的空目录)
#把/dev/sdb1 临时挂载到/mnt测试效果
[root@devops-99-kylin ~]# mount /dev/sdb1 /mnt/
[root@devops-99-kylin ~]# df -h /mnt/
文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb1 95M 6.0M 89M 7% /mnt#卸载(不能在挂载目录中)
umount /mnt
2️⃣永久挂载
- mount挂载是临时的,Linux重启后失效了
- 我们需要配置永久挂载,需要根据需求创建目录/app/data/(已经创建)
2个方案:
#1.专业 /etc/fstab 开机自动挂载的配置目录.#2.使用/etc/rc.local 开机自动运行指定的命令(脚本)
#mount /dev/sdb* /mnt/
/etc/fstab每一列的作用
第1列:指定文件系统(磁盘分区名字或UUID) /dev/sdb1
第2列:挂载点 /app/data
第3列:文件系统类型 xfs
第4列:挂载选项,一般使用默认 defaults
第5列:是否进行备份(dump指令) 一般关闭
第6列:是否进行开机检查(硬盘磁盘) 一般关闭
写入挂载点
3️⃣磁盘使用流程小结
- 核心:磁盘分区(1个分区),格式化(mkfs),挂载(mount),永久挂载(fstab)
- fdisk,mkfs,mount/umount -lf(强制卸载)
- df -hT
- blkid
4️⃣mbr vs gpt
磁盘分区表 | 共同点 | 区别 | 使用的命令 |
mbr | 引导系统启动,存放磁盘分区信息 | 主分区,扩展分区,逻辑分区 支持硬盘 | fdisk/parted |
gpt | 引导系统启动,存放磁盘分区信息 | 主分区无限(100+)2tb以上 | gdisk/parted |
可以选择raid型号以及盘数(最多6个),点击ok即可创建成功。
4.今日工作总结
- 面试题:raid(物理服务器)
- 磁盘使用流程:分区,格式化,挂载(永久挂载)
- mbr vs gpt区别
- fdisk,mkfs,mount/umount -lf(强制卸载)
- df -hT
- blkid