Linux每隔几秒就会冻结一次

我们遇到的问题是我们的 Linux机箱(Ubuntu 10.04 LTS,在EC2上运行,具有四倍大尺寸,68GB内存和8个虚拟内核,每个3.25GHz)每隔几秒钟冻结一次.键入ssh会话将冻结,并且正在运行的Postgresql进程之一上运行strace通常会显示
02:37:41.567990 semop(7831581,{{3,-1,0}},1

在它继续前几秒钟(它总是卡在那个semop).

OProfile显示大部分时间花在内核中(60%)而Postgresql中则花费37%.

这些停顿(一天前突然开始)的结果是盒子上的负载从0.7变为10,并导致整个堆栈减速.

关于如何追踪正在发生的事情的任何想法? iostat没有显示磁盘特别慢或过载,并且顶部显示用户cpu在这些备份发生时从8%飙升到大约40%.

解决方法

我怀疑你的系统信号量已经不足了.检查ipcs -l以获取当前设置.这是 some info about tuning semaphores for postgresql.特别是我会尝试增加系统范围内的信号量(SemmNS)的最大数量和每组信号量的最大数量(SemmSL).您可以使用sysctl -p修改这些设置.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...