这是磁盘部分:
问题一: linux中磁盘的理解
在Linux系统中所有的设备都会以文件的形式存储。设备一般保存在/dev目录下面,以sda、sda1、sda2 …,sdb、sdb1…,hda,hdb。现在的设备一般都是sd命名,以前的很老的硬盘是以ha命名。 sda:第一块硬盘,如果对磁盘进行了分区会有sda1(第一个分区),sda2等。 sdb:第二个硬盘,同样对硬盘分区后有sdb1,sdb2等。
问题二:有一块新磁盘,如何挂载到linux上
创建分区
fdisk /dev/sdb
创建文件系统
mkfs.ext4 /dev/sdb
挂载
mkdir /data
mount /dev/sdb /data
问题三:RAID 介绍
独立磁盘冗余阵列,用于提高数据存储性能和可靠性。RAID通过将多个独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术
问题四:RAID 0,1,5,10的区别和各自的优缺点
运维生产环境常用RAID级别为RAID0,RAID1, RAID5 ,RAID10
RAID级别 | 最少磁盘要求 | 关键优点 | 关键缺点 | 实际应用场景 |
---|---|---|---|---|
RAID0 | 1块 | 读写速度快 | 没有任何冗余 | MySQL Slave(数据库的从库),集群的节点RS |
RAID1 | 2块(只能) | 100%冗余,镜像 | 读写性能一般,成本高 | 单独的,数据很重要,且不能宕机的业务,监控,系统盘 |
RAID5 | 3块 | 具有一定性能和冗余,可以坏一块盘 | 写入性能不高 | 一般的业务都可以用 |
RAID10 | 4块 | 读写速度很快,100%冗余 | 成本高 | 性能和冗余要求很好的业务。数据库主库和存储的主节点。 |
问题五:服务器它的这个IO 磁盘IO⽐较⾼,那我这个排查思路是什么样的呢?
(IO 磁盘IO 即:磁盘输入输出)
磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离CPU 距离最远而且CPU 访问磁盘要涉及到机械操作,比如转轴、寻轨等。
占用IO过高,可以做如下考虑:
- 首先考虑写日志内容过多(或者访问量较大)
- 日志打印内容是否合理
- 日志级别是否合理
- 磁盘满(压测过程中现象:TPS降低,响应时间增加)
- 定期清理
- 磁盘扩容
- 不好清理的,在主硬盘上进行读写操作,基础数据定时移动到挂载硬盘上。
- 磁盘IO过高是由于读写文件导致的: 可以利用raid来减轻压力
- 磁盘本身性能不足
- 数据库
- 数据库连接数过量
- 程序里每次连接数据库后,记得关闭数据库。
- 在mysql配置文件中,设置mysql超时时间wait_timout, 默认是八小时,设置低一点
- 数据库IO过高,查询量大,可以进行读写分离(增加读库)或者分库操作,减小磁盘压力