我会尽量给我尽可能多的信息,我可以在这里。 虽然解决scheme会很好,但我只想指导如何解决问题。 如何查看更多有用的日志文件,等等。因为我是服务器维护的新手。 任何build议,欢迎。 以下是按时间顺序发生的事情: 我正在运行2个数字海洋飞沫(Ubuntu 14.04 VPS) 滴#1运行django,nginx,gunicorn 滴#2运行postgres 一切都运行良好一个月,突然postgres液滴CPU使用率飙升到100% 发生这种情况时可以看到htop日志。 我附上了截图 另一个截图是nginx error.log,你可以看到这个问题在15:56:14开始,我用红框突出显示 sudoclosuresPostgres液滴并重新启动它不能解决问题 恢复postgres液滴到我最后的备份(20小时前)解决了这个问题,但它不断发生。 这是2天内的第7次 我会继续研究并提供更多信息。 同时欢迎任何意见。 谢谢。 2016年5月20日更新 按照e4c5的build议在Postgres服务器上启用慢查询日志logging 6小时后,服务器在上午8:07再次冻结(100%CPU使用率)。 我附上了所有相关的截图 如果在冻结过程中尝试访问站点,浏览器将显示502错误 sudo service restart postgresql (和gunicorn,在Django服务器上的nginx)不修复冻结( 我认为这是一个非常有趣的观点 ) 但是,将Postgres服务器恢复到我以前的备份(现在2天) 可以修复冻结 罪魁祸首Postgres日志消息是无法发送数据到客户端:Broken Pipe 罪魁祸首Nginx的日志消息是一个简单的Django的rest框架 api调用哪个只返回20个项目(每个都有一些外键数据查询) 更新#2 2016年5月20日当冻结发生时,我尝试按照时间顺序进行以下操作(closures所有内容并逐个将其重新打开) sudo service stop postgresql – > cpu使用率下降到0-10% sudo service stop gunicorn – > cpu使用率保持在0-10% […]
我有nginx接收POST请求和一个微小的PHP脚本,将请求正文放到MySql。 这个问题是非常高的MySql CPU使用率,当我有每秒300 POSTs。 我期望MySql是一个快速的事情,可以处理更多的300插入每秒。 我使用Amazon EC2小型实例Amazon Linux。 top – 18:27:06 up 3 days, 1:43, 2 users, load average: 4.40, 5.39, 5.76 Tasks: 178 total, 4 running, 174 sleeping, 0 stopped, 0 zombie Cpu(s): 24.6%us, 13.4%sy, 0.0%ni, 0.0%id, 1.1%wa, 0.0%hi, 4.9%si, 56.0%st Mem: 1717480k total, 1640912k used, 76568k free, 193364k buffers Swap: 917500k total, 5928k […]
我想统计CPU使用率,但我不想使用accton或任何其他软件。 只是脚本。 我可以使用top来获取最高CPU使用率或内存使用率的进程名称吗? 当我使用顶级-b时,我得到了很多无用的信息。
如何在Linux中find由Java进程创build的十大或最lessCPU密集线程堆栈跟踪? 我想知道花了多less时间,如果可能的话
当我第一次做这个查询时,表格相对较小,但运行速度非常快,但是随着更新表格大小的增加(现在大约有6000行),查询速度非常缓慢且资源密集。 我正在使用的服务器是来自linode.com的1GB RAM VPS,实际上我没有等待查询完成。 有趣的是,没有左连接的额外条件(SELECT MAX(u2.time)),它运行在<0.5s。 在查询运行时,我查看了mySQL的进程列表,并显示为“发送数据” 这是查询: SELECT s.ID as sid, s.country AS country, s.name AS name, s.ip AS ip, u.connPlayers AS cp, u.maxPlayers AS mp FROM servers AS s LEFT JOIN updates AS u ON u.serverID = s.ID AND u.time = (SELECT MAX(u2.time) FROM updates AS u2 WHERE u2.serverID = s.ID) ORDER BY […]
每当我尝试从top或mpstat这样的命令,特别是collectd服务,加起来的CPU利用率百分比,我不能达到确切的100%的CPU利用率。 例如,来自Amazon EC2上testing服务器的最新结果: Cpu(s): 13.6%us, 31.6%sy, 0.0%ni, 53.2%id, 0.0%wa, 0.0%hi, 0.0%si, 1.7%st 不pipe我如何加总百分比,我从来没有得到100%的CPU,当然也没有任何合理的方式。 大多数情况下,这似乎是四舍五入错误; 100.1%或99.9%,但有时我会超过110%。 这种情况通常发生在steal相对较高的情况下,例如收集到的一种情况报告盗窃率为21.44%,闲置率为88%,这两个数字已经超过了100%。 我明白ni (nice)也算在us (用户)中,所以我不应该加上它,但是这样做依然行不通。 有谁知道如何将这些添加到100%或如何解释collectd有时报告的例外情况?
我正在为我的课程开发一个并行R项目。 该项目是完整的,但是,我想通过核心使用在CPU上添加一些细节,以显示单核和多核之间的时间和性能的差异。 我读过一篇文章,它显示了我想要的CPU使用情况,但没有代码或脚本。 它显示了这样的用法: 1 [ 0.0%] 2 [############################################## 100.0%] 3 [* 0.7%] 4 [ 0.0%] 怎么能显示这个? 感谢您的帮助。
由于我对Linux和核心转储相当陌生,我不确定核心转储中存储了哪些信息。 这让我想知道是否有一个GDB命令来从一个核心转储文件检索线程的CPU%使用率。 就像从“顶部”命令中获得的CPU使用率一样。 也将很好地获得内存使用。 我正在改写之前发布的问题,以便更专注于我正在寻找的答案。 参考: 如何诊断在linux中咀嚼CPU的python进程 谢谢。
我有一个multithreading应用程序(C ++和pthread库),我想知道每个线程使用多less资源(CPU和内存)。 有没有办法在Solaris和Linux上或两者上find这些细节。
我想实现一个multithreading进程,它负责并行启动线程。 根据htop的输出结果,每个线程的CPU消耗不到1%,而主CPU消耗100%的CPU。 int main (int argc, char *argv[]) { struct sigaction action; int i; exitReq = 0; memset(&engine, 0, sizeof(stEngine_t)); engine.NbTasks = 12; engine.TaskThread = malloc(engine.NbTasks * sizeof(stTask_t)); /* NbTasks = 12 */ for (i = 0; i < engine.NbTasks; i++) { engine.TaskThread[i] = array[i]; engine.TaskThread[i].initTask(); pthread_create(&engine.TaskThread[i].tId, NULL, my_handler, (void *) &engine.TaskThread[i]); } while (!exitReq) […]