ฉันได้รวบรวม haproxy เพื่อใช้ตัวกรอง LUA พิเศษ และตอนนี้ haproxy ทำงานจนถึงขีดจำกัดการเปิดไฟล์สูงสุด มันวิ่งอย่างมีความสุขและจากนั้นบันทึกก็แสดงข้อความต่อไปนี้:
Proxy www-out ถึงขีดจำกัด FD ของกระบวนการ (maxsock=4026) โปรดตรวจสอบ 'ulimit-n' และเริ่มต้นใหม่
ฉันได้ลองเพิ่มขีด จำกัด นี้โดยสร้างไฟล์ขีด จำกัด บริการสำหรับ haproxy
แมว /etc/systemd/system/haproxy.service.d/limits.conf
[บริการ]
LimitNOFILE=600000
เมื่อเริ่มต้น haproxy ไฟล์จำกัดจะถูกโหลด
â haproxy.service - โหลดบาลานซ์ HAProxy
โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/haproxy.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
ดรอปอิน: /etc/systemd/system/haproxy.service.d
ââlimits.conf
ใช้งานอยู่: ใช้งานอยู่ (ทำงาน) ตั้งแต่วันพุธที่ 2021-08-11 15:07:08 CEST; 8 วินาทีที่แล้ว
เอกสาร: man:haproxy(1)
ไฟล์:/usr/share/doc/haproxy/configuration.txt.gz
กระบวนการ: 25865 ExecStartPre=/usr/local/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS (รหัส=ออก สถานะ=0/สำเร็จ)
PID หลัก: 25867 (haproxy)
อย่างไรก็ตามดูเหมือนว่าจะเปลี่ยนเฉพาะ hard limit ไม่ใช่ soft limit ของ haproxy โดยดูที่กระบวนการ
ราก 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
แฮพร็อกซี 25869 0.1 0.0 1173536 12860 ? 15:07 น. 0:00 \_ /usr/local/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
test@test ~> cat /proc/25867/จำกัด | เกรป "เปิด"
เปิดไฟล์สูงสุด 4168 600000 ไฟล์
ในที่สุดก็มีข้อมูลเกี่ยวกับ haproxy
ตัวเลือกการสร้าง:
เป้าหมาย = ลินุกซ์-glibc
CPU = ทั่วไป
ซีซี = ซีซี
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 -จำกัด -Wshift-negative-value -Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference
ตัวเลือก = USE_PCRE=1 USE_OPENSSL=1 USE_LUA=1 USE_SYSTEMD=1
ดีบัก =
รายการคุณลักษณะ : +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
การตั้งค่าเริ่มต้น:
bufsize = 16384, maxrewrite = 1024, maxpollevents = 200
สร้างด้วยการรองรับมัลติเธรด (MAX_THREADS=64, default=36)
สร้างด้วยเวอร์ชัน OpenSSL : OpenSSL 1.1.1 11 ก.ย. 2561
ทำงานบนเวอร์ชัน OpenSSL : OpenSSL 1.1.1 11 ก.ย. 2561
ไลบรารี OpenSSL รองรับส่วนขยาย TLS : ใช่
ไลบรารี OpenSSL รองรับ SNI : ใช่
รองรับไลบรารี OpenSSL: TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
สร้างด้วยเวอร์ชัน Lua : Lua 5.4.3
สร้างด้วยการสนับสนุนเครือข่ายเนมสเปซ
สร้างด้วย libslz สำหรับการบีบอัดแบบไร้สถานะ
รองรับอัลกอริธึมการบีบอัด: identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
สร้างด้วยการสนับสนุนพร็อกซีแบบโปร่งใสโดยใช้: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
สร้างด้วยเวอร์ชัน PCRE : 8.39 2016-06-14
ทำงานบนเวอร์ชัน PCRE : 8.39 2016-06-14
ไลบรารี PCRE รองรับ JIT : ไม่ (ไม่ได้ตั้งค่า USE_PCRE_JIT)
รองรับรหัสผ่านที่เข้ารหัสผ่าน crypt(3): ใช่
สร้างด้วยคอมไพเลอร์ gcc เวอร์ชัน 7.5.0