首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代理www达到进程FD限制(maxsock=4168).请检查“ulimit n”并重新启动。

代理www达到进程FD限制(maxsock=4168).请检查“ulimit n”并重新启动。
EN

Server Fault用户
提问于 2021-08-11 13:19:23
回答 1查看 704关注 0票数 1

我已经编译了haproxy来应用特殊的LUA过滤器,现在haproxy一直运行到最大的文件开放限制。它愉快地运行,然后突然日志显示了以下消息:

代码语言:javascript
复制
Proxy www-out reached process FD limit (maxsock=4026). Please check 'ulimit-n' and restart.

我已经尝试通过为haproxy创建一个服务限制文件来增加这个限制。

代码语言:javascript
复制
cat /etc/systemd/system/haproxy.service.d/limits.conf 
[Service]
LimitNOFILE=600000

启动haproxy时,将加载限制文件。

代码语言:javascript
复制
● haproxy.service - HAProxy Load Balancer
   Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/haproxy.service.d
           └─limits.conf
   Active: active (running) since Wed 2021-08-11 15:07:08 CEST; 8s ago
     Docs: man:haproxy(1)
           file:/usr/share/doc/haproxy/configuration.txt.gz
  Process: 25865 ExecStartPre=/usr/local/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS (code=exited, status=0/SUCCESS)
 Main PID: 25867 (haproxy)

然而,从过程上看,这似乎只是改变了硬限制,而不是软限制。

代码语言:javascript
复制
root     25867  0.1  0.0 141136 18264 ?        Ss   15:07   0:00 /usr/local/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
haproxy  25869  0.1  0.0 1173536 12860 ?       Sl   15:07   0:00  \_ /usr/local/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
test@test ~> cat /proc/25867/limits | grep "open"
Max open files            4168                 600000               files  

最后是关于haproxy的一些信息。

代码语言:javascript
复制
Build options :
  TARGET  = linux-glibc
  CPU     = generic
  CC      = cc
  CFLAGS  = -O2 -g -Wall -Wextra -Wdeclaration-after-statement -fwrapv -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered -Wno-missing-field-initializers -Wtype-limits -Wshift-negative-value -Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference
  OPTIONS = USE_PCRE=1 USE_OPENSSL=1 USE_LUA=1 USE_SYSTEMD=1
  DEBUG   = 

Feature list : +EPOLL -KQUEUE +NETFILTER +PCRE -PCRE_JIT -PCRE2 -PCRE2_JIT +POLL +THREAD +BACKTRACE -STATIC_PCRE -STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT +CRYPT_H +GETADDRINFO +OPENSSL +LUA +ACCEPT4 -CLOSEFROM -ZLIB +SLZ +CPU_AFFINITY +TFO +NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL +SYSTEMD -OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS -OT -QUIC -PROMEX -MEMORY_PROFILING

Default settings :
  bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with multi-threading support (MAX_THREADS=64, default=36).
Built with OpenSSL version : OpenSSL 1.1.1  11 Sep 2018
Running on OpenSSL version : OpenSSL 1.1.1  11 Sep 2018
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
Built with Lua version : Lua 5.4.3
Built with network namespace support.
Built with libslz for stateless compression.
Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
Built with PCRE version : 8.39 2016-06-14
Running on PCRE version : 8.39 2016-06-14
PCRE library supports JIT : no (USE_PCRE_JIT not set)
Encrypted password support via crypt(3): yes
Built with gcc compiler version 7.5.0
EN

回答 1

Server Fault用户

发布于 2021-08-11 13:27:37

我通常在/etc/security/极限/限制下处理这种限制,其中可以同时调整每个用户的硬限制和软限制。(有关配置细节,请查看/etc/security/limits/Lims.conf中的注释)。我不知道这与systemd中设置的指令是如何交互的。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1074212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档