Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4469227
  • 博文数量: 1214
  • 博客积分: 13195
  • 博客等级: 上将
  • 技术积分: 9105
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-19 14:41
个人简介

C++,python,热爱算法和机器学习

文章分类

全部博文(1214)

文章存档

2021年(13)

2020年(49)

2019年(14)

2018年(27)

2017年(69)

2016年(100)

2015年(106)

2014年(240)

2013年(5)

2012年(193)

2011年(155)

2010年(93)

2009年(62)

2008年(51)

2007年(37)

分类: 系统运维

2016-07-03 14:12:16

服务器用admin ssh上去显示:
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$


因为设置root的ulimit更大,所以用root可以ssh去查看问题。
/etc/security/limit.conf
root hard nofile 65535
root soft nofile 65535
admin hard nofile 65000
admin soft nofile 65000




服务器上跑了user space的程序有nginx,jsvc启动 tomcat,mongodb。java程序会和另外三台机器交互。
写脚本监控java(pid=1619)使用fd数量,mongodb连接数,和整体连接数。
monitor.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from datetime import datetime
import time

while 1:
    os.system("echo -n %s $(ls -al /proc/`ps aux | grep jsvc | grep -v grep | awk {'print $2'} | sort -r | head -n 1`/fd | wc -l) >> monitor.log" % datetime.now().isoformat())
    os.system('''echo " `netstat -antp | grep 27017 | wc -l` `netstat -antp | wc -l` `pstree | grep jsvc | awk -F'-' {'print $NF'}`" >> monitor.log''')
    time.sleep(60)

可是用admin跑这个脚本,等到出问题后,就只有时间被记录。


因而用root用户查看出问题时的连接数:
netstat -na | wc -l 只有1043
跑脚本查看各个进程的file descriptor,发现jsvc 的进程最多1057个,其他30几个系统进程都不超过20个。脚本如下:
detect_process_fd.sh
for di in $(find /proc -maxdepth 1 -type d)
do
  [ -e $di/fd ] && echo $di `ls -al $di/fd | wc -l` || echo -n
done




pstree -u
init-+-acpid
     |-agetty
     |-auditd---{auditd}
     |-crond
     |-dbus-daemon(dbus)
     |-haproxy(haproxy)
     |-jsvc(ruyi)---jsvc---1013*[{jsvc}]
     |-6*[mingetty]
     |-mongod(mongod)---9*[{mongod}]
     |-nginx---2*[nginx(ruyi)]
     |-ntpd(ntp)
     |-rsyslogd---3*[{rsyslogd}]
     |-sshd-+-sshd---sshd(ruyi)---sftp-server
     |      |-sshd---bash---pstree
     |      `-sshd---sshd(ruyi)---bash
     |-tmux(ruyi)---bash---python
     |-udevd---2*[udevd]
     `-uma---python
jsvc开了过多线程,系统给ruyi用户设置的是1024,所以有问题


修改/etc/securite/limit.d/90-nproc.conf
* soft nofile 12000




参考资料:


阅读(1390) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~