【发布时间】:2012-05-19 04:57:24
【问题描述】:
我是新来的,我在 CPU 消耗和多线程方面不是很好。但我想知道为什么我的网络应用程序消耗了太多的 CPU 进程?我的程序所做的是在后台更新值,这样用户就不必等待数据的处理,而只需要根据请求获取它。更新过程是使用执行程序库的计划任务,每 5 秒触发 8 个线程来更新我的数据。
现在我想知道为什么我的应用程序占用了过多的 CPU。是因为代码不好还是因为服务器规格低? (2 个内核,2 个数据库和 1 个主要应用程序与我的 Web 应用程序一起运行)
非常感谢您的帮助。
【问题讨论】:
-
除非你解释这 8 个线程在做什么,否则这几乎是不可能的?多少计算?多少IO?也许显示一个小代码示例?
-
这可能是我最近看到的最晦涩的问题之一
-
嘿,downvoters,你能解释一下你为什么这样做吗?这个问题是合法的。是的,它没有得到很好的解释,但请耐心等待。这是新用户,他将学习如何提出好问题。不要从一开始就惩罚他!
-
我同意 AlexR 的观点。这个问题很幼稚,但是如果人们不准备回答他,那么处于 OP 职位/经验的人如何学会提出非幼稚的问题。
-
如果我的问题很幼稚,我很抱歉。我将尝试提供我的代码的一些 sn-ps。我现在只能说,所有 8 个线程都在查询一个负载非常大的数据库(每个表有数百万个事务),然后加密和解密数据。我并不是真的在寻找任何明确的答案,而是更多关于 2 核服务器如何在非常繁忙的环境中执行的信息。谢谢。
标签: java linux multithreading processors