联系我们

4000 555 018
(7×24)
正睿服务器  >  新闻中心  >  技术文章
新闻中心

CentOS 存储与磁盘管理 常见问题指南

间隙填充
正睿科技  发布时间:2024-04-19 11:13:16  浏览数:13

本文包含内容:

  • CentOS7 系统格式化数据盘分区

  • CentOS 评估磁盘I/O性能读写极限测试

  • CentOS7 挂载新硬盘的方法

  • CentOS7 查看磁盘io ,找出占用io读写很高的进程

  • CentOS6 调整硬盘分区大小

  • centos7 系统格式化数据盘分区

第一步,先卸载分区

umount /dev/vdb1

第二步,格式化分区

mkfs -t ext3 /dev/vdb1

第三步,挂载分区到/www

mount /dev/vdb1 /www

CentOS评估磁盘I/O性能读写极限测试

用一个fio工具

安装

yum -y install fio

二,FIO用法:

随机读:
fio  -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=20G -numjobs=10 -runtime=1000 -group_reporting -name=mytest

说明:
filename=/dev/sdb1       测试文件名称,通常选择需要测试的盘的data目录。
direct=1                 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite             测试随机写的I/O
rw=randrw                测试随机写和读的I/O
bs=16k                   单次io的块文件大小为16k
bsrange=512-2048         同上,提定数据块的大小范围
size=5g    本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30               本次的测试线程为30.
runtime=1000             测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync           io引擎使用pync方式
rwmixwrite=30            在混合读写的模式下,写占30%
group_reporting          关于显示结果的,汇总每个进程的信息。

此外
lockmem=1g               只使用1g内存进行测试。
zero_buffers             用0初始化系统buffer。
nrfiles=8                每个进程生成文件的数量。

顺序读:
fio  -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

随机写:
fio -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

顺序写:
fio -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

混合随机读写:
fio -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop

 

三,实际测试范例:

[root@localhost tmp]# fio -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=5 -group_reporting -name=mytest
mytest: (g=0): rw=randread, bs=16K-16K/16K-16K/16K-16K, ioengine=psync, iodepth=1
...
fio-2.2.8
Starting 10 threads
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
Jobs: 10 (f=10): [r(10)] [100.0% done] [3152KB/0KB/0KB /s] [197/0/0 iops] [eta 00m:00s]
mytest: (groupid=0, jobs=10): err= 0: pid=15442: Thu Sep 24 16:51:05 2015
read : io=14784KB, bw=2918.3KB/s, iops=182, runt= 5066msec
clat (msec): min=3, max=460, avg=54.41, stdev=63.26
lat (msec): min=3, max=460, avg=54.41, stdev=63.26
clat percentiles (msec):
| 1.00th=[ 5], 5.00th=[ 9], 10.00th=[ 11], 20.00th=[ 16],
| 30.00th=[ 19], 40.00th=[ 24], 50.00th=[ 31], 60.00th=[ 43],
| 70.00th=[ 56], 80.00th=[ 80], 90.00th=[ 128], 95.00th=[ 184],
| 99.00th=[ 338], 99.50th=[ 379], 99.90th=[ 461], 99.95th=[ 461],
| 99.99th=[ 461]
bw (KB /s): min= 98, max= 593, per=10.18%, avg=297.06, stdev=109.73
lat (msec) : 4=0.76%, 10=7.03%, 20=25.76%, 50=32.03%, 100=19.59%
lat (msec) : 250=12.77%, 500=2.06%
cpu : usr=0.01%, sys=0.13%, ctx=942, majf=0, minf=41
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued : total=r=924/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
READ: io=14784KB, aggrb=2918KB/s, minb=2918KB/s, maxb=2918KB/s, mint=5066msec, maxt=5066msec

Disk stats (read/write):
dm-1: ios=905/2, merge=0/0, ticks=53056/149, in_queue=53856, util=98.12%, aggrios=928/3, aggrmerge=0/0, aggrticks=55020/149, aggrin_queue=55168, aggrutil=97.95%
sda: ios=928/3, merge=0/0, ticks=55020/149, in_queue=55168, util=97.95%

centos7 挂载新硬盘的方法

一、使用命令查看当前的磁盘信息

#fdisk -l //查看磁盘信息

二、查看磁盘格式

# df -T /

三、fdisk sdb 进行分区,输入 p 查看新硬盘分区,如图:

企业微信截图_17134962117633.png

五、用m命令来看fdisk命令的内部命令;n命令创建一个新分区;d命令删除一个存在的分区;p命令显示分区列表;t命令修改分区的类型ID号;l命令显示分区ID号的列表;a命令指定启动分区;w命令是将对分区表的修改存盘让它发生作用。

我们这里是创建新分区,所以输入 n 然后 e 是扩展分区,p 是主分区,我们输入 p

接下来的块数什么的,都输入 1 ,最后选择大小,Last cylinder or +size or +sizeM or +sizeK (1-60801, default 60801):+500GB //我们输入这个意思是分区大小为500G

最后输入 w 保存,如图:

企业微信截图_17134962329795.png

六、格式磁盘mkfs -t ext3 /dev/sdb1 命令进行对sdb1格式化

七、挂载硬盘

格式化完了之后,我们就可以进行挂载分区了,我们先创建一个目录叫data然后把 /dev/sdb1 挂载到 /data 目录下,命令如下

mkdir /data

mount -t ext4 /dev/vdb1 / data

