fork:不能分配内存

我有几个服务器有很多连接的一些问题。

服务器只是挂起新的networking连接(尽pipe在haproxy中的负载均衡function似乎是正确的)。 我无法连接到SSH,并且服务器无法连接到其他套接字。

我保持连接与屏幕上的一个控制台到服务器。 然后发生错误我无法通过屏幕执行任何命令。

# ls -bash: fork: Cannot allocate memory 

我不能执行“free -m”来显示内存数量,但是我得到了监视实现,表明上次发送的值是(RAM free,Buffers free,Swap free)(3597MB,5793,573 3)。

尽pipe我将tcp_fin_timeout更改为15(9155 TIME_WAIT,55 ESTABLISHED),但服务器在netstat中有许多TIME_WAIT连接。 我只能运行ulimits -a

 core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited max nice (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 88064 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 max rt priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 88064 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 

PS。 这不是一个VPS。 这是戴尔。

如果你有一个想法哪些进程导致所有这一切(即Apache),你可以尝试使用命令exec killall -9 httpd从这种情况中恢复。 这将用killall程序取代当前的shell,希望能够消除违规的程序,让你进一步分析问题。 但是要小心,这是一次性尝试,之后屏幕会话中的shell将会消失,如果失败,则需要重新启动。