हम काफी समय से FreeBSD पर XBT Tracker (XBTT) का उपयोग कर रहे हैं। अब हमारे पास लगभग 500k + सहकर्मी हैं, और वे तेजी से बढ़ रहे हैं। और हमारे पास 700 सेकंड का एक घोषणा अंतराल है जो बहुत कम है।
1. एक्सबीटी ट्रैकर के लिए एकमात्र अनुकूलन मैंने लिनक्स में सुना है:
#Backlog
net.core.netdev_max_backlog = 4096
net.core.somaxconn = 4096
# In case you use listen_check
net.ipv4.ip_local_port_range="1024 65535"
net.ipv4.tcp_syncookies = 1
#Timewait sockets (this can negatively impact clients under NAT)
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
#Firewall conntrack
net.ipv4.netfilter.ip_conntrack_max = 1048576
net.nf_conntrack_max = 1048576
खोली गई फ़ाइलों की अधिकतम संख्या बढ़ाना न भूलें:
ulimit -n 1000000
और में परिवर्तन सहेजें limits.conf
2. हमारे XBT ट्रैकर निम्नलिखित पैच का उपयोग करता है: सुनो कतार लेन वृद्धि
3. यह विन्यास रेखा सहायक हो सकती है:
listen_check = 0
और हमारे पास बहुत कम है
read_files_interval = 2
write_db_interval = 3
4. MySQL ट्यूनिंग की आवश्यकता है, जैसा कि न्यूनतम आपको बढ़ना चाहिए
max_allowed_packet = 48M
5. इसके अलावा एक साइड नोट के रूप में, लिनक्स पर XBTT एपोल () का उपयोग करता है, जबकि अन्य OSes पर यह चयन () का उपयोग करता है जो उच्च भार के लिए उपयुक्त नहीं है।
पुनश्च। आप जांच कर सकते हैं OpenTracker अगर कुछ भी मदद नहीं करता। लेकिन मैंने इसका परीक्षण नहीं किया।