最后使用 df -h 命令进行查看,修改 /etc/fstab 来进行自动加载。如图:

1713493717132042037[1].jpg

# /dev/vdb1 /mnt ext4 defaults 0 0

然后保存x 退出。

centos 7 查看磁盘io ,找出占用io读写很高的进程

1,先用iostat查看磁盘io 是否读写负载很高

用iostat -x 1 10

如果 iostat 没有,要 yum install sysstat安装这个包,第一眼看下图红色圈圈的那个如果%util接近100%,表明I/O请求太多,I/O系统已经满负荷,磁盘可能存在瓶颈,一般%util大于70%,I/O压力就比较大,读取速度有较多的wait,然后再看其他的参数,

1713493749720036656[1].jpg

rrqm/s:每秒进行merge的读操作数目。即delta(rmerge)/s
wrqm/s:每秒进行merge的写操作数目。即delta(wmerge)/s
r/s:每秒完成的读I/O设备次数。即delta(rio)/s
w/s:每秒完成的写I/0设备次数。即delta(wio)/s
rsec/s:每秒读扇区数。即delta(rsect)/s
wsec/s:每秒写扇区数。即delta(wsect)/s
rKB/s:每秒读K字节数。是rsec/s的一半,因为每扇区大小为512字节

wKB/s:每秒写K字节数。是wsec/s的一半
avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。即delta(rsect+wsect)/delta(rio+wio)
avgqu-sz:平均I/O队列长度。即delta(aveq)/s/1000(因为aveq的单位为毫秒)
await:平均每次设备I/O操作的等待时间(毫秒)。即delta(ruse+wuse)/delta(rio+wio)
svctm:平均每次设备I/O操作的服务时间(毫秒)。即delta(use)/delta(rio+wio)
%util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的

 

2,找出使用io高的进程的工具  iotop

yum install iotop -y

直接执行 iotop 命令,然后看下图的显示,查看那个进程的读写,找出进程

1713493749805086753[1].jpg

CentOS6 调整硬盘分区大小

调整硬盘分区大小

想增加root空间,减少home空间。

1.查看硬盘使用情况。

[root@npm ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   48G   45G   17M 100% /tmpfs                         246M     0  246M   0% /dev/shm/dev/sda1                     485M   33M  427M   8% /boot/dev/mapper/VolGroup-lv_home   50G  180M   47G   1% /home

2.调整home分区大小

[root@npm ~]# umount /home[root@npm ~]# e2fsck -f /dev/mapper/VolGroup-lv_home
e2fsck 1.41.12 (17-May-2010)第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/mapper/VolGroup-lv_home: 11/3303104 files (0.0% non-contiguous), 253351/13207552 blocks[root@npm ~]# resize2fs -p /dev/mapper/VolGroup-lv_home 2G
resize2fs 1.41.12 (17-May-2010)Resizing the filesystem on /dev/mapper/VolGroup-lv_home to 524288 (4k) blocks.
Begin pass 2 (max = 32768)正在重定位块            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 404)正在扫描inode表          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/VolGroup-lv_home is now 524288 blocks long.[root@npm ~]# mount /home[root@npm ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   48G   45G   17M 100% /
tmpfs                         246M     0  246M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
/dev/mapper/VolGroup-lv_home  2.0G  152M  1.8G   8% /home

3.释放空间

[root@npm ~]# lvreduce -L 2G /dev/mapper/VolGroup-lv_home
  WARNING: Reducing active and open logical volume to 2.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce lv_home? [y/n]: y
  Reducing logical volume lv_home to 2.00 GiB
  Logical volume lv_home successfully resized
[root@npm ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   48G   45G   16M 100% /
tmpfs                         246M     0  246M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
/dev/mapper/VolGroup-lv_home  2.0G  152M  1.8G   8% /home
[root@npm ~]# vgdisplay  --- Volume group ---  VG Name               VolGroup
  System ID  Format                lvm2
  Metadata Areas        1  Metadata Sequence No  5  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                3  Open LV               3  Max PV                0  Cur PV                1  Act PV                1  VG Size               99.51 GiB
  PE Size               4.00 MiB
  Total PE              25474  Alloc PE / Size       13088 / 51.12 GiB
  Free  PE / Size       12386 / 48.38 GiB
  VG UUID               ILLwIo-pQ0o-2Ayw-fYcP-QhcW-A1id-Sozp1f

4.增加空余空间到root

[root@npm ~]#  lvextend -L +48.38G /dev/mapper/VolGroup-lv_root
  Rounding size to boundary between physical extents: 48.38 GiB
  Extending logical volume lv_root to 96.54 GiB
  Logical volume lv_root successfully resized
[root@npm ~]# resize2fs -p /dev/mapper/VolGroup-lv_rootresize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 4, new_desc_blocks = 7Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 25307136 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 25307136 blocks long.

[root@npm ~]# df -hFilesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   96G   45G   46G  50% /
tmpfs                         246M     0  246M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
/dev/mapper/VolGroup-lv_home  2.0G  152M  1.8G   8% /home

  • 正睿合作伙伴
  • 社区
首页 | 注册 | 网站地图 | 通告 | 联系我们
CopyRight(C)2004-2022 Chongqing Zhengrui Technology Co.,Ltd. All rights reserved.
重庆正睿科技有限公司(C)版权所有 未经书面授权 不得转载、复制或建立镜像
渝ICP备11002339号-1  渝公网安备 50010702500475号