阿里巴巴DBA,原去哪儿网DBA。专注于MySQL源码研究、DBA运维、CGroup虚拟化及Linux Kernel源码研究等。 github:https://github.com/HengWang/ Email:king_wangheng@163.com 微博 :@王恒-Henry QQ :506437736
分类: LINUX
2013-08-14 00:27:32
CGroup资源进行隔离时,对group组限制IOPS和BPS,将进程附加到group组内时,IO的await和iowait飙升,最终导致系统的IO阻塞。这严重影响了正常任务的执行,并且失去了CGroup资源隔离的目的。基于这个原因,对cgroup的BLKIO进行测试和研究。
在使用CGroup进行资源隔离时,为了减少系统IO资源争用,导致重要进程阻塞,因此对CGroup的BLKIO资源进行资源限制。
在deadline的IO调度模式下,主要隔离的参数有:读/写带宽、读/写iops,主要包括:blkio.throttle.read_bps_device,blkio.throttle.read_iops_device,blkio.throttle.write_bps_device,blkio.throttle.write_iops_device四个文件。参数文件的内容格式为:(
应用环境下,对admin管理组的所有设备进行读/写限制,admin管理组包括备份恢复脚本、调度脚本等,他们的特点是会短时间内消耗大量的系统资源。MySQL多实例组不进行IO限制,原因是IO限制在deadline调度模式下,weight权重设置方式无效,单纯的限制IO,不但影响MySQL的性能,而且浪费IO资源。
测试环境为线上正式DB标准环境,SSD数据盘和SAS日志盘,SSD做RAID 5,SAS做RAID 10。
测试的基本条件:admin组的读/写iops分别限制为3000,测试cp大文件过程中,将进程附加到admin管理组中。在不同读/写带宽情况下,不同设备吞口情况下,测试IO资源的隔离情况。详细如下:
ID |
READ_BPS |
WRITE_BPS |
DEVICE_TYPE |
1 |
N/A |
N/A |
SSD -> SSD |
2 |
N/A |
N/A |
SSD -> SAS |
3 |
50M |
N/A |
SSD -> SSD |
4 |
50M |
N/A |
SSD -> SAS |
5 |
50M |
50M |
SSD -> SSD |
6 |
50M |
50M |
SSD -> SAS |
7 |
50M |
N/A |
SSD -> SSD SAS -> SAS |
8 |
50M |
N/A |
SSD -> SAS SAS -> SAS |
测试过程中,每次都会通过系统工具进行基本参数的采集,主要包括:iostat查看IO读写情况;vmstat查看内存的情况。此外,每次在cp之前,执行sync操作,清空内存,防止影响读的测试结果。
测试过程更新中......