我们设置了nginx(nginx / 1.4.6(Ubuntu))与ubuntu上的tomcat服务器(7.0.39)通信(同一物理服务器上的5个tomcat实例),一切正常,直到我们得到15000个请求/分钟,我们开始面临问题每当我们在nginx服务器上突然大于@ 20000 - 25000 req /分钟几秒钟时,nginx错误日志得到" connect()失败(110:连接超时),同时连接到上游"。
我们观察到nginx错误日志中的错误是针对所有5个tomcat实例一次性而不是仅针对其中一个 - 因此,如果针对套接字或打开文件或突然达到限制,则会引发一个问题在服务器级别的其他东西?
#########
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 32063
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 32063
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
#########
我想知道
上是否有任何设置tomcat中的大多数线程都处于以下状态
" HTTP的生物8181-EXEC-8" daemon prio = 10 tid = 0x00007f38b8006800 nid = 0x590e等待条件[0x00007f39490ac000] java.lang.Thread.State:在sun.misc.Unsafe.park(本地方法)等待的停止(停放)< 0x00000007811f9908> (java.util.concurrent.locks.AbstractQueuedSynchronizer $ ConditionObject)
Nginx设置如下: #############
worker_processes 4;
pid /run/nginx.pid;
worker_rlimit_nofile 16384;
events {
worker_connections 10000;
# multi_accept on;
}
http {
proxy_connect_timeout 300s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
send_timeout 600s;
#############