process / informix的高CPU使用率

时间:2012-11-24 04:26:22

标签: process load cpu informix

我在生产环境中遇到了我的流程问题,我也可以在我的开发环境中模拟这个问题。

该过程有5个线程,其中3和3个线程。 4是高度活跃的。 Thread 4是对消息进行排队的生成器,Thread 3是对消息进行排队的消费者。这两个线程都是数据库密集型的。

问题

当进程运行时,top输出显示此进程的高CPU使用率&的OnInit(Informix的)。 CPU负载始终高于4,这是危险的。 这台机器只有1CPU和2个虚拟CPU。

所有数据库查询都以committed read隔离级别

运行

分析

  1. ps -eLo pid,ppid,lwp,nlwp,osz,rss,ruser,pcpu,stime,etime,args | grep <processname>
  2. 此输出显示线程3&amp;的高CPU使用率。 4

    1. onstat -g act -r 2
    2. 此输出显示3号线和3号线。经常4次查询。

      考虑到以上所有事实,有没有办法减少oninit&amp;的CPU使用率。进程和CPU负载

1 个答案:

答案 0 :(得分:0)

从表面上看,系统运行良好。你有两个数据库密集型线程,数据服务器可以很好地服务它们。这两个线程都没有被挂断;数据服务器能够跟上工作量。如果您没有看到等待I / O或重要的分页活动等。如果您减少线程3和4的活动级别,您应该看到oninit也不那么忙。

如果您担心数据库活动的数量,则需要查看线程要求服务器的SQL。是否准备好了陈述?统计数据是最新的吗?你能简化查询吗?你能组合查询(在很多情况下,与简化相反)?请求的线程每秒有多少个查询?

您确定平均CPU负载为4是个问题吗?我的Mac(2.3 GHz Intel Core i7,16 GiB RAM)运行8个BOINC后台进程和几个DBMS和一个Web浏览器等,其平均负载大小在4到10之间。它表现得非常好(但它与你的机器不一样)。