וואָס זאָל איך טאָן אויב די Nginx סערווער האט אַ הויך קפּו מאַסע און פּראַסעסינג זכּרון באַניץ?

האָבן איר פּלוצלינג דיסקאַווערד אין אַרבעט אַז Nginx ס קפּו באַניץ איז סקייראַקאַטיד? צו מאַכן ענינים ערגער, Nginx ס קייפל אַרבעט פּראַסעסאַז קאַנסומינג רעסורסן ווי מעשוגע יעדער מאָל איך קוק אין די פּראַסעסאַז.

ווען מען זעהט די סצענע ווערט דיין קאפ הייס, און דו קענסט נישט העלפן צו שרייען: "אוי גאט, וועט דער סערווער זיך אויפרייסן, דאס מיינט נישט אז דיין סערווער וועט זיין "פארטיק"? אָבער Nginx מיר דאַרפֿן איר צו טאָן אַ פולשטענדיק אַפּטאַמאַזיישאַן!

אַנאַליסיס פון די סיבות פון יבעריק נגינקס מאַסע

וואָס זאָל איך טאָן אויב די Nginx סערווער האט אַ הויך קפּו מאַסע און פּראַסעסינג זכּרון באַניץ?

ערשטער, מיר האָבן צו רעכענען אויס,פארוואס טוט נגינקס פּלוצלינג ווערן "ויסגעמאַטערט"?עס זענען פילע סיבות פֿאַר דעם פּראָבלעם, טאָן ניט זיין דערשראָקן, לאָזן אונדז געפֿינען זיך צוזאַמען אונטן.

1. ונרעאַסאָנאַבלע קאַנפיגיעריישאַן

אין די Nginx קאַנפיגיעריישאַן טעקע, די מערסט וויכטיק פונט איז worker_processes. דער פּאַראַמעטער דיטערמאַנז די נומער פון פּראַסעסאַז סטאַרטעד דורך Nginx.

  • אויב איר קאַנפיגיער צו ווייניק אַרבעט פּראַסעסאַז, די קפּו מאַסע וועט שוועבן אויב איר קאַנפיגיער צו פילע, עס וועט זיין ניט גענוגיק זכּרון.
  • איר מוזן געפֿינען אַ וואָג פונט, למשל,שטעלן וואָרקער_פּראָסעססעס צו 1 צו 2 מאל די נומער פון קפּו קאָרעס.
  • אויב איר האָבן 4 קאָרעס, פּרובירן worker_processes 4 אָדער שטעלן עס גלייַך צו auto.

2. וויזיץ סערדזש

מאל, די מאַסע פון ​​Nginx פּלוצלינג ספּייקס נישט ווייַל איר האָט געמאכט אַ גרייַז, אָבער ווייַל די נומער פון וויזיץ איז צו הויך.העכסט קאַנקעראַנט אַקסעס ריקוועס וועט פאַרשאַפן די Nginx אַרבעטער פּראָצעס צו זיין אָוווערוועלמד., יעדער פּראָצעס איז אָוווערלאָודיד, און די קפּו און זכּרון זענען אויך פול. אין דעם צייט, איר קען דאַרפֿן צו פֿאַרבעסערן סערווער רעסורסן, אַזאַ ווי ינקריסינג די נומער פון קפּו קאָרעס אָדער ינקריסינג זכּרון. דאָך, דאָס איז אויך אַ דערמאָנונג: טאָן ניט פאַרגעסן צו באַטראַכטן CDN אָפלאָודינג אָדער מאַסע באַלאַנסינג.

3. געפּלאָנטערט בייזע אנפאלן

זיין "זייער פאָלקס" אויף דער אינטערנעץ איז ניט שטענדיק אַ גוטע זאַך צו זיין אַטאַק אין קיין צייט. אויב איר געפֿינען אַז די קפּו באַניץ איז אַבנאָרמאַלי הויך און די מקור פון די בעטן IP איז סאַספּישאַס, עס איז זייער מסתּמא אַז דיין וועבזייטל ליידן פון אַ 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. ריכטיק שטעלן 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. אָפּטימיזירן טעקע דיסקריפּטאָר לימאַץ

דורך פעליקייַט,לינוקס די סיסטעם האט אַ שיעור אויף די נומער פון טעקע דיסקריפּטאָרס וואָס קענען זיין עפן דורך יעדער פּראָצעס.

אויב 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_processesworker_connectionsדורך געבן קאַטשינג, אָפּטימיזינג טיימאַוץ און טעקע דיסקריפּטאָרס, איר קענען באטייטיק רעדוצירן די מאַסע דרוק אויף Nginx.

Nginx איז אַ שטאַרק וועב סערווער וואָס, ווען רעכט אָפּטימיזעד, קענען צושטעלן ויסגעצייכנט פאָרשטעלונג פֿאַר דיין וועבזייטל.

געדענקט, קיין שאלות קענען זיין געענטפערט דורך科学מעטהאָדס צו סאָלווע עס, אָפּטימיזינג סערווער פאָרשטעלונג איז קיין ויסנעם.

מאָניטאָר און סטרויערן אין אַ בייַצייַטיק שטייגער, איז דער שליסל צו האַלטן Nginx פליסנדיק יפישאַנטלי. אויב איר קענען בעל די טעקניקס, דיין וועבזייטל וועט זיין זיכער אפילו אין די פּנים פון הויך פאַרקער אָדער בייזע אנפאלן.

איך האָפֿן אַז דער אַרטיקל האט ינספּייערד איר, ייַלן און אַפּטאַמייז דיין Nginx!

Hope Chen Weiliang בלאָג ( https://www.chenweiliang.com/ ) שערד "נגינקס סערווער קפּו מאַסע, פּראָצעס זכּרון באַניץ איז הויך, וואָס זאָל איך טאָן?" 》, נוציק צו איר.

ברוכים הבאים צו טיילן דעם לינק פון דעם אַרטיקל:https://www.chenweiliang.com/cwl-32093.html

כּדי צו עפֿענען מער פֿאַרבאָרגענע טריקס🔑, ברוכים הבאים זיך אָנצושליסן אין אונדזער טעלעגראַם קאַנאַל!

ייַנטיילן און ווי אויב איר ווי! דיין שאַרעס און לייקס זענען אונדזער מאָוטאַוויישאַן!

 

发表 评论

דיין בליצפּאָסט אַדרעס וועט נישט זיין ארויס. פארלאנגט פעלדער זענען געניצט * פירמע

מעגילע צו Top