免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: edgefree
打印 上一主题 下一主题

[系统管理] CPU load多少是一个合适的范围? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-29 13:45 |显示全部楼层 |倒序浏览
各位大神好,

小弟碰到一棘手的问题。

我们到产品环境,是一个集群20台blade机器,用的是Sun Grid Engine (也称 OGE)。目前每天晚上有很多任务在每一个blade上运行。每台blade上是24个逻辑cpu。其中一个信息如下:
analyzing CPU 23:
  driver: pcc-cpufreq
  CPUs which need to switch frequency at the same time: 23
  hardware limits: 1.60 GHz - 2.80 GHz
  available cpufreq governors: conservative, userspace, powersave, ondemand, pee
  current policy: frequency should be within 1.60 GHz and 2.80 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 2.80 GHz.

我们到应用在blade上,同时需要访问local的MySQL。MySQL里存的是一些binary压缩数据,每次访问后,均需要解压。发现CPU load高的时候,解压花很长时间。平时大约1秒钟到活,可能要花3分钟左右。

过去都一直很好,最近每天早上6点后突然变得很慢。1分钟平均 Load达到 15-22 之多。此时大约只有10个到14个我们的应用程序在运行。

查过OS的patch最近没有变化,网络部分没有变化,似乎OS的其他问题也都正常。

各位大侠有什么方向指导一下吗?简直现在没有一点方向了,压力山大啊!

叩谢!!!

Edge

论坛徽章:
0
2 [报告]
发表于 2013-11-29 21:56 |显示全部楼层
谢谢大家的建议。

很有些奇怪的是:我做过一次测试,但执行12个任务的时候,似乎速度还可以,load大概是2左右,一旦多于12个任务,load一下就涨到15以上,而且所有的任务都变得很慢。但奇怪的是,这个有时不能完全重现。

的确,我们的数据量不小,所有数据计算处理大约需要6-8小时。为什么把binary存入数据库,这是一个以往的design。那些binary数据大多是一些前面任务处理生成的object或一些binary供后面的程序共用的。压缩只是因为空间有限,就是这样了,每天整个数据库大约有200G的数据。

目前,速度慢,直接严重影响了报表的及时生成,其他相关部门抱怨很多。但自己无从下手,压力很大。

论坛徽章:
0
3 [报告]
发表于 2013-12-04 10:23 |显示全部楼层
确定只是我们自己的应用程序。其他备份大约发生在半夜12点左右。

因为实在没有办法了,昨晚重启了几台blade,今天似乎工作正常。至少没有发生这个问题。所有的机器有450天左右没有重启了。难道是操作系统的问题???那为什么其他job不慢?而且每天出现在不同的blade呢???

不过现在不能十分确定,重启是解决问题的方法。

回复 6# rdcwayx


   

论坛徽章:
0
4 [报告]
发表于 2013-12-04 11:20 |显示全部楼层
谢谢!这篇文章的英文版看过。

但有些不明白。

按该文章的理论,我的机器是24个CPU,所以load在24以下,应该是可以handle。就算仅考虑70%,也就是 24 x 0.7 = 16.8 以下,应该不会出现CPU的瓶颈。但在我的测试中,当任务为12个时,cpu load大概是2.75左右。每个任务都能正常的速度完成。但当多于12个任务,load会突然涨到15左右,此时,所有到任务都非常忙。似乎,load的变化不是线性的。而且,我的机器似乎达到每个cpu为1的load。

这也是我这个帖子的标题,想知道,CPU load究竟多少是一个合适的值?

回复 11# zongg


   

论坛徽章:
0
5 [报告]
发表于 2013-12-04 11:47 |显示全部楼层
看起来不像。每个任务都是独立的,单进程。互相之间没有任何交互关系。

回复 14# zongg


   

论坛徽章:
0
6 [报告]
发表于 2013-12-04 12:01 |显示全部楼层
还是谢谢!!!

论坛徽章:
0
7 [报告]
发表于 2013-12-05 10:57 |显示全部楼层
我的应用中,每个小任务是单线程,通常运行1分钟到1个半小时不等。因为每个任务都会正常结束。所以,即便是有内存泄漏,应该也不会有大的问题。OS/Mysql都不是最新,因为是产品环境,所以不可能马上更新,需要很多的程序和approval。

另外,这个产品环境已经运行了450天左右,而其他非产品环境(不能重现这个问题),只运行了330天左右。不知道是否有相关性。虽然我也知道Linux/UNIX 应该可以长期运行下去。

回复 18# rdcwayx


   

论坛徽章:
0
8 [报告]
发表于 2014-01-04 08:25 |显示全部楼层
UPDATE 一下。

最终看起来应该是内存问题,或者内存碎片问题。在cron job里加了强制回收cache,解决了此问题。

1. 加了下面的entry到crontab。
sync; echo 3 > /proc/sys/vm/drop_caches

这里有一个参考网址:http://www.linuxinsight.com/proc_sys_vm_drop_caches.html

2. 配置了swapness策略:

从default value 60变到了10

参考网址:http://askubuntu.com/questions/1 ... onfigure-swappiness


这里是一个思路:

1. 发现swap区有大小,说明系统遇到了内存不够的问题。而且采用了swap策略。

2. 发现系统中buffer/cache占用很大内存。

3. 用strace跟踪运行慢的process,统计发现(strace -c PID),慢的process的brk系统调用特别高。”怀疑“(目前也不是非常确定,没有从kernel code中得到证明,故仍停留在怀疑阶段。希望有高手指点,更正。),process不能一次拿到合适大小的内存,因此需要多次从一小片一小片内存中拼,故brk调用特别高。

遂,采用上面的办法。实验效果很好,基本解决了此问题。

另外,我们其中一个产品环境已经完全(每台机器)重启,重启后,不用我提供的此方案,也没有这个问题。故,此问题的出现和运行了450天有关。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP