ฉันมีการตั้งค่า HAProxy ในโหมด TCP กับไคลเอนต์ / เซิร์ฟเวอร์ / เชื่อมต่อหมดเวลา 120 วินาที
เมื่อฉันโหลดการกำหนดค่าเร็วเกินไปบางครั้งฉันก็จบลงด้วยกระบวนการหลายอย่าง จากการออกแบบสิ่งนี้คาดว่าจะเกิดขึ้นดังนั้นการเชื่อมต่อที่สร้างขึ้นทั้งหมดจะถูกระบายออกไป
ปัญหาของฉันคือพวกเขาไม่เคยยุติแม้ว่าการเชื่อมต่อทั้งหมดจะปิด
ps aux | haproxy
haproxy 12483 0.0 0.1 103748 1084 ? Ss 20:45 0:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf 12405
haproxy 12485 0.0 0.1 103748 1088 ? Ss 20:45 0:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf 12405
haproxy 12487 0.0 0.1 103748 1084 ? Ss 20:45 0:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf 12405
haproxy 25115 0.0 0.1 103748 1084 ? Ss 21:26 0:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf 12488
netstat -pant | grep haproxy
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 25115/haproxy
tcp 0 0 0.0.0.0:1936 0.0.0.0:* LISTEN 25115/haproxy
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 25115/haproxy
ฉันรอนานกว่าการหมดเวลาของยุค 120 ฉันไม่เข้าใจสิ่งที่ถือไว้
lsof ต่อไปนี้สำหรับหนึ่งในกระบวนการเก่าเหล่านั้นแสดงว่ายังมี FD บางอย่างสำหรับ TCP LISTEN
# lsof -p 12483
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
haproxy 12483 haproxy cwd DIR 202,1 4096 2 /
haproxy 12483 haproxy rtd DIR 202,1 4096 2 /
haproxy 12483 haproxy txt REG 202,1 4381869 412355 /usr/local/sbin/haproxy
haproxy 12483 haproxy mem REG 202,1 62864 396140 /lib64/libnss_files-2.17.so
haproxy 12483 haproxy mem REG 202,1 126288 396526 /usr/lib64/libselinux.so.1
haproxy 12483 haproxy mem REG 202,1 141760 396148 /lib64/libpthread-2.17.so
haproxy 12483 haproxy mem REG 202,1 89312 396076 /lib64/libgcc_s-4.8.2-20140120.so.1
haproxy 12483 haproxy mem REG 202,1 98720 396150 /lib64/libresolv-2.17.so
haproxy 12483 haproxy mem REG 202,1 13224 396957 /lib64/libkeyutils.so.1.5
haproxy 12483 haproxy mem REG 202,1 43768 396966 /lib64/libkrb5support.so.0.1
haproxy 12483 haproxy mem REG 202,1 19512 396128 /lib64/libdl-2.17.so
haproxy 12483 haproxy mem REG 202,1 170784 396962 /lib64/libk5crypto.so.3.1
haproxy 12483 haproxy mem REG 202,1 12744 396594 /usr/lib64/libcom_err.so.2.1
haproxy 12483 haproxy mem REG 202,1 937952 396964 /lib64/libkrb5.so.3.3
haproxy 12483 haproxy mem REG 202,1 273672 396958 /lib64/libgssapi_krb5.so.2.2
haproxy 12483 haproxy mem REG 202,1 486512 396073 /lib64/libfreebl3.so
haproxy 12483 haproxy mem REG 202,1 2000552 396122 /lib64/libc-2.17.so
haproxy 12483 haproxy mem REG 202,1 1967496 400756 /lib64/libcrypto.so.1.0.1j
haproxy 12483 haproxy mem REG 202,1 445424 400761 /usr/lib64/libssl.so.1.0.1j
haproxy 12483 haproxy mem REG 202,1 88568 396529 /lib64/libz.so.1.2.7
haproxy 12483 haproxy mem REG 202,1 36856 396126 /lib64/libcrypt-2.17.so
haproxy 12483 haproxy mem REG 202,1 152376 396115 /lib64/ld-2.17.so
haproxy 12483 haproxy 0u 0000 0,9 0 5420 anon_inode
haproxy 12483 haproxy 4u IPv4 1435667 0t0 TCP *:http (LISTEN)
haproxy 12483 haproxy 5u IPv4 1435668 0t0 TCP *:https (LISTEN)
haproxy 12483 haproxy 6u IPv4 1435673 0t0 TCP *:jetcmeserver (LISTEN)
strace -p 13483
อาจช่วยในการแสดงสิ่งที่กระบวนการที่จะทำ (หรือบล็อก ฯลฯ )
gettimeofday({1417009573, 706535}, NULL) = 0 gettimeofday({1417009573, 706629}, NULL) = 0 epoll_wait(0, {}, 200, 1000)
-sf
ในการกำหนดค่าของคุณคืออะไร? กระบวนการที่ใหม่กว่านั้นชี้ไปที่-sf 12488
(และ12488
ไม่ได้ทำงานอยู่) แต่ดูเหมือนว่า12483
เป็นกระบวนการที่ต้องใช้เพื่อให้ผู้ฟังประสบความสำเร็จ