CPU linux cpu使用率率问题

1047人阅读
  发现进程中的w3wp占用率过高。
  经过查询,发现如下:
  w3wp.exe是在IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe的进程实例运行。这个进程用来分配大量的系统资源。这个进程对于系统的稳定和安全具有重要的意义,不能轻易的结束掉这个进程。
  找到解决办法:(Windows2008中可以通过:服务器管理器-&角色\web服务器\iis管理器 找到网站下的应用程序池,直接在程序池项的右键中修改)
  解决CPU占用过多:
  1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
  2、设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。
  根据w3wp取得是哪一个应用程序池:
  1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
  2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft (r) Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。)
  3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。
  解决内存占用过多,可以做以下配置:
  1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
  2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。再设置当内存占用超过多少(如500M),就自动回收内存。
  我的设置如下:
  首先是对CPU的限制:在启用cpu监视后,我设置该应用程序池最大的cpu使用率为50%。设置刷新cpu时间为1分钟,设置操作为“关闭”。最大工作进程数设置为1。这个意思是,IIS刷新检测该独立池的CPU使用情况时间为1分钟,如果超过设置的cpu限制50%,就会发出关闭池的指令,要求池在指定的时间内关闭。如果池成功在这个时间内关闭,IIS会重启动一个新池,此段时间很短,一般不会有什么感觉,池就重新开启了,对于访问网站的人基本是不会有感觉的。但如果池没有在指定时间内关闭,IIS就会强行关闭它一个刷新CPU时间。在这个停止的时间内,网站无法访问,提示“Service
Unavaliable”。 关闭时间和启动时间间隔设置:设短一些比如10秒,这样当您的网站程序大量占用系统资源时IIS自动快速回收进程并且快速启动进程,您的网站暂时还可以将就着工作。
  对内存的限制及进程回收时间的设置:我设置为内存占用超过800M就自动回收内存,虚拟内存没有做限制。进程回收时间我保持默认没有修改。各位可以根据自己的情况设置更短的时间。对应用程序池最大虚拟内存也可以在此进行设置,超过了设置的最大虚拟内存,该池会就被回收。
  最后综合落伍wlmmc的一些经验,总结一些需要注意的问题:
  1、要限制一个站点的CPU使用,必须将该站点设置为独立应用程序池,共用应用程序池是无法限制单个站点的。IIS独立应用程序池,就需要独立的进程,非常消耗内存。独立池越多,就有越多的W3WP进程。对于每个站点均要独立应用程序池的服务器,在一般的普通P43.0 2G内存 的普通服务器上,建议不要超过50个站点,最好30以内,不然服务器压力非常大。在配置上,我一般把资源消耗较大的网站独立一个池,一般普通BBS或者生成HTML的系统大概5个站一个池。普通网站以及一些企业站点均共用一个池。
  2、根据wlmmc的经验,在服务器硬件允许的情况下,一般不要限制站点内存使用,这样能够保证网站运行,不会出现用户掉线情况。需要限制某站的最大虚拟内存不要小于64M,不然可能出现一些未知的错误。
  3、这些都不是根本解决办法,它的根本问题是网站程序有问题,要解决根本问题还要从程序查起。根据本文开头提到的方法查到具体的应用程序池,找到使用此应用程序池的网站,解决网站程序存在的问题,如死循环之类。
  4、除了w3wp.exe, 在调用数据库进行大量查询操作的时候,也会大量占用CPU资源,这是难免的(数据库方面的语句及结构优化不在本文讨论范围之内)。个人认为,只要不是CPU长时间占用100%, 一般在75%左右都是正常的。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:26625次
排名:千里之外
原创:19篇
转载:21篇
(1)(3)(6)(1)(1)(1)(10)(1)(2)(1)(1)(4)(5)(1)(2)解决mysqld-nt.exe大量占用CPU问题
解决mysqld-nt.exe大量占用CPU问题
服务器主机(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL 服务进程 (mysqld-nt.exe) CPU 占用率总为 100% 高居不下。此主机有10个左右的 database, 分别给十个网站调用。据朋友测试,导致 mysqld-nt.exe cpu 占用奇高的是网站A,一旦在 IIS 中将此网站停止服务,CPU 占用就降下来了。一启用,则马上上升。 MYSQL CPU 占用 100% 的解决过程今天早上仔细检查了一下。目前此网站的七日平均日 IP 为2000,PageView 为 3万左右。网站A 用的 database 目前有39个表,记录数 60.1万条,占空间 45MB。按这个数据,MySQL 不可能占用这么高的资源。于是在服务器上运行命令,将 mysql 当前的环境变量输出到文件 output.txt:d:\web\mysql&mysqld.exe--help&output.txt发现 tmp_table_size 的值是默认的 32M,于是修改 My.ini, 将 tmp_table_size 赋值到 200M:d:\web\mysql&notepad c:\windows\my.ini[mysqld]tmp_table_size=200M然后重启 MySQL 服务。CPU 占用有轻微下降,以前的CPU 占用波形图是 100% 一根直线,现在则在 97%~100%之间起伏。这表明调整 tmp_table_size 参数对 MYSQL 性能提升有改善作用。但问题还没有完全解决。于是进入 mysql 的 shell 命令行,调用 show processlist, 查看当前 mysql 使用频繁的 sql 语句:mysql&反复调用此命令(每秒刷两次),发现网站 A 的两个 SQL 语句经常在 process list 中出现,其语法如下:SELECT t1.pid, t2.userid, t3.count, t1.date FROM _mydata AS t1LEFT JOIN _myuser AS t3 ON t1.userid=t3.useridLEFT JOIN _mydata_body AS t2 ON t1.pid=t3.pid ORDER BY t1.pid LIMIT0,15调用 show columns 检查这三个表的结构 :mysql&show columns from _mysql&show columns from _mysql&show columns from _mydata_终于发现了问题所在:_mydata 表,只根据 pid 建立了一个 primary key,但并没有为 userid 建立索引。而在这个 SQL 语句的第一个 LEFT JOIN ON 子句中:LEFT JOIN _myuser AS t3 ON t1.userid=t3.userid_mydata 的 userid 被参与了条件比较运算。于是我为给 _mydata 表根据字段 userid 建立了一个索引:mysql&ALTER TABLE `_mydata` ADD INDEX ( `userid` )建立此索引之后,CPU 马上降到了 80% 左右。看到找到了问题所在,于是检查另一个反复出现在 show processlist 中的 sql 语句:SELECT COUNT(*)FROM _mydata AS t1, _mydata_key AS t2WHERE t1.pid=t2.pid and t2.keywords='孔雀'经检查 _mydata_key 表的结构,发现它只为 pid 建了了 primary key, 没有为 keywords 建立 index。_mydata_key 目前有 33 万条记录,在没有索引的情况下对33万条记录进行文本检索匹配,不耗费大量的 cpu 时间才怪。看来就是针对这个表的检索出问题了。于是同样为 _mydata_key 表根据字段 keywords 加上索引:mysql&ALTER TABLE `_mydata_key` ADD INDEX ( `keywords` )建立此索引之后,CPU立刻降了下来,在 50%~70%之间震荡。再次调用 show prosslist,网站A 的sql 调用就很少出现在结果列表中了。但发现此主机运行了几个 Discuz 的论坛程序, Discuz论坛的好几个表也存在着这个问题。于是顺手一并解决,cpu占用再次降下来了。至此,问题解决。1. 增加 tmp_table_size 值。mysql 的配置文件中,tmp_table_size 的默认大小是 32M。如果一张临时表超出该大小,MySQL产生一个 The table tbl_name is full 形式的错误,如果你做很多高级 GROUP BY 查询,增加 tmp_table_size 值。 这是 mysql 官方关于此选项的解释:tmp_table_sizeThis variable determines the maximum size for a temporary table in memory. If the table becomes too large, a MYISAM table is created on disk. Try to avoid temporary tables by optimizing the queries where possible, but where this is not possible, try to ensure temporary tables are always stored in memory. Watching the processlist for queries with temporary tables that take too long to resolve can give you an early warning that tmp_table_size needs to be upped. Be aware that memory is also allocated per-thread. An example where upping this worked for more was a server where I upped this from 32MB (the default) to 64MB with immediate effect. The quicker resolution of queries resulted in less threads being active at any one time, with all-round benefits for the server, and available memory.2. 对 WHERE, JOIN, MAX(), MIN(), ORDER BY 等子句中的条件判断中用到的字段,应该根据其建立索引 INDEX。索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。表越大,花费时间越多。如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。如果一个表有1000行,这比顺序读取至少快100倍。所有的MySQL索引(PRIMARY、UNIQUE和INDEX)在B树中存储。根据 mysql 的开发文档:索引 index 用于:o 快速找出匹配一个WHERE子句的行o 当执行联结(JOIN)时,从其他表检索行。o 对特定的索引列找出MAX()或MIN()值o 如果排序或分组在一个可用键的最左面前缀上进行(例如,ORDER BY key_part_1,key_part_2),排序或分组一个表。如果所有键值部分跟随DESC,键以倒序被读取。o 在一些情况中,一个查询能被优化来检索值,不用咨询数据文件。如果对某些表的所有使用的列是数字型的并且构成某些键的最左面前缀,为了更快,值可以从索引树被检索出来。假定你发出下列SELECT语句:mysql&SELECT*FROM tbl_name WHERE col1=val1 AND col2=val2;如果一个多列索引存在于col1和col2上,适当的行可以直接被取出。如果分开的单行列索引存在于col1和col2上,优化器试图通过决定哪个索引将找到更少的行并来找出更具限制性的索引并且使用该索引取行。开发人员做 SQL 数据表设计的时候,一定要通盘考虑清楚。文章来自:
论坛上一直看到有朋友问 1 我的数据库一个表怎么定期同步到另一个表 2 我的局域网络上两台
server服务器上的数据库怎么同步 3 我的数据库迁移,n多用户登录信息怎么备份 4 我怎么定期去调用
语句是: ALTER TABLE table_name RENAME TO new_table_
例:ALTER TABLE username RENAME TO username_
?Notice: Undefined index: 的错误 解决方法:
网易博客安全提醒:系统检测到您当前密码的安全性较低,为了您的账号安全,建议您适时修改密码????立即修改??|??关闭
学习资料(收集转载,仅供个人参考)
------------如有意见请及时给我留
北京时间5月18日消息,据国外媒体报道, Google 与广告主爱恨交织的关系,可能因Adwords最新的政策变更而再起波涛。
Google 上周四宣布,Adwords搜索文字广告,自下月起将开放特定公司购买使用商标
Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致
一系统性能问题。下面介绍
Server支持的两种批量数据插
面对质疑,我的急性子特征又冒了出来:你可以在网络用
Google 搜,可以搜到我写的案例分析,还有媒体对我的采访。 入职后,马上面临着一项重要的任务:在众多竞标的咨询公司中,选择合适的公司作为年
几个产品都很不错, 平时的电脑使用中我经常会用到, 可是一成不变的样子有时不免也会让人觉得很无聊. 今天就要介绍
Redesigned 皮肤套装 , 专为 Google
正如我们周一所预告的那样,Yahoo!依照惯例,今天发布了2007年第二季度财政报告。华尔街的分析师对于这份报告并没有太大的期望,因为Yahoo!仍然处于低迷时期。有人说Yahoo!最可悲的地方并不是它
类似于SQLHelper,只是这里引用的是MySql.Data类库,而不是System.Data.SqlC因为.Net框架里面并不包含些类库,好在咱们有强大的网友有做好的MySql.Data类库。在网上一搜MySql.Data就可以找
...日硅谷动力网站从国外媒体处获悉:美国Google公司旗下的免费网站流量分析服务Google...在流量和增加和减少方面用颜色进行了标示。2005年,Google公司收购了互联网网站流量分析服务商...
Powered by
[ RssXN(build:
070517 Asp.net 2.0)]
每隔1小时自动更新一次当前位置:&>>&
如何解决玩DNF时CPU占用高经常闪退问题
15:06:46发表 | 来源:游久DNF专区 | 作者:阿克里@colg |
导读试了,还挺好,但是想提升只能说,双核电脑已经被这个世界淘汰了
  超级电脑或嫌长者请直接右上角点X
  废话不多说,直入主题
  先说我的电脑配置,09年2月买的神舟承运L420T,今年初内存实在顶不住了,加多一G内存,目前3G,上周卖了7400万游戏币买了个32G的固态改装了光驱位。用了五年的电脑,目前依旧狂野,组个三人去456依旧奔放,当然虽然不怎么掉线,内存占用约70%多点(没办法,这游戏相当吃内存)。我想说的是,除去DNF及运营商自身的问题以外,我们是否真的了解自己的电脑。
  下面说下前段时间加装固态后新装系统玩DNF遇到的各种问题及解决办法。
  1.装完Windows7 32位系统后一切貌似正常,但上游戏玩了会就经常掉线,多的时候一波456掉四次,这酸爽,你懂的。且常出现玩着玩着屏幕卡着不动,但看得到队友打字,说明没掉线,那么问题来了?这种问题的原因是你的显卡驱动有问题,请找驱动精灵安装新的显卡驱动。
  2.MTU问题,最近这里或者许多贴吧都喜欢说MTU改动的问题,我也谈谈个人看法,我个人8M电信网络,1500的时候正常,1492也正常,1464一个鸟样,不过上个月有个网友每次登录到角色选择界面时都出&网络连接中断&,后来帮他设置MTU至1480左右就能正常游戏了。所以有没有用,不防一用,反正用了你也不会怀孕。
  3.运行游戏时启用CPU核数问题,这两天我一直在为CPU一直跑到八九十甚至100%而郁闷,如果你也是这个问题,那么请用此方法,如果没人,不防看看自己的&系统配置&是否已经达到最优配置。按start+r(start就是Ctrl与Alt中间那个键)调出运行命令,然后输入msconfig,如图
  回车确定,弹出&系统设置&菜单,点引导项中的&高级选项&,如图
  高级选项中一个是程序使用CPU使用核数,一个是单程序最大使用内存量
  我会说我之前玩DNF的时候CPU老跑得很高,就是因为系统默认CPU核数选了1吗?!所以如果你是双核的请先2,如果是四核的请选四,最大内存同理,电脑是3G选3072,4G就调4092,8G就&&调完请重启系统让设置生效。
  最后你上游戏体验一下吧,打开任务管理器就知道CPU占用的效果了,当单程序最大内存调高后,因达到内存峰值而闪退的现象就基本不会出现了。玩游戏嘛,最重要是开心,希望大家少点被闪退卡死等问题影响心情&&
DNF视频排行榜
播放:2928次作者:周梦
播放:1226次作者:sd4374585
播放:1187次作者:Derek
播放:874次作者:复杂的牛奶
播放:832次作者:请叫我虾池
播放:798次作者:DNF玩家
播放:755次作者:未知
播放:689次作者:Eiji
播放:668次作者:DNF玩家
播放:578次作者:❥╮. Shan 情。快速搞定QQ占用cpu高导致的卡机问题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
快速搞定QQ占用cpu高导致的卡机问题
Q​Q​问​题
大小:1.39KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢

我要回帖

更多关于 linux cpu使用率 的文章

 

随机推荐