使用IIS 6.0运营虚拟主机的朋友们都会碰到这样一个问题,当某个网站占用大量CPU资源时,会把整个服务器都拖慢了,影响服务器上其他网站的访问速度,客户们的投诉也让系统管理员倍感头疼。我们知道,从IIS 6.0开始,微软引入了应用程序池的概念,也就是把多个网站分组放置到不同的“池子”中。作为系统管理员,可以自由调整每个程序池中的网站,也可以随意把某个站点在各个进程池之间进行迁移。

传统解决方案

当某个站点消耗大量CPU时,其所在的应用程序池w3wp.exe的CPU值会随之飙升。在传统的IIS 6.0的环境下,我们只能先根据任务管理器中的PID值判断出是哪个应用程序池造成的,结束对应的w3wp进程,再停止该应用程序池。然后使用二分法,把该程序池中的网站分一半到其他程序池,再观察,等问题网站发作后再反复执行上述的操作。这个过程耗时耗力,要揪出目标网站可能需要几天甚至一周左右。那么新版的IIS 8.0是否能更完美的解决这个问题呢?

实际上,微软从IIS 7.0起就开发了CPU Throttlling(CPU扼喉)功能,基本采用了上面预想的方法2,可以事先对每个程序池进行CPU限制,未雨绸缪,一旦出现问题站点,最多只影响同在一个程序池的其他用户,而不会造成整机故障。到了IIS 8.0时代,这个功能变得更加细致,下面我就来剖析新版IIS 8.0的CPU限制策略。

操作步骤分析

1、选择应用程序池操作面板上的“高级设置”。

2、秘密就在“CPU”栏目下的“限制(百分比)”和“限制操作”这两项。首先说明下第一项百分比,假如我们想限制这个程序池的CPU为10%,那么应该填写10000,即10*1000,这个地方要特别注意。

关于“限制(百分比)”这项,微软的官方解释是:限制(百分比)设置了应用程序池中的工作进程(即w3wp.exe)在“限制间隔“(默认5分钟)的时间段内使用CPU时间的最大百分比。如果超出这个限制,系统将记录到事件日志中,并且触发限制操作中的某个可选事件。

默认的限制(百分比)为0,表示不进行任何CPU限制,而不是把CPU限制为0。

3、接下来就是最关键的限制操作项了。这个项中有4种选择,分别阐述如下。

NoAction:超出限制后,除了写入事件日志之外,不执行任何操作。

KillW3WP:超出限制后,关闭应用程序池。我们不推荐使用此项,因为出现问题站点是无法预期的,如果贸然关闭,既无法进一步判断问题站点,也会造成网站无法打开,引起其他客户的抱怨。

Throttle:将CPU严格限制为百分比中的数值。问题站点发作时,会影响同一程序池下的其他网站。

ThrottleUnderLoad:只有在系统CPU资源不足时,才开始限制CPU使用率。举例说明,假如当前系统CPU为10%,设置某程序池限制CPU为20%,问题站点占用CPU为30%。这时仍然不会限制CPU使用,因为总的CPU才40%,系统资源仍然绰绰有余。

我们推荐采用Throttle或ThrottleUnderLoad,根据经验,ASP或ASP.NET网站可以直接使用Throttle限制,某些PHP网站占用CPU较高,采用Throttle限制后网站打开速度不理想,这时可以采用ThrottleUnderLoad。

如何限制虚拟主机可使用的CPU资源的更多相关文章

  1. 轻松配置httpd的虚拟主机

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  2. Nginx的虚拟主机

    1.虚拟主机的概念和类型 1.1 概念: 所谓的虚拟主机,在web服务里面就是一个独立的网站站点,这个站点对应独立的域名(也有可能是IP或者端口),具有独立的程序和资源目录,可以独立的对外提供服务. ...

  3. 配置httpd虚拟主机

    轻松配置httpd的虚拟主机 httpd使用VirtualHost指令进行虚拟主机的定义.支持三种虚拟主机:基于ip,基于端口和基于名称.其中基于端口的虚拟主机在httpd的术语上(例如官方手册)也属 ...

  4. Tomcat之虚拟主机配置以及web应用配置

    Tomcat之虚拟主机配置以及web应用配置 Tomcat文件夹结构例如以下: bin ---- 启动和关闭须要的bat文件所在的文件夹 conf --- 配置文件夹 lib ---  tomcat执 ...

  5. 阿里云虚拟主机针对恶意频繁攻击式访问造成CPU爆满的解决方法

    最近网站CPU经常爆满,到阿里云提交了工单,工程师给我的处理意见:   您好,虚拟主机CPU占用比较高通常这种情况有两种可能:   一是网站应用程序代码逻辑较复杂,或业务架构效率比较低,在请求了某个网 ...

  6. nginx 虚拟主机配置

    user nginx; #代表使用的用户 worker_processes auto; #工作衍生进程数,一般代表系统cpu核数一到两倍最好 error_log /var/log/nginx/erro ...

  7. Nginx 笔记与总结(3)配置虚拟主机

    Nginx 重启的另外一种方式,相当于 kill -HUP `cat /usr/local/nginx/logs/nginx.pid`: /usr/local/nginx/sbin/nginx -s ...

  8. 虚拟主机、VPS、云主机以及独立服务器的关系

    很多人对虚拟主机.VPS.云主机以及独立服务器的关系不是很了解,我在这里给大家简单分析一下. 先总结一下: (1)虚拟主机是把一台物理机器分割成很多的小空间,这些空间共享操作系统的资源,比如:同一个操 ...

  9. 【nginx运维基础(2)】Nginx的配置文件说明及虚拟主机配置示例

    配置文件说明 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为当前主机的CPU总核心数. worker_processes 8; #全局错误日志定义类型, ...

随机推荐

  1. HBase应用开发回顾与总结系列之一:概述HBase设计规范

      概述 笔者本人接触研究HBase也有半年之久了,虽说不上深入和系统,但至少算是比较沉迷.作为部门里大数据技术的探路者,笔者还要承担起技术传播的职责,所以在摸索研究的过程中总是不断地进行总结和测试, ...

  2. 烂泥:CentOS6.5挂载windows共享文件夹

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 由于工作需要,需要把本机的文件夹共享出去,然后让CentOS服务器临时使用下. 服务器使用的是CentOS系统,而本机使用的win7系统.考虑到是临时使 ...

  3. date

    更改时区 用系统备好的时区文件覆盖掉当前的配置文件,/etc/里装的是当前系统的配置文件 $sudo cp /usr/share/zoneinfo/Asia/Chongqing /etc/localt ...

  4. linux 分区 物理卷 逻辑卷

    今天我们主要说说分区.格式化.SWAP.LVM.软件RAID的创建哈~ 格式化 查看当前分区:fdisk   -l 这个命令我们以前是讲过的,我现在问下,ID那项是什么意思? 83 是代表EXT2和E ...

  5. Android : <com.mobeta.android.dslv.DragSortListView-引用自定义控件包名错误

    所谓的包名与命名空间的问题,包名不一致是指与自己工程的package名称不一置, 开始以为是到自定义包名不一置,真是个误区: 解决方法: 把xmlns:dslv="http://schema ...

  6. Debian deb源方法升级PHP软件包

    学习Linxu以来,一直坚持编译方式安装软件包,貌似圈子里面也是都倾向于编译,可是搜索到的编译方法都是一堆复制粘贴来的指令, 每个人都这么编译, 却几乎没有人去写明那些五花八门的编译指令代表了什么,是 ...

  7. POJ 1741 Tree (树的点分治入门)

      Tree Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16172   Accepted: 5272 Descripti ...

  8. position&containing block

    一.包含块(Containing Block) 要讲position,首先就涉及到一个概念:包含块. 1.包含块介绍 包含块简单理解就是一个定位参考块,就是"大盒子里套小盒子"中那 ...

  9. 转载:学习Entity Framework 中的Code First

    看完觉得不错,适合作为学习资料,就转载过来了 原文链接:http://www.cnblogs.com/Wayou/archive/2012/09/20/EF_CodeFirst.html 这是上周就写 ...

  10. Ajax讲解

    AJAX:即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 ...