Мақала анықтамалығы
Сіз жұмыста кенеттен Nginx процессорын пайдаланудың күрт өскенін байқадыңыз ба? Нақтырақ айтсақ, Nginx-тің бірнеше жұмысшы процестері мен процестерге қараған сайын ессіз сияқты ресурстарды тұтынады.
Мына көріністі көргенде басың қызып кетеді де: «Құдайым-ай, сервер жарылып кете ме?» деп айқайлай алмайсың. , бірақ Nginx Сізге жан-жақты оңтайландыру қажет!
Шамадан тыс Nginx жүктемесінің себептерін талдау

Біріншіден, біз анықтауымыз керек,Неліктен Nginx кенеттен «шаршады»?Мәселенің көптеген себептері бар, қорықпаңыз, төменде бірге білейік.
1. Негізсіз конфигурация
Nginx конфигурация файлында ең маңызды нүкте болып табылады worker_processes. Бұл параметр Nginx іске қосқан процестердің санын анықтайды.
- Тым аз жұмыс процестерін конфигурацияласаңыз, процессордың жүктемесі тым көп конфигурацияланса, жад жеткіліксіз болады;
- Сіз баланс нүктесін табуыңыз керек, мысалы,Worker_processes мәнін CPU ядроларының санынан 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. Жұмысшы_байланыстарын дұрыс орнатыңыз
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 каналымызға қосылыңыз!
Бөлісу және ұнаса лайк! Сіздің бөлісулеріңіз бен лайктарыңыз біздің тұрақты мотивациямыз болып табылады!