RC: blkio throttle 测试
本文将测试一下使用cgroup的blkio组来控制IO吞吐量 :
测试环境CentOS 7.x x64
创建一个继承组
[root@150 rg1]# cd /sys/fs/cgroup/blkio/
[root@150 blkio]# mkdir rg1
继承组自动创建对应的限制文件
[root@150 blkio]# cd rg1
[root@150 rg1]# ll
total 0
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_merged
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_merged_recursive
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_queued
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_queued_recursive
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_service_bytes
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_service_bytes_recursive
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_serviced
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_serviced_recursive
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_service_time
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_service_time_recursive
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_wait_time
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.io_wait_time_recursive
-rw-r--r-- 1 root root 0 Dec 4 00:26 blkio.leaf_weight
-rw-r--r-- 1 root root 0 Dec 4 00:26 blkio.leaf_weight_device
--w------- 1 root root 0 Dec 4 00:26 blkio.reset_stats
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.sectors
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.sectors_recursive
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.throttle.io_service_bytes
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.throttle.io_serviced
-rw-r--r-- 1 root root 0 Dec 4 00:29 blkio.throttle.read_bps_device
-rw-r--r-- 1 root root 0 Dec 4 00:26 blkio.throttle.read_iops_device
-rw-r--r-- 1 root root 0 Dec 4 00:26 blkio.throttle.write_bps_device
-rw-r--r-- 1 root root 0 Dec 4 00:26 blkio.throttle.write_iops_device
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.time
-r--r--r-- 1 root root 0 Dec 4 00:26 blkio.time_recursive
-rw-r--r-- 1 root root 0 Dec 4 00:26 blkio.weight
-rw-r--r-- 1 root root 0 Dec 4 00:26 blkio.weight_device
-rw-r--r-- 1 root root 0 Dec 4 00:26 cgroup.clone_children
--w--w--w- 1 root root 0 Dec 4 00:26 cgroup.event_control
-rw-r--r-- 1 root root 0 Dec 4 00:26 cgroup.procs
-rw-r--r-- 1 root root 0 Dec 4 00:26 notify_on_release
-rw-r--r-- 1 root root 0 Dec 4 00:27 tasks
继承组的tasks为空.
找一个块设备作为测试目标, 注意现在只能控制块设备, 不能控制单个分区.
[root@150 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 40G 2.0G 38G 6% /
devtmpfs 48G 0 48G 0% /dev
tmpfs 48G 0 48G 0% /dev/shm
tmpfs 48G 25M 48G 1% /run
tmpfs 48G 0 48G 0% /sys/fs/cgroup
/dev/sda3 95G 2.8G 87G 4% /opt
例如我这里要控制/dev/sda这个块设备 :
[root@150 opt]# ll /dev/sda
brw-rw---- 1 root disk 8, 0 Nov 27 19:03 /dev/sda
将文件写入/dev/sda的一个文件系统中.
[root@150 rg1]# cd /opt
[root@150 opt]# dd if=/dev/zero of=./test.img bs=1k count=102400
102400+0 records in
102400+0 records out
104857600 bytes (105 MB) copied, 0.350907 s, 299 MB/s
直接从块设备读取到/dev/null, 不限制的话, 速度是14MB/S
[root@150 opt]# dd if=./test.img of=/dev/null bs=1k count=102400 iflag=direct
102400+0 records in
102400+0 records out
104857600 bytes (105 MB) copied, 7.43936 s, 14.1 MB/s
限制读吞吐量是1MB/s :
- Specify a bandwidth rate on particular device for root group. The format
for policy is "<major>:<minor> <bytes_per_second>".
[root@150 opt]# echo "8:0 1048576" > /sys/fs/cgroup/blkio/rg1/blkio.throttle.read_bps_device
将当前shell PID放到该组中
[root@150 opt]# echo $$ > /sys/fs/cgroup/blkio/rg1/tasks
再次读取, 速度被限制到1MB/S
[root@150 opt]# dd if=./test.img of=/dev/null bs=1k count=102400 iflag=direct
102400+0 records in
102400+0 records out
104857600 bytes (105 MB) copied, 100.001 s, 1.0 MB/s
清除限制
[root@150 opt]# echo "8:0 0" > /sys/fs/cgroup/blkio/rg1/blkio.throttle.read_bps_device
清除后速度恢复
[root@150 opt]# dd if=./test.img of=/dev/null bs=1k count=102400 iflag=direct
102400+0 records in
102400+0 records out
104857600 bytes (105 MB) copied, 7.32235 s, 14.3 MB/s
RC: blkio throttle 测试的更多相关文章
- Cgroup blkio简介和测试(使用fio测试)
Cgroup blkio简介和测试(使用fio测试) 因需要对docker镜像内的进程对磁盘读写的速度进行限制,研究了下Cgroup blkio,并使用fio对其iops/bps限速进行测试. Cgr ...
- cgroup测试存储设备IOPS分配
1 使用:创建树并且attach子系统 首先要创建文件系统的挂载点作为树的根 mkdir /cgroup/name mkdir /cgroup/cpu_and_mem Mount这个挂载点到一个或者多 ...
- Windows RC版、RTM版、OEM版、RTL版、VOL版的区别
Windows 版本号标识区别一览表: 版本缩写 版本全称 版本意义 Alpha版 Alpha 内部测试版,一般不会向外部发布,会有很多Bug,只供测试人员使用,如果您看到Alpha版本了,一般来讲对 ...
- webdriver介绍&与Selenium RC的比较
什么是webdriver? webdriver是一个web自动化测试框架,不同于selenium IDE只能运行在firefox上,webdriver能够在不同的浏览器上执行你的web测试用例.其支持 ...
- Selenium私房菜系列6 -- 深入了解Selenium RC工作原理(1)
前一篇已经比较详细讲述了如何使用Selenium RC进行Web测试,但到底Selenium RC是什么?或者它由哪几部分组成呢?? 一.Selenium RC的组成: 关于这个问题,我拿了官网上的一 ...
- 理解Docker(4):Docker 容器使用 cgroups 限制资源使用
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- Cgroups控制cpu,内存,io示例
Cgroups是control groups的缩写,最初由Google工程师提出,后来编进linux内核. Cgroups是实现IaaS虚拟化(kvm.lxc等),PaaS容器沙箱(Docker等)的 ...
- [转载] linux cgroup
原文: http://coolshell.cn/articles/17049.html 感谢左耳朵耗子的精彩文章. 前面,我们介绍了Linux Namespace,但是Namespace解决的问题主要 ...
- Docker基础技术:Linux CGroup
前面,我们介绍了Linux Namespace,但是Namespace解决的问题主要是环境隔离的问题,这只是虚拟化中最最基础的一步,我们还需要解决对计算机资源使用上的隔离.也就是说,虽然你通过Name ...
随机推荐
- Python读取大文件(GB)
Python读取大文件(GB) - CSDN博客 https://blog.csdn.net/shudaqi2010/article/details/54017766
- JMeter快捷键图标制作 去掉cmd命令窗口
使用jmeter时: 如果使用默认的jmeter.bat启动的话,会出现一个CMD命令窗口之后再会启动jmeter工作界面 直接启用ApacheJMeter.jar文件即可跳过CMD命令窗口启动jme ...
- 【POI2007】【Bzoj 1103】大都市meg
http://www.lydsy.com/JudgeOnline/problem.php?id=1103 在线查询某点到根节点的点权和,参考DFS序&欧拉序列,用树状数组维护即可O(nlogn ...
- POJ 3734 Blocks 矩阵递推
POJ3734 比较简单的递推题目,只需要记录当前两种颜色均为偶数, 只有一种颜色为偶数 两种颜色都为奇数 三个数量即可,递推方程相信大家可以导出. 最后来个快速幂加速即可. #include< ...
- VMware 虚拟机下挂载U盘
1.首先设置虚拟机为连接的可移动U盘 2.首先在虚拟机界面的情况下,插入U盘,U盘格式为fat32的 3.在mnt目录下新建一个文件夹usb 4.运用sudo fdisk -l /dev/sdb 来查 ...
- 关于file文件操作的头文件 【LINUX】 (转载)
转自:http://blog.csdn.net/figo77ll/article/details/3156052 Linux下如果要对文件进行读取访问,需要包含至少以下两个头文件: #inlcude ...
- C#自动内存分配
一.在程序运行时由CLR管理内存分配(Memory Allocation),程序启动时,操作系统会为每一个线程申请一个独立的栈内存,用于存储方法的局部变量.参数和返回值等:CLR会为进程申请一个连续的 ...
- 洛谷 P1074 靶形数独(剪枝)
//人生中第一道蓝题(3.5h) 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请 ...
- magento后台开发学习笔记(入门实例向)
目的是做一个grid,参考博客http://www.sunzhenghua.com/magento-admin-module-development-part1-grid-forms-tabs-con ...
- 创建 pulic dblink 使不同的用户可以访问dblink
1. system: grant create public database link to ivrsdata; 2.userdate: tnsnames.ora config db connect ...