Sobes.tech
Middle+

Čo urobíte, ak Nginx nezvládne veľké množstvo spojení (viac ako 1024)?

sobes.tech AI

Odpoveď od AI

Ég mun skoða Nginx stillingarnar: worker_processes, worker_connections, multi_accept, use (epoll/kqueue) og keepalive_requests, keepalive_timeout. Ég mun auka þau ef nauðsyn krefur.

Ég mun stjórna kerfisheimildum: ulimit -n fyrir Nginx ferlið. Ég mun auka þau í viðeigandi gildi.

Ég mun hagræða Linux kjarna stillingum tengdum netkerfi: net.core.somaxconn, net.ipv4.tcp_tw_reuse, net.ipv4.tcp_fin_timeout.

Ég mun greina Nginx skráningargögn (error_log, access_log) fyrir villur eða óeðlilegar aðstæður.

Ég mun nota eftirlitsverkfæri (nginx-status, top, vmstat, iostat, netdata, Prometheus/Grafana) til að greina þröskulda (CPU, minni, diskur, net).

Ég mun íhuga möguleikann á að nota öflugri búnað eða stækka (bæta við fleiri Nginx instönsum á bak við álagstól).

Ég mun skoða bakendaþjóna: vandamálið gæti verið ekki í Nginx, heldur í forritunum sem vinna úr beiðnum.

# Auka fjölda worker ferla
worker_processes auto;

# Auka fjölda tenginga á hvern worker
events {
    worker_connections 65536;
    multi_accept on;
    use epoll; # Fyrir Linux
}

http {
    # Keep-alive stillingar
    keepalive_requests 10000;
    keepalive_timeout 65;

    # ... aðrar stillingar
}
# Athuga núverandi takmörk fyrir notanda Nginx
su - nginx -c 'ulimit -n'

# Auka takmörk í skrá /etc/security/limits.conf
# nginx - nofile 65536
# nginx - nproc 65536

# Endurræsa SSH sessjón eða þjóninn til að virkja limits.conf

# Athuga og breyta kjarna stillingum
# Hver breyting krefst keyrslu sysctl -p
# sysctl net.core.somaxconn
# sysctl -w net.core.somaxconn=65536

# sysctl net.ipv4.tcp_tw_reuse
# sysctl -w net.ipv4.tcp_tw_reuse=1

# sysctl net.ipv4.tcp_fin_timeout
# sysctl -w net.ipv4.tcp_fin_timeout=30