使用cgroup 限制进程的磁盘io

cat /etc/cgconfig.conf

#

#  Copyright IBM Corporation. 2007

#

#  Authors:     Balbir Singh <[email protected]>

#  This program is free software; you can redistribute it and/or modify it

#  under the terms of version 2.1 of the GNU Lesser General Public License

#  as published by the Free Software Foundation.

#

#  This program is distributed in the hope that it would be useful, but

#  WITHOUT ANY WARRANTY; without even the implied warranty of

#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

#

# See man cgconfig.conf for further details.

#

# By default, mount all controllers to /cgroup/<controller>

mount {

cpuset  = /cgroup/cpuset;

cpu     = /cgroup/cpu;

cpuacct = /cgroup/cpuacct;

memory  = /cgroup/memory;

devices = /cgroup/devices;

freezer = /cgroup/freezer;

net_cls = /cgroup/net_cls;

blkio   = /cgroup/blkio;

}

group shard_0{

blkio{

blkio.throttle.read_iops_device="253:3 16000";

blkio.throttle.write_iops_device="253:3 16000";

blkio.weight="500";

}

}

group shard_1{

blkio{

blkio.throttle.read_iops_device="253:3 16000";

blkio.throttle.write_iops_device="253:3 16000";

blkio.weight="500";

}

}

blkio.throttle.read_iops_device 读iops

blkio.throttle.write_iops_device 写iops

253:3是设备的编号

比如我们要限制进程在flashcache上的iops

[[email protected] ~]# ls -l /dev/mapper/cachedev

lrwxrwxrwx 1 root root 7 Jan 25 21:16 /dev/mapper/cachedev -> ../dm-3

这里看到只是一个软连接,我们接着找

[[email protected]~]# ls -l /dev/dm-3

brw-rw---- 1 root disk 253, 3 Jan 25 21:16 /dev/dm-3

因此我们限制某个进程在 flashcache上的iops最高16000就 写成 253:3 16000

启动cgroup

[[email protected] /]# service cgconfig restart

Stopping cgconfig service:                                 [  OK  ]

Starting cgconfig service:                                 [  OK  ]

然后就可以将进程id写进cgroup 对应的task了

[[email protected] shard_0]# pwd

/cgroup/blkio/shard_0

[[email protected] shard_0]# cat tasks

48554

339938

340404

340414

340487

340498

340547

340560

340568

340581

340587

340602

340608

340609

340624

340633

340650

340657

340659

340660

340669

340672

340675

340685

340687

340689

340690

340701

340708

340709

340710

340711

340712

340719

341151

341157

341158

341159

341160

341162

341171

341172

341178

341180

341186

341187

341192

341204

341212

341229

341231

341237

341245

341248

341249

341250

341251

341252

341253

341254

341255

341256

341257

341258

341259

341260

341261

341262

341263

341264

341265

341270

341273

341279

341284

341285

341286

341288

341294

341295

341296

341297

341298

341299

341300

341301

341307

341308

时间: 2024-11-05 13:35:45

使用cgroup 限制进程的磁盘io的相关文章

linux查看哪个进程占用磁盘IO

方法一: $ iotop -oP 命令的含义:只显示有I/O行为的进程 测试结果: 方法二: $ pidstat -d 1 命令的含义:展示I/O统计,每秒更新一次 测试结果: 原文地址:https://www.cnblogs.com/weifeng1463/p/11080028.html

linux的cpu和磁盘io优先级设置

通常linux下限制cpu使用有三种方法: nice/renice:调整进程使用cpu的优先级 cpulimit:不修改进程的nice值,通过暂停进程一段时间,来限制cpu使用 cgroups:内核提供的机制,可以限制.记录.隔离一组进程所使用的cpu.内存.磁盘.网络等资源,是docker等容器的基础技术之一 限制磁盘io : ionice : 调整io调度的优先级 cgroups 这里只说nice和ionice,实际上nice和ionice只是改变优先级,并没有真正的限制 一.nice 1.

性能测试进阶指南——基础篇之磁盘IO

本文旨在帮助测试人员对性能测试常用指标做一个简单的讲解,主要包括CPU.内存.磁盘和网络带宽等系统资源,本文仅仅局限于Linux系统,Windows Server系统暂不做考虑. 使用iostat分析IO性能 对于I/O-bond类型的进程,我们经常用iostat工具查看进程IO请求下发的数量.系统处理IO请求的耗时,进而分析进程与操作系统的交互过程中IO方面是否存在瓶颈. 下面通过iostat命令使用实例,说明使用iostat查看IO请求下发情况.系统IO处理能力的方法,以及命令执行结果中各字

zabbix监控磁盘IO(二)

1.磁盘发现脚本 vim disk_io.sh  #!/bin/bash  diskarray=(`cat /proc/diskstats |grep -E "\bsd[a-z]\b|\bxvd[a-z]\b|\bvd[a-z]\b"|awk '{print $3}'|sort|uniq   2>/dev/null`)    length=${#diskarray[@]} printf "{\n" printf  '\t'"\"data\&

【好书摘要】性能优化中CPU、内存、磁盘IO、网络性能的依赖

系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上的优化就适合眼下正在运行的系统,不同的系统.不同的硬件.不同的应用优化的重点也不同. 优化的方法也不同.优化的参数也不同.性能监测是系统优化过程中重要的一环,如果没有监测.不清楚性能瓶颈在哪里,怎么优化呢?所以找到性能 瓶颈是性能监测的目的,也是系统优化的关键.系统由若干子系统构成,通常修改一个子系

Linux服务器用iotop命令分析服务器磁盘IO情况

Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦.如果会systemtap, 或者blktrace这些事情难不到大家, 但是没专用工具总不是很舒服的. 幸运的是Linux 2.6.20内核以后提供了基于每个进程的IO记账功能,所以就有了类似iotop这样方便的工具.可以通过iotop工具进行分析,查看哪个进程占有读写比较高. 官网地址: http://guichaz.free.fr/iotop/ Iot

standby 磁盘IO性能较差,影响Primary性能

1. 近日处理一个由于standby 磁盘IO性能较差,导致Primary的性能受到影响.主库主要是等待"log file switch completion",通过ASH dump分析,最终发现实际等待事件是"LGWR-LNS wait on channel".这个事件基本上可以将问题归结到网络性能和standby的IO性能,而客户的传输模式是"MAXIMUM AVAILABILITY"最后提出两个解决方案,(1). 更换性能更好的standb

sysbench利用fabric磁盘IO测试

利用sysbench测试磁盘IO: 10台机器并发测试,一台fabric控制server,控制端需要安装fabric,测试server安装sysbench,测试时生成15G的测试文件:测试案例如下: fabric的远程管理,可以看一下上篇博文: http://xujunxian.blog.51cto.com/8614409/1730780 测试执行: 1.创建11台ubuntu台虚拟机,1台安装fabric,10台安装sysbench,并配置好IP地址,fabric需要直接访问安装sysbenc

磁盘IO过高时的处理办法

针对系统中磁盘IO负载过高的指导性操作 主要命令:echo deadline > /sys/block/sda/queue/scheduler 注:以下的内容仅是提供参考,如果磁盘IO确实比较大的话,是数据库,可以进行读写分离或者分库操作,减小磁盘压力,文件的话,可以利用raid来减轻压力 一)I/O调度程序的总结: 1)当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成.2)每个块设备都有它自己的队列.3)I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O