Nginx சேவையகத்தில் அதிக CPU சுமை மற்றும் செயலாக்க நினைவக பயன்பாடு இருந்தால் நான் என்ன செய்ய வேண்டும்?

Nginx இன் CPU பயன்பாடு உயர்ந்துள்ளது என்பதை நீங்கள் திடீரென்று வேலையில் கண்டுபிடித்தீர்களா? விஷயங்களை மோசமாக்குவதற்கு, Nginx இன் பல பணியாளர் செயல்முறைகள் நான் செயல்முறைகளைப் பார்க்கும் ஒவ்வொரு முறையும் பைத்தியம் போல் ஆதாரங்களைப் பயன்படுத்துகின்றன.

இந்தக் காட்சியைப் பார்த்து, உங்கள் தலை சூடாகிறது, மேலும் நீங்கள் கத்தாமல் இருக்க முடியாது: "கடவுளே, சர்வர் வெடிக்கப் போகிறதா?" உங்கள் சர்வர் "முடிந்துவிடும்" என்று அர்த்தமல்ல. ஆனால் Nginx நீங்கள் ஒரு விரிவான தேர்வுமுறையை செய்ய வேண்டும்!

அதிகப்படியான Nginx சுமைக்கான காரணங்களின் பகுப்பாய்வு

Nginx சேவையகத்தில் அதிக CPU சுமை மற்றும் செயலாக்க நினைவக பயன்பாடு இருந்தால் நான் என்ன செய்ய வேண்டும்?

முதலில், நாம் கண்டுபிடிக்க வேண்டும்,Nginx ஏன் திடீரென்று "சோர்வடைகிறது"?பிரச்சனைக்கு பல காரணங்கள் உள்ளன, பயப்பட வேண்டாம், கீழே ஒன்றாகக் கண்டுபிடிப்போம்.

1. நியாயமற்ற கட்டமைப்பு

Nginx உள்ளமைவு கோப்பில், மிக முக்கியமான விஷயம் worker_processes. இந்த அளவுரு Nginx ஆல் தொடங்கப்பட்ட செயல்முறைகளின் எண்ணிக்கையை தீர்மானிக்கிறது.

  • நீங்கள் மிகக் குறைவான பணியாளர் செயல்முறைகளை உள்ளமைத்தால், CPU சுமை உயரும்;
  • நீங்கள் ஒரு சமநிலை புள்ளியைக் கண்டுபிடிக்க வேண்டும், எடுத்துக்காட்டாக,CPU கோர்களின் எண்ணிக்கையை விட worker_processes 1 முதல் 2 மடங்கு வரை அமைக்கவும்.
  • உங்களிடம் 4 கோர்கள் இருந்தால் முயற்சிக்கவும் worker_processes 4 அல்லது நேரடியாக அமைக்கவும் auto.

2. வருகைகள் பெருகும்

சில நேரங்களில், Nginx இன் சுமை திடீரென்று அதிகரிக்கிறது நீங்கள் தவறு செய்ததால் அல்ல, ஆனால் வருகைகளின் எண்ணிக்கை அதிகமாக இருப்பதால்.அதிக ஒரே நேரத்தில் அணுகல் கோரிக்கைகள் Nginx பணியாளரின் செயல்முறையை அதிகமாகச் செய்யும்., ஒவ்வொரு செயல்முறையும் ஓவர்லோட் ஆகும், மேலும் CPU மற்றும் நினைவகமும் நிரம்பியுள்ளது. இந்த நேரத்தில், CPU கோர்களின் எண்ணிக்கையை அதிகரிப்பது அல்லது நினைவகத்தை அதிகரிப்பது போன்ற சேவையக வளங்களை நீங்கள் மேம்படுத்த வேண்டியிருக்கலாம். நிச்சயமாக, இதுவும் ஒரு நினைவூட்டலாகும்: CDN ஆஃப்லோடிங் அல்லது லோட் பேலன்சிங் ஆகியவற்றைக் கருத்தில் கொள்ள மறக்காதீர்கள்.

3. தீங்கிழைக்கும் தாக்குதல்களை எதிர்கொண்டது

இணையத்தில் "மிகவும் பிரபலமாக" இருப்பது எப்போதும் ஒரு நல்ல விஷயம் அல்ல, எந்த நேரத்திலும் தீங்கிழைக்கும் தாக்குதல்கள் உங்களை குறிவைக்கலாம். CPU பயன்பாடு வழக்கத்திற்கு மாறாக அதிகமாக இருப்பதையும், கோரிக்கை ஐபியின் ஆதாரம் சந்தேகத்திற்குரியதாக இருப்பதையும் நீங்கள் கண்டால், உங்கள் இணையதளம் DDoS தாக்குதலால் பாதிக்கப்பட்டிருக்கலாம். இந்த நேரத்தில்,நீங்கள் உடனடியாக ஃபயர்வாலைப் பயன்படுத்த வேண்டும் அல்லது அணுகல் அதிர்வெண்ணைக் கட்டுப்படுத்த வேண்டும், Nginx உடன் வரும் தற்போதைய கட்டுப்படுத்தும் தொகுதியைப் பயன்படுத்துதல் அல்லது IP தடுப்புப்பட்டியலை அமைப்பது போன்றவை.

Nginx செயல்முறையின் உயர் நினைவக பயன்பாட்டின் சிக்கலை எவ்வாறு தீர்ப்பது?

எனவே கேள்வி என்னவென்றால், Nginx தொழிலாளர் செயல்முறை ஏன் பல ஆதாரங்களை எடுத்துக்கொள்கிறது? நாம் உள்ளமைவுடன் தொடங்கி படிப்படியாக அதை மேம்படுத்த வேண்டும்.

கட்டமைப்பு முறை

  1. Nginx உள்ளமைவு கோப்பைத் திறக்கவும்: வழக்கமாக, Nginx இன் முக்கிய கட்டமைப்பு கோப்பு அமைந்துள்ளது /etc/nginx/nginx.conf.

  2. அமைக்கவும் worker_processes: கட்டமைப்பு கோப்பில் காணப்படுகிறது events தொகுதிகள், அமைப்புகள் worker_processes மதிப்பு. இல்லை என்றால் events தொகுதி, நீங்கள் ஒன்றை உருவாக்க வேண்டும்.

    nginx
    events {
    worker_connections 1024;
    use epoll;  # 或者适用于操作系统的其他事件模型
    }

1. பணியாளர்_இணைப்புகளை சரியாக அமைக்கவும்

nginx worker_connections ஒவ்வொரு தொழிலாளி செயல்முறையும் கையாளக்கூடிய அதிகபட்ச இணைப்புகளின் எண்ணிக்கையை அளவுரு தீர்மானிக்கிறது. இது மிகவும் சிறியதாக இருந்தால், அது மிகவும் பெரியதாக இருந்தால், அது பல ஆதாரங்களை உட்கொள்ளலாம்.

சரியான மதிப்பை எவ்வாறு கணக்கிடுவது?

உங்களிடம் 4-கோர் CPU மற்றும் 16 ஜிபி ரேம் இருப்பதாகக் கருதினால், பாதுகாப்பான தொடக்கப் புள்ளி worker_connections 4096.

ஆனால் உங்கள் இணையதளத்தில் அதிக ட்ராஃபிக் இருந்தால், ஒவ்வொரு செயல்முறையும் போதுமான கோரிக்கைகளைக் கையாள முடியும் என்பதை உறுதிப்படுத்த, இந்த மதிப்பை 8192 ஆக அதிகரிக்கவும்.

events {
    worker_connections 8192;
}

இந்த வழியில், Nginx இன் செயலாக்க சக்தி பெரிதும் மேம்படுத்தப்படும்.

2. Keepalive_timeout ஐ சரிசெய்யவும்

கோரிக்கைகளை கையாள Nginx இன் மற்றொரு முக்கிய அளவுரு keepalive_timeout.

சேவையகத்துடன் கிளையன்ட் இணைப்பை எவ்வளவு காலம் பராமரிக்கலாம் என்பதை இந்த அமைப்பு தீர்மானிக்கிறது.

அதிக நேரம் அமைத்தால், அது பல இணைப்பு ஆதாரங்களை ஆக்கிரமிக்கும்..

நீங்கள் முயற்சி செய்யலாம் keepalive_timeout இணைப்பைப் பராமரிக்க மற்றும் ஆதாரங்களை வெளியிட 15 வினாடிகளுக்கு அமைக்கவும்.

keepalive_timeout 15;

3. கோப்பு விளக்க வரம்புகளை மேம்படுத்தவும்

இயல்பாக,லினக்ஸ் ஒவ்வொரு செயல்முறையிலும் திறக்கக்கூடிய கோப்பு விளக்கங்களின் எண்ணிக்கையில் கணினிக்கு வரம்பு உள்ளது.

Nginx அதிக எண்ணிக்கையிலான கோப்புகளை (நிலையான ஆதாரங்கள் போன்றவை) செயலாக்க வேண்டும் என்றால், நீங்கள் Nginx இலிருந்து ஒரு பிழையைக் காணலாம், "too many open files".

நீங்கள் தேர்ச்சி பெறலாம் worker_rlimit_nofile கோப்பு விளக்க வரம்பை அதிகரிக்கவும், எடுத்துக்காட்டாக 65535 என அமைக்கப்பட்டது.

worker_rlimit_nofile 65535;

4. கேச்சிங் மற்றும் ஜிஜிப்பை இயக்கவும்

கேச்சிங் மற்றும் கம்ப்ரஷன் ஆகியவை இணையதள செயல்திறன் மேம்படுத்துதலுக்கான இரண்டு விசைகள்.

Nginx இன் கேச்சிங் செயல்பாட்டை இயக்குவதன் மூலம், நிலையான ஆதாரங்கள் (படங்கள் மற்றும் JS கோப்புகள் போன்றவை) நினைவகத்தில் தற்காலிகமாக சேமிக்கப்படும், இதனால் சர்வரில் சுமை வெகுவாகக் குறைகிறது.

கூடுதலாக, gzip சுருக்க செயல்பாட்டை இயக்குவதன் மூலம் அனுப்பப்படும் தரவின் அளவைக் குறைக்கலாம் மற்றும் வலைத்தள வேகத்தை மேம்படுத்தலாம்.

gzip on;
gzip_types text/plain application/javascript;

5. Nginx வள பயன்பாட்டை பகுப்பாய்வு செய்யவும்

இறுதியாக, நீங்கள் மேலே உள்ள அனைத்து மேம்படுத்தல்களையும் முடித்திருந்தாலும், Nginx இன்னும் நிறைய CPU ஐ எடுத்துக் கொண்டால், ஆழமான பகுப்பாய்விற்கு நீங்கள் சில கருவிகளைப் பயன்படுத்த வேண்டியிருக்கும்.

使用 tophtop ஒரு செயல்முறையின் நிகழ்நேர வள நுகர்வுகளைப் பார்க்கவும், வழங்கியவர் strace கணினி அழைப்புகளைக் கண்டறியவும் அல்லது பயன்படுத்தவும் nmon செயல்திறன் அறிக்கைகளை உருவாக்கவும். Nginx இன் உண்மையான செயல்பாட்டை விரிவாக பகுப்பாய்வு செய்வதன் மூலம் மட்டுமே நாம் இன்னும் துல்லியமான டியூனிங்கைச் செய்ய முடியும்.

总结

Nginx இன் CPU பயன்பாடு அதிகரிக்கும் போது பீதி அடைய வேண்டாம். இது தவறான உள்ளமைவு அல்லது அதிகப்படியான ட்ராஃபிக் காரணமாக இருக்கலாம்.

நியாயமான சரிசெய்தல் மூலம் worker_processesworker_connectionsகேச்சிங், டைம்அவுட்களை மேம்படுத்துதல் மற்றும் கோப்பு விளக்கங்களை இயக்குவதன் மூலம், நீங்கள் Nginx இல் சுமை அழுத்தத்தை கணிசமாகக் குறைக்கலாம்.

Nginx ஒரு சக்திவாய்ந்த வலை சேவையகமாகும், இது சரியாக மேம்படுத்தப்பட்டால், உங்கள் வலைத்தளத்திற்கு சிறந்த செயல்திறனை வழங்க முடியும்.

எந்த கேள்விகளுக்கும் பதிலளிக்க முடியும் என்பதை நினைவில் கொள்ளுங்கள்அறிவியல்அதை தீர்க்கும் முறைகள், சர்வர் செயல்திறனை மேம்படுத்துவது விதிவிலக்கல்ல.

சரியான நேரத்தில் கண்காணித்து சரிசெய்யவும், Nginxஐ திறமையாக இயங்க வைப்பதற்கான திறவுகோலாகும். இந்த நுட்பங்களை நீங்கள் தேர்ச்சி பெற்றால், அதிக போக்குவரத்து அல்லது தீங்கிழைக்கும் தாக்குதல்களை எதிர்கொண்டாலும் உங்கள் இணையதளம் பாதுகாப்பாக இருக்கும்.

இந்தக் கட்டுரை உங்களுக்கு உத்வேகம் அளித்துள்ளது என்று நம்புகிறேன், விரைந்து உங்கள் Nginxஐ மேம்படுத்துங்கள்!

ஹோப் சென் வெலியாங் வலைப்பதிவு ( https://www.chenweiliang.com/ ) பகிரப்பட்டது "Nginx சர்வர் CPU சுமை மற்றும் செயல்முறை நினைவக பயன்பாடு அதிகமாக இருந்தால் நான் என்ன செய்ய வேண்டும்?" 》, உங்களுக்கு உதவியாக இருக்கும்.

இந்தக் கட்டுரையின் இணைப்பைப் பகிர வரவேற்கிறோம்:https://www.chenweiliang.com/cwl-32093.html

மேலும் மறைக்கப்பட்ட தந்திரங்களைத் திறக்க🔑, எங்கள் டெலிகிராம் சேனலில் சேர வரவேற்கிறோம்!

பிடித்திருந்தால் லைக் செய்து பகிருங்கள்! உங்களின் ஷேர்களும் லைக்குகளும் எங்களின் தொடர் உந்துதலாகும்!

 

发表 评论

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்படாது. தேவையான புலங்கள் பயன்படுத்தப்படுகின்றன * லேபிள்

டாப் உருட்டு