Каталог артыкулаў
Вы раптам выявілі на працы, што загрузка працэсара Nginx рэзка ўзрасла? Што яшчэ горш, некалькі працоўных працэсаў Nginx спажываюць рэсурсы як шалёныя кожны раз, калі я гляджу на працэсы.
Убачыўшы гэтую сцэну, у вас становіцца горача ў галаве, і вы не можаце не крычаць: «Божа мой, сервер выбухне, не хвалюйцеся, гэта не значыць, што ваш сервер будзе «скончаны», але Nginx Нам трэба, каб вы зрабілі поўную аптымізацыю!
Аналіз прычын празмернай нагрузкі на Nginx

Спачатку мы павінны высветліць,Чаму Nginx раптам "вычарпаўся"?Прычын праблемы шмат, не бойцеся, давайце разбярэмся разам ніжэй.
1. Неразумная канфігурацыя
У канфігурацыйным файле Nginx самым важным з'яўляецца worker_processes. Гэты параметр вызначае колькасць працэсаў, запушчаных Nginx.
- Калі вы наладзіце занадта мала працоўных працэсаў, нагрузка на працэсар вырасце; калі вы наладзіце занадта шмат, будзе недастаткова памяці.
- Вы павінны знайсці кропку балансу, напрыклад,Усталюйце worker_processes у 1-2 разы больш, чым колькасць ядраў працэсара.
- Калі ў вас 4 ядра, паспрабуйце
worker_processes 4Або ўсталюйце яго непасрэдна наauto.
2. Усплёск наведванняў
Часам нагрузка на Nginx рэзка ўзрастае не таму, што вы зрабілі памылку, а таму, што колькасць наведванняў занадта вялікая.Вельмі адначасовыя запыты доступу прывядуць да перагрузкі працоўнага працэсу Nginx., кожны працэс перагружаны, працэсар і памяць таксама запоўненыя. У гэты час вам можа спатрэбіцца палепшыць рэсурсы сервера, напрыклад павялічыць колькасць ядраў працэсара або павялічыць памяць. Вядома, гэта таксама напамін: не забудзьцеся разгледзець разгрузку CDN або балансаванне нагрузкі.
3. Сутыкнуліся са шкоднаснымі атакамі
Быць «вельмі папулярным» у Інтэрнеце - гэта не заўсёды добра. Калі вы выявіце, што загрузка працэсара ненармальна высокая і крыніца IP-адрасоў запыту падазроная, вельмі верагодна, што ваш вэб-сайт пакутуе ад DDoS-атакі. У гэты час,Вам неабходна неадкладна разгарнуць брандмаўэр або абмежаваць частату доступу, напрыклад, выкарыстанне модуля абмежавання току, які пастаўляецца з Nginx, або стварэнне чорнага спісу IP.
Як вырашыць праблему высокага выкарыстання памяці працэсам Nginx?
Такім чынам, пытанне ў тым, чаму працоўны працэс Nginx займае так шмат рэсурсаў? Мы павінны пачаць з канфігурацыі і аптымізаваць яе крок за крокам.
Спосаб канфігурацыі
Адкрыйце файл канфігурацыі Nginx: Звычайна асноўны файл канфігурацыі Nginx знаходзіцца па адрасе
/etc/nginx/nginx.conf.Усталяваць
worker_processes: знойдзены ў канфігурацыйным файлеeventsблокі, наладкіworker_processesзначэнне. калі неeventsблок, вам трэба яго стварыць.nginx events { worker_connections 1024; use epoll; # 或者适用于操作系统的其他事件模型 }
1. Правільна ўсталяваць worker_connections
nginx worker_connections Параметр вызначае максімальную колькасць злучэнняў, якія можа апрацоўваць кожны працоўны працэс. Калі ён занадта малы, гэта паўплывае на прадукцыйнасць паралелізму; калі ён занадта вялікі, ён можа спажываць занадта шмат рэсурсаў.
Як разлічыць адпаведнае значэнне?
Пры ўмове, што ў вас ёсць 4-ядзерны працэсар і 16 ГБ аператыўнай памяці, бяспечнай адпраўной кропкай з'яўляецца worker_connections 4096.
Але калі ваш вэб-сайт мае вялікі трафік, падумайце аб павелічэнні гэтага значэння да 8192, каб пераканацца, што кожны працэс можа апрацоўваць дастатковую колькасць запытаў.
events {
worker_connections 8192;
}
Такім чынам, вылічальная магутнасць Nginx будзе значна палепшана.
2. Адрэгулюйце keepalive_timeout
Яшчэ адзін ключавы параметр для апрацоўкі запытаў Nginx keepalive_timeout.
Гэты параметр вызначае, як доўга можна падтрымліваць злучэнне кліента з серверам.
Калі ён усталяваны занадта доўга, ён будзе займаць занадта шмат рэсурсаў злучэння..
Вы можаце паспрабаваць keepalive_timeout Усталюйце 15 секунд для падтрымання злучэння і вызвалення рэсурсаў.
keepalive_timeout 15;
3. Аптымізацыя абмежаванняў дэскрыптараў файлаў
Па змаўчанніLinux Сістэма мае абмежаванне на колькасць дэскрыптараў файлаў, якія могуць быць адкрыты кожным працэсам.
Калі Nginx неабходна апрацаваць вялікую колькасць файлаў (напрыклад, статычных рэсурсаў), вы можаце ўбачыць памылку ад Nginx з запытам "too many open files".
Можна прайсці worker_rlimit_nofile Павялічыць ліміт дэскрыптара файла, напрыклад, усталяваць 65535.
worker_rlimit_nofile 65535;
4. Уключыць кэшаванне і gzip
Кэшаванне і сціск - два ключы да аптымізацыі прадукцыйнасці сайта.
Уключыўшы функцыю кэшавання Nginx, статычныя рэсурсы (напрыклад, выявы і файлы JS) можна кэшаваць у памяці, тым самым значна зніжаючы нагрузку на сервер.
Акрамя таго, уключэнне функцыі сціску gzip можа паменшыць аб'ём перадаемых даных і павысіць хуткасць вэб-сайта.
gzip on;
gzip_types text/plain application/javascript;
5. Аналіз выкарыстання рэсурсаў Nginx
Нарэшце, калі вы выканалі ўсе вышэйпералічаныя аптымізацыі, але Nginx усё яшчэ займае шмат працэсара, вам можа спатрэбіцца выкарыстоўваць некаторыя інструменты для глыбокага аналізу.
使用 top Або htop Праглядзіце спажыванне рэсурсаў працэсам у рэжыме рэальнага часу,пас strace Адсочванне сістэмных выклікаў або выкарыстанне nmon Стварэнне справаздач аб эфектыўнасці. Толькі ўсебакова прааналізаваўшы фактычную працу Nginx, мы можам выканаць больш дакладную наладу.
总结
Не панікуйце, калі загрузка працэсара Nginx падскочыць. Гэта можа быць выклікана няправільнай канфігурацыяй або празмерным трафікам.
праз разумныя карэкціроўкі worker_processes 和 worker_connectionsУключыўшы кэшаванне, аптымізуючы тайм-аўты і дэскрыптары файлаў, вы можаце значна знізіць нагрузку на Nginx.
Nginx - гэта магутны вэб-сервер, які пры правільнай аптымізацыі можа забяспечыць выдатную прадукцыйнасць вашага сайта.
Памятайце, на любыя пытанні можна адказацьнавукаметады яе вырашэння, аптымізацыя прадукцыйнасці сервера не з'яўляецца выключэннем.
Своечасова кантраляваць і карэктаваць, з'яўляецца ключом да падтрымання эфектыўнай працы Nginx. Калі вы зможаце асвоіць гэтыя метады, ваш вэб-сайт будзе ў бяспецы нават ва ўмовах высокага трафіку або шкоднасных нападаў.
Спадзяюся, гэты артыкул натхніў вас, паспяшайцеся аптымізаваць свой Nginx!
Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ ) падзяліўся "Што мне рабіць, калі нагрузка на працэсар сервера Nginx і выкарыстанне памяці працэсу высокія?" 》, карысна для вас.
Запрашаем падзяліцца спасылкай на гэты артыкул:https://www.chenweiliang.com/cwl-32093.html
Каб адкрыць больш схаваных хітрасцяў🔑, далучайцеся да нашага канала ў Telegram!
Падзяліцеся і пастаўце лайкі, калі вам гэта падабаецца! Вашы акцыі і лайкі - наша пастаянная матывацыя!