XenServer通过ionice限制VM虚拟机硬盘IO
发布时间:June 8, 2013 // 分类:虚拟化 // 1 Comment
之前有文章介绍Xen下通过ionice限制VM虚拟机硬盘IO优先级,XenServer获取虚拟机进程和Xen不同,可通过以下方法查找虚拟机IO进程,并使用ionice限制。
首先获取VM虚拟机的UUID:
xe vm-list name-label=<vm-name> --minimal然后再获取VM的DOM ID:
list_domains |awk '/<vm-uuid>/ {print $1}'通过DOM ID获取VM相对应的进程ID:
ps aux|grep xb.*<dom-id>.xvd
root 10995 0.0 0.0 0 0 ? S 10:08 0:01 [xb.00003.xvda]
root 10996 0.0 0.0 0 0 ? S 10:08 0:00 [xb.00003.xvdd]使用ionice调整相应进程的IO优先级策略即可。
Xen限制VM虚拟机磁盘IO
发布时间:June 8, 2013 // 分类:虚拟化 // No Comments
作为VPS服务商我们需要保证每个VPS公平的使用 host(服务器)的资源,避免某个VPS因为程序死循环、挂起、滥用等因素 “拖累”其他VPS,如果出现这个情况如何临时限制这个VPS的磁盘IO呢?有个办法是通过通过修改每个虚拟机CPU权重的办法间接、不精确的限制 IO. 在 Linux 上限制资源(CPU、内存、IO 等)的通常办法是用 cgroups,不过今天介绍的 ionice 要更容易一些。
首先找到哪个虚拟机(VPS)正在大量IO(假设是 vps0001),找到这个虚拟机后用xm list查出这个虚拟机使用的 ID 号,然后用ID配上blkback(blkback.24)找出这个虚拟机(通过Xen的 blkback 驱动)关联哪些硬盘(blkback.24.xvda 和 blkback.24.xvdb),以及所使用的进程号(25089 和 25090):
# xm list vps0001
Name ID Mem(MiB) VCPUs State Time(s)
vps0001 24 1024 2 -b---- 70030.7
# ps aux | grep blkback.24
root 7434 0.0 0.1 61172 768 pts/16 D+ 02:48 0:00 grep blkback.24
root 25089 0.0 0.0 0 0 ? S< 2012 0:00 [blkback.24.xvda]
root 25090 0.0 0.0 0 0 ? S< 2012 0:00 [blkback.24.xvdb]找到进程号后我们就可以 ionice 了:
ionice -p 25089 -c 2 -n 7使用 ionice 之前查一下帮助文件,-c 是指定调度类型,这里选择的是 2,best-effort;-n 指定调度优先级,0 最高,7最低;-p 是指定进程号:
OPTIONS
-c The scheduling class. 1 for real time, 2 for best-effort, 3 for
idle.
-n The scheduling class data. This defines the class data, if the
class accepts an argument. For real time and best-effort, 0-7 is
valid data.
-p Pass in a process pid to change an already running process. If
this argument is not given, ionice will run the listed program
with the given parameters. ionice 把磁盘 IO 调度分成三类:
real time 实时调度,设置后立即访问磁盘,不管系统中其他进程是否有 IO,可能会使得其他进程处于等待状态,不能用在这里;
best effort 默认调度,可以指定调度优先级(从0到7,数值越小、优先级越高);同一优先级的进程采用 round-robin 算法调度;
idle 空闲调度,只有当前系统没有其他进程磁盘 IO 时,才能进行磁盘 IO.额,如果太过分,我们就把这个进程的调度改成 idle,这样会极大降低这个虚拟机的 IO,虚拟机只能保持基本可用状态,不推荐~
ionice -p 25089 -c 3原文:http://www.vpsee.com/2013/06/using-ionice-to-mediate-xen-vm-disk-io/
PHP和JS判断来路跳转到指定页面
发布时间:June 4, 2013 // 分类:PHP // No Comments
PHP根据referer跳转:
<?php
$ref = $_SERVER['HTTP_REFERER'];
if(stripos($ref,"baidu") || stripos($ref,"google")
{
header("Location: https://www.haiyun.me");
exit;
}
?>JS判断方法:
<script>
var s=document.referrer;
if(s.indexOf("baidu")>0||s.indexOf("soso")>0||s.indexOf("google")>0||s.indexOf("yahoo")>0||s.indexOf("sogou")>0||s.indexOf("youdao")>0||s.indexOf("bing")>0)
{
self.location="https://www.haiyun.me";
}
</script>根据UA跳转:
<?php
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if(stripos($userAgent,"Moz") || stripos($userAgent,"baidu"))
{
header("Location: https://www.haiyun.me");
}
?> 通过OpenWRT连接ROS重新PPPoe拨号
发布时间:May 27, 2013 // 分类:ROS // No Comments
OpenWRT安装PPPoe服务器,当客户端连接或断开时通过ip-down.d/ip-up.d执行ROS命令,ROS需配置使用SSH Key验证。
当系统拨号断开时停止PPPoe:
mkdir /etc/ppp/ip-down.d
cat >/etc/ppp/ip-down.d/pppoe-down.sh << EOF
#!/bin/sh
ssh admin@192.168.1.21 "/interface pppoe-client disable pppoe-out1"
EOF
chmod +x /etc/ppp/ip-down.d/pppoe-down.sh 当连接系统拨号连接时开启PPPoe:
mkdir /etc/ppp/ip-up.d
cat >/etc/ppp/ip-up.d/pppoe-up.sh << EOF
#!/bin/sh
ssh admin@192.168.1.21 "/interface pppoe-client enable pppoe-out1"
EOF
chmod +x /etc/ppp/ip-up.d/pppoe-up.sh 2015.03.17更新:
ros重新拨号只需enable就行,无需先disable:
ssh admin@192.168.1.21 "/interface pppoe-client enable pppoe-out1"OpenWRT更新到14.07安装的pppoe不执行ip-down.d或up目录下脚本,需添加相应脚本,PPPD连接时会执行此脚本:
cat >/etc/ppp/ip-up << EOF
#!/bin/sh
[ -d /etc/ppp/ip-up.d ] && {
for SCRIPT in /etc/ppp/ip-up.d/*
do
[ -x "$SCRIPT" ] && "$SCRIPT" "$@"
done
}
EOF
chmod +x /etc/ppp/ip-up 分类
- Apache (13)
- Nginx (45)
- PHP (86)
- IIS (8)
- Mail (17)
- DNS (16)
- Cacti (14)
- Squid (5)
- Nagios (4)
- Puppet (7)
- CentOS (13)
- Iptables (23)
- RADIUS (3)
- OpenWrt (41)
- DD-WRT (1)
- VMware (9)
- 网站程序 (2)
- 备份存储 (11)
- 常用软件 (20)
- 日记分析 (10)
- Linux基础 (18)
- 欧诺代理 (0)
- Linux服务 (18)
- 系统监控 (4)
- 流量监控 (7)
- 虚拟化 (28)
- 伪静态 (2)
- LVM (3)
- Shell (18)
- 高可用 (2)
- 数据库 (16)
- FreeBSD (3)
- 网络安全 (25)
- Windows (35)
- 网络工具 (22)
- 控制面板 (3)
- 系统调优 (10)
- Cisco (3)
- VPN (6)
- ROS (20)
- Vim (14)
- KMS (4)
- PXE (2)
- Mac (1)
- Git (1)
- PE (1)
- LNS (2)
- Xshell (7)
- Firefox (13)
- Cygwin (4)
- OpenSSL (9)
- Sandboxie (3)
- StrokesPlus (1)
- AutoHotKey (4)
- Total Commander (3)
- WordPress (3)
- iMacros (6)
- Typecho (2)
- Ollydbg (1)
- Photoshop (1)
- 正则 (3)
- Debian (3)
- Python (8)
- NoSQL (6)
- 消息队列 (4)
- JS (7)
- Tmux (3)
- GO (7)
- HHVM (2)
- 算法 (1)
- Docker (2)
- PT (15)
- N1 (16)
- K2P (6)
- LUKS (4)
最新文章
- debian 12开机关机systemd-journald日志不连续解决
- debian12下initramfs-tools使用udhcpc配置dhcp ip
- dns压力测试工具queryperf使用
- sandboxie plus运行firefox 140播放视频全屏不能覆盖任务栏
- TEWA-1100G光猫使用
- 烽火光猫HG5382A3使用
- 记联通更换移动XG-040G-MD光猫
- smokeping slave同步错误illegal attempt to update using time解决
- 使用valgrind定位解决smartdns内存泄露
- 此内容被密码保护
最近回复
- 海运: 可能版本问题
- 海运: 如果运营商限制型号
- 海运: 没有
- Mruru: 烽火猫切换rootfs的方法有么大佬?
- nono: 修改光猫型号是做啥子用的
- 960: root账号默认密码hg2x0 不对哇
- rer: 感谢分享!~
- opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
- liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
- 海运: 不好意思,没有。
归档
- November 2025
- October 2025
- August 2025
- March 2025
- February 2025
- August 2024
- May 2024
- February 2024
- January 2024
- December 2023
- November 2023
- October 2023
- September 2023
- August 2023
- May 2023
- April 2023
- February 2023
- January 2023
- December 2022
- September 2022
- July 2022
- April 2022
- March 2022
- February 2022
- January 2022
- December 2021
- November 2021
- April 2021
- March 2021
- February 2021
- January 2021
- December 2020
- November 2020
- October 2020
- September 2020
- July 2020
- May 2020
- April 2020
- March 2020
- February 2020
- January 2020
- December 2019
- November 2019
- July 2019
- April 2019
- March 2019
- February 2019
- January 2019
- December 2018
- November 2018
- October 2018
- September 2018
- August 2018
- July 2018
- June 2018
- April 2018
- March 2018
- February 2018
- January 2018
- December 2017
- October 2017
- September 2017
- August 2017
- July 2017
- April 2017
- March 2017
- February 2017
- January 2017
- December 2016
- November 2016
- July 2016
- June 2016
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- February 2014
- January 2014
- December 2013
- November 2013
- October 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- October 2011
- September 2011
- August 2011
- July 2011