今天系统报警了!!!!!顿时人又不好了!!!查看系统日志,

报错如下:

Did not receive adequate CPU time slice. Last known CPU usage time at 14:45:03:180 CST. Inactivity duration was 32 seconds.

0000047a CoordinatorCo W HMGR0152W: CPU Starvation detected. Current thread scheduling delay is 32 seconds.

百度了下,具体原因是:

1. 物理内存被过量使用并且产生了分页.

2. 进程的堆大小太小导致垃圾回收频繁或者过长阻塞了其他线程的执行.

3. 系统中运行着太多线程,负载过高可能导致CPU使用过高.

解决方案是:

1. 增加物理内存防止分页.

2. 优化JVM堆内存配置,从而优化垃圾回收.

3. 降低系统的整体负载到一个可以接受的值.

这三种方案,该怎么解决呢?

1.对于增加物理内存,也不知道是不是因为物理内存不够导致的,但我机器是16G内存,应该够的。

2.JVM堆内存配置,这个可以考虑在was管理控制台中设置,将jvm的堆内存值调大一点。具体参考:http://xiaoxinshome.iteye.com/blog/1733212

3.如何降低系统的整体负载呢?请求量过高导致负载也高?也不能降低别人的请求量啊。暂时可以考虑把抛出的异常捕获,精简代码。

问题描述:
系统工作正常,但是在SystemOut.log中记录了很多HMGR的警告信息。
[10/25/05 16:42:27:635 EDT] 0000047a CoordinatorCo W HMGR0152W: CPU Starvation detected. Current thread scheduling delay is 9 seconds.

HMGR0152W信息报出说明这个进程中存在JVM线程调度延迟。

WebSphere Application Server高可用管理器组件中包含线程调度延迟检测逻辑,它会周期性的启动一个线程, 用这个线程去跟踪是否线程已经被分派,是否按照计划运行。默认情况下,延迟检测线程每30秒钟运行一次, 如果超过计划5秒钟没有运行就会在日志中记录一条HMGR0152W消息。这条消息显示了延迟的时间或者与该线程期望得到CPU和实际得到CPU的时间差。

HMGR0152W甚至可能在CPU资源可用的情况下报出。有很多原因可能导致这个调度线程不能以适时的方式获得CPU.下面是一些常见的原因:

1. 物理内存被过量使用并且产生了分页.

2. 进程的堆大小太小导致垃圾回收频繁或者过长阻塞了其他线程的执行.

3. 系统中运行着太多线程,负载过高可能导致CPU使用过高.

HMGR0152W警告信息试图告诉您出现了一个如果不及时修正可能导致不稳定的情况.您需要分析为什么调度线程发生了延迟,需要采取哪些措施.下面是一些常用的解决方法:

1. 增加物理内存防止分页.
2. 优化JVM堆内存配置,从而优化垃圾回收.
3. 降低系统的整体负载到一个可以接受的值.
如果HMGR0152W信息不是经常报出,并且从报出的消息看延迟很短(例如小于20秒), 通常不会有其他问题发生,这个时候这个消息可以被忽略.

高可用管理线程调度延迟检测可以通过配置下面两个定制属性中的一个来实现:
1. IBM_CS_THREAD_SCHED_DETECT_PERIOD 参数决定延迟检测线程多长时间运行一次.默认值是30秒.
2. IBM_CS_THREAD_SCHED_DETECT_ERROR 参数决定多长时间的延迟需要被用这个警告信息记录在日志中.

这些属性辖域在核心组上,您可以按照如下方法配置:
1. 在管理控制台中, 点击服务器 > 核心组 > 核心组设置, 然后选择核心组名字.
2. 在其它属性下, 点击定制属性 > 新建.
3. 输入属性名和值.
4. 保存配置.
5. 如果是网络部署环境, 请注意同步所有节点.
6. 重新启动所有的服务器是该配置在该服务器上生效.

虽然我们可以用上面两个属性增加线程调度检测时间, 但是不建议通过它们使HMGR0152W警告消息完全不再报出. 这个方法只是用于优化系统消除线程调度延迟.

相关文章:

was日志报检测到cpu饥饿

http://xjsunjie.blog.51cto.com/999372/1294089/

如何分析websphere中间件生成的javacore文件

http://blog.sina.com.cn/s/blog_61cd89f60102eeo0.html

在SystemOut.log中发现HMGR0152W: 检测到CPU 饥饿的消息 <转载>的更多相关文章

  1. git 邮箱错误-git log 中发现 XXX@163.com邮箱不符合要求,请务必使用公司邮箱。

    场景描述: 重新配置电脑之后,提交了git,邮箱发生错误. git log # 查看日志git reset 版本 # 回到之前的版本,版本回退git config --global user.name ...

  2. SpriteBuilder添加的TrueType字体未显示在log中的原因分析

    按照书上的说法,在SpriteBuilder中添加的TrueType字体名称会在枚举字体方法显示的log中出现.但是运行程序后没有在log中发现对应的字体名称. 因为该字体是例子中作者制作的,所以字体 ...

  3. golang中的race检测

    golang中的race检测 由于golang中的go是非常方便的,加上函数又非常容易隐藏go. 所以很多时候,当我们写出一个程序的时候,我们并不知道这个程序在并发情况下会不会出现什么问题. 所以在本 ...

  4. 自动统计安卓log中Anr,Crash,Singnal出现数量的Python脚本

    作为测试,在测试工作中一定会经常抓log,有时log收集时间很长,导致log很大,可能达到几G,想找到能打开如此大的log文件的工具都会变得困难:即使log不大时,我们可以直接把log发给开发同学去分 ...

  5. 谁记录了mysql error log中的超长信息

    [问题] 最近查看MySQL的error log文件时,发现有很多服务器的文件中有大量的如下日志,内容很长(大小在200K左右),从记录的内容看,并没有明显的异常信息. 有一台测试服务器也有类似的问题 ...

  6. Git 实战手册(一): 批量修改log中的提交信息

    本文须知 教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步原文地址 有空就来看看个人技术小站, 我一直都在 背景介绍 事情的起源是这样的:迷恋的谷歌的我最近申请了一个新的 googl ...

  7. 谁记录了mysql error log中的超长信息(记pt-stalk一个bug的定位过程)

    [问题] 最近查看MySQL的error log文件时,发现有很多服务器的文件中有大量的如下日志,内容很长(大小在200K左右),从记录的内容看,并没有明显的异常信息. 有一台测试服务器也有类似的问题 ...

  8. alert.log中的minact-scn: useg scan erroring out with error e:376警告

    早上,开发说昨晚一台服务器的undo好像有异常,早上上去一看,库停了,正常startup之后,随手crud了一把,都正常.去看alert.log日志,发现undo某个数据块访问报I/O读错误,如下: ...

  9. 自动统计安卓log中Anr,Crash,Singnal出现数量的Python脚本 (转载)

    自动统计安卓log中Anr,Crash,Singnal出现数量的Python脚本   转自:https://www.cnblogs.com/ailiailan/p/8304989.html 作为测试, ...

随机推荐

  1. strstr和memcmp函数的实现

    #include <stdio.h> #include <stdlib.h> //malloc()函数 typedef unsigned int size_t; size_t ...

  2. [RxJS] Marble diagrams in ASCII form

    There are many operators available, and in order to understand them we need to have a simple way of ...

  3. Spark1.0.0 监测方法

          Spark1.0.0能够通过下面几种方式来对Spark应用程序进行监控: Spark应用程序的WebUI或者Spark Standalone的集群监控 指标,然后通过支持指标收集的集群监控 ...

  4. exit与return区别

    1. exit用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操作系统:而return 是退出当前函数,返回函数值,把控制权交给调用函数.2. exit是系统调用级别,它表示一个进程的结束 ...

  5. MySQL - 复制数据表

    假设现在有张数据表 users: CREATE TABLE users ( userid ) UNSIGNED NOT NULL, username ) UNIQUE, passwd ) ', PRI ...

  6. C++ hello world

    日文版本的vs 2008 , 在 < 新建 里面先创建一个项目 然后点击项目去创建一个C++的主启动文件 选择创建的文件类型 然后在文件里面写入代码 #include<iostream&g ...

  7. MVC打包压缩JS&CSS文件调试时过滤了一些文件

    BundleTable.这个确实是比较好用,打包并压缩了CSS,使之加载时减少流量. 但是在调试的时候会疑问为何有很多JS,CSS文件无法打包,其实是因为调试时VS自动过滤了如下文件:   后台跟踪了 ...

  8. Building Local Unit Tests

    If your unit test has no dependencies or only has simple dependencies on Android, you should run you ...

  9. 利用linq快速判断给定数字是否包含在某个段范围内

    一.需求: 知道某段范围0x0020~0x007F0x00A0~0x017F0x01A0~0x01CF0x01F0~0x01FF0x0210~0x021F0x1EA0~0x1EFF给定一个值,快速判断 ...

  10. 收集 数据库的awr数据,生成报告

    该脚本只是把awr报告的内容,原封不动的 展现出来,做记录 awrreport.sql  脚本内容如下: *********************************************** ...