抱歉,无法再次创建UNIX套接字(24)

时间:2019-12-03 22:06:10

标签: python file file-descriptor ulimit

我为重复的主题表示歉意。但是我似乎重新阅读了所有可以尝试的内容。

我已经3次遇到以下问题了……

  File ".../lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
  File ".../lib/python2.7/site-packages/MySQLdb/connections.py", line 193, in __init__
OperationalError: (_mysql_exceptions.OperationalError) (2001, "Can't create UNIX socket (24)")

在最后一种情况之前,我有limits.conf:

*                soft    nofile          4096
*                hard    nofile          8192
root             soft    nofile          4096
root             hard    nofile          8192

所有用户的ulimit -Sn:4096

发生问题时,我已经检查了服务器:

#lsof -Fn | sort  | uniq | wc -l
3181
#lsof -Fn -u appuser | sort  | uniq | wc -l
2255
#cat /proc/sys/fs/file-max
783812

然后我按Counting open files per process中的脚本检查每个进程的最大打开文件数:

cd /proc
for pid in [0-9]*
do
  echo "PID = $pid with $(ls /proc/$pid/fd/ | wc -l) file descriptors"
done | sort -rn -k5 | head | while read -r _ _ pid _ fdcount _
do
  command=$(ps -o cmd -p "$pid" -hc)
  printf "pid = %5d with %4d fds: %s\n" "$pid" "$fdcount" "$command"
done

结果(应用程序用户的最大值):1022

我检查了数据库设置:

mysql> SHOW VARIABLES LIKE '%open%' ;
+-------------------+----------+
| Variable_name     | Value    |
+-------------------+----------+
| have_openssl      | DISABLED |
| innodb_open_files | 300      |
| open_files_limit  | 50000    |
| table_open_cache  | 10240    |
+-------------------+----------+

我想念什么?我应该检查哪些信息以避免将来出现此问题?我仍然需要监视哪些指标?哪些设置仍需要调整? 现在,我仅将所有用户的nofile的软限制更改为65535。但是上次未超过该限制。

0 个答案:

没有答案