Mod_fcgid uchun php-cgi jarayonlari sonini qanday cheklash mumkin? Multiprosess Firefox: Sinov davom etmoqda

Php-cgi jarayonlari xotirani eksponent sifatida buzadi va FcgidMaxRequestsPerProcess chegarasi o'tib ketgandan so'ng o'lishni xohlamaydi, shundan so'ng php-cgi faol ravishda hamma narsani almashtirishga kirishadi va tizim "502 Bad Gateway" chiqara boshlaydi.

Kimga php-cgi jarayonlarining sonini cheklashFcgidMaxRequestsPerProcess-ni o'rnatish uchun etarli emas, shundan so'ng jarayonlar bükülmelidir, lekin ular buni har doim ham o'z ixtiyori bilan qilmaydi.

Vaziyat php-cgi jarayonlari paytida juda yaxshi tanish ( bolalar) xotirani yo'q qilish, lekin siz ularni o'ldirishga majbur qila olmaysiz - ular u bilan yashashni xohlashadi! :) Bu bizga erni odamlar bilan haddan tashqari ko'payish muammosini eslatadi - shunday emasmi?;)

Ota-onalar va bolalar o'rtasidagi abadiy nomutanosiblikni php-cgi bolalar sonini va ularning umrini cheklash orqali hal qilish mumkin ( genotsid) va ularning ko'payish faoliyatini boshqaradi ( kontratseptsiya).

Mod_fcgid uchun Php-cgi jarayoniga cheklov

Ehtimol, quyida keltirilgan ko'rsatmalar eng muhim rol o'ynaydi php-cgi jarayonlari sonini cheklash  va aksariyat hollarda bu erda berilgan standart qiymatlar RAM 5-10 Gb dan past bo'lgan serverlar uchun kamchiliklarga ega:

  • FcgidMaxProcesses 1000  - bir vaqtning o'zida faol bo'lishi mumkin bo'lgan jarayonlarning maksimal soni;
  • FcgidMaxProcessesPerClass 100  - bitta sinfdagi jarayonlarning maksimal soni ( segment), ya’ni bir xil o'rash orqali urug'lanishiga ruxsat berilgan jarayonlarning maksimal soni ( o'rash - o'rash);
  • FcgidMinProcessesPerClass 3  - bitta sinfdagi jarayonlarning minimal soni ( segment), ya’ni bitta o'rash orqali boshlangan jarayonlarning minimal soni ( o'rash - o'rash) barcha so'rovlar bajarilgandan so'ng mavjud bo'ladi;
  • FcgidMaxRequestsPerProcess 0  - FastCGI ushbu sonli so'rovlarni bajargandan so'ng "qutida o'ynashi" kerak.

Qaysi php-cgi jarayonlarining soni  eng maqbul bo'ladi? Sizga kerak bo'lgan php-cgi jarayonlarning maqbul sonini aniqlash uchun (pub) Bizning saytimizda ro'yxatdan o'ting! :)(/ pub) (reg) xotira hajmini va PHP uchun ajratilgan xotiraning hajmini hisobga oladi_ php.ini), bu PHP skriptini ishga tushirishda har bir php-cgi jarayoni tomonidan so'rilishi mumkin. Masalan, agar bizda 512 MB bo'lsa, ularning 150-200 qismi OTning o'zi uchun, yana 50-100 ma'lumotlar bazasi serveri, pochta MTA va boshqalar uchun va xotira_limit \u003d 64 bo'lsa, bizning holatlarimizda bizning 200-250 MB Operativ xotira, juda ko'p zarar ko'rmasdan, biz bir vaqtning o'zida 3-4 php-cgi jarayonini amalga oshira olamiz. (/ Reg)

Php-cgi jarayonining kutish vaqtini sozlash

Php-cgi bolalarini faol ravishda ko'paytirish, tezkor xotirani iste'mol qilish bilan ular deyarli abadiy yashashi mumkin va bu kataklizmlar bilan to'la. Quyida kesishga yordam beradigan GMO ko'rsatmalarining ro'yxati keltirilgan php-cgi jarayonlari uchun umr bo'yi  va o'zlari egallagan resurslarni o'z vaqtida bo'shatish:

  • FcgidIOTimeout 40  - vaqt ( soniyada) mod_fcgid moduli skriptni bajarishga harakat qiladi.
  • FcgidProcessLifeTime 3600  - agar jarayon shu vaqtdan uzoqroq bo'lsa ( soniyalarda), keyin vaqtni FcgidIdleScanInterval direktivasida o'rnatiladigan keyingi jarayonni tekshirish paytida yo'q qilish uchun belgilanishi kerak;
  • FcgidIdleTimeout 300  - agar jarayonlar soni FcgidMinProcessesPerClass-dan oshsa, so'rovni shu vaqt ichida (soniyalarda) qayta ishlamaydigan, keyingi protsedurani ko'rib chiqishda, o'ldirish uchun belgilangan vaqt oralig'i FcgidIdleScanInterval direktivasida belgilanadi;
  • FcgidIdleScanInterval 120  - mod_fcgid moduli FcgidIdleTimeout yoki FcgidProcessLifeTime chegaralaridan oshib ketadigan jarayonlarni qidiradigan vaqt oralig'i.
  • FcgidBusyTimeout 300  - agar shu vaqt ichida jarayon so'rovlarni qayta ishlash bilan band bo'lsa ( soniyada), so'ngra vaqt oralig'i FcgidBusyScanInterval-da belgilangan keyingi skanerlash paytida bunday jarayon o'ldirish uchun belgilanadi;
  • FcgidBusyScanInterval 120  - skanerlash va FcgidBusyTimeout chegarasidan oshib ketadigan jarayonlarni qidirish oralig'i;
  • FcgidErrorScanInterval 3  - oraliq ( soniyada), shu orqali mod_fcgid moduli tugallanishni kutayotgan jarayonlarni o'ldiradi. va FcgidIdleTimeout yoki FcgidProcessLifeTime dan oshib ketganlar. O'ldirish jarayonga SIGTERM signalini yuborish orqali ro'y beradi va agar jarayon faol davom etsa, SIGKILL signali bilan o'ldiriladi.

Shuni hisobga olish kerakki, FcgidIdleTimeout yoki FcgidBusyTimeout-dan oshib ketgan jarayon + FcgidIdleScanInterval yoki FcgidBusyScanInterval orqali omon qolishi mumkin, bu orqali u yo'q qilinishi belgilanadi.

ScanInterval s-ni bir necha soniya farq bilan o'rnatgan ma'qul, masalan, agar FcgidIdleScanInterval 120, keyin FcgidBusyScanInterval 117 - ya'ni. skanerlash jarayonlari bir vaqtning o'zida sodir bo'lmasligi uchun.

Php-cgi jarayonlarini keltirib chiqaradigan faoliyat

Agar yuqoridagilardan hech biri yordam bermasa, bu ajablanarli emas, lekin siz hali ham php-cgi jarayonlarini keltirib chiqaradigan faoliyat bilan o'ynashga harakat qilishingiz mumkin ...

So'rovlar soni, php-cgi jarayonlari va ularning ishlash muddati cheklanishiga qo'shimcha ravishda, FcgidSpawnScore, FcgidTerminationScore, FcgidTimeScore va FcgidSpawnScoreUpLimit kabi ko'rsatmalar bilan tartibga solinadigan bola jarayonlarini yaratish faoliyati kabi narsalar mavjud, deb o'ylayman (men buni to'g'ri deb bilaman). belgilangan standart qiymatlar): FcgidSpawnScoreUpLimit, hech qanday bola jarayonlari yumshatilmaydi va yumurtlamaya oid barcha so'rovlar mavjud jarayon bepul yoki baho berilguncha kutishga to'g'ri keladi ( Hisob) bu chegaradan pastga tushmaydi.

Agar mening tarjimam va yuqoridagi parametrlarni tushunishim to'g'ri bo'lsa, unda php-cgi jarayonlarini yaratish faoliyatini kamaytirish, FcgidSpawnScoreUpLimit ko'rsatmalarining qiymatini kamaytirish yoki FcgidSpawnScore va FcgidTerminationScore qiymatlarini oshirish kerak.

Xulosa

Men sizga yordam beradigan mod_fcgid modul ko'rsatmalarining ko'pini sanab chiqdim va chaynalgan deb umid qilaman cheklangan php-cgi raqamlari va ularning ishlash muddati, shuningdek, resurs sarfini kamaytirish. Quyida to'liq mod_fcgid konfiguratsiyasi  2500 MGts protsessor va 512 MB RAM bilan muvaffaqiyatli ishlaydigan server uchun:

Oleg Golovskiy

Odatda iloji bo'lsa  ko'tarmang Apachebuni qilmang. Lighttpd yoki thttpd sizga kerak bo'lgan vazifalarni bajara oladimi, deb o'ylang. Ushbu veb-serverlar hamma uchun etarli tizim resurslari bo'lmagan vaziyatlarda juda foydali bo'lishi mumkin, ammo ishlashi kerak. Yana bir bor takrorlayman: biz ushbu mahsulotlarning funktsionalligi vazifalarni bajarish uchun etarli bo'lgan holatlar haqida gapirayapmiz (aytmoqchi, lighttpd  bilan ishlashga qodir Php) Vaziyat bo'lmagan hollarda Apache  Siz hech narsa qila olmaysiz, baribir siz so'rovlarni statik tarkibga (JavaScript, grafikalar) yo'naltirish orqali ko'p tizim resurslarini bo'shatib qo'yishingiz mumkin. Apache  engil HTTP serveriga. Eng katta muammo Apache  RAM uchun uning ajoyib ishtahasi. Ushbu maqolada men ishimni tezlashtirishga va xotira hajmini kamaytirishga yordam beradigan usullarni muhokama qilaman:

  • bir vaqtning o'zida bir nechta so'rovlarni bajarish
  • jarayonlarning aylanishi;
  • juda uzoq emas "KeepAlive" dan foydalanish;
  • vaqtni qisqartirish;
  • kesish intensivligining pasayishi;
  • xost nomini aniqligini o'chirib qo'yish
  • foydalanishni o'chirib qo'ying .htaccess.
  • Kamroq modullar yuklanmoqda

    Birinchi qadam - keraksiz modullarni yuklashdan xalos bo'lish. Konfiguratsiya fayllarini ko'rib chiqing va qaysi modullarni yuklayotganingizni aniqlang. Sizga barcha yuklab olinadigan modullar kerakmi? Ishlatilmaydigan narsalarni toping va nafigni o'chiring, bu ma'lum hajmdagi xotirani tejashga yordam beradi.

    Bir vaqtning o'zida bir nechta so'rovlarni bajarish

    Ko'proq jarayonlar Apache  bir vaqtning o'zida ishlashga ruxsat etilsa, bir vaqtning o'zida qancha so'rovlar bajarilishi mumkin. Ushbu sonni ko'paytirish orqali siz ajratilgan xotira hajmini oshirasiz Apache. Yuqoridan foydalanib, siz har bir jarayonni ko'rishingiz mumkin Apache  birgalikda kutubxonalar ishlatilganligi sababli u biroz xotirani egallaydi. Ichida Debian 5  bilan Apache 2  standart sozlama:

    StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 20 MaxRequestsPerChild 0

    Yo'riqnoma StartServers  dastlab boshlangan, darhol boshlangan server jarayonlari sonini aniqlaydi. Direktivalar MinSpareServers  va MaxSpareServersyordamchi "zaxira" jarayonlarning minimal va maksimal miqdorini aniqlash Apache. Bunday jarayonlar kirish so'rovlarini kutish holatida va yuklanmaydi, bu esa serverning yangi so'rovlarga javobini tezlashtirishga imkon beradi. Yo'riqnoma Maxclientsbir vaqtning o'zida server tomonidan qayta ishlanadigan parallel ravishda yuboriladigan so'rovlarning maksimal miqdorini aniqlaydi. Bir vaqtning o'zida ulanishlar soni bu raqamdan oshib ketganda, yangi ulanishlar qayta ishlash uchun navbatga qo'yiladi. Aslida, ko'rsatma Maxclients  va bola jarayonlarining maksimal miqdorini belgilaydi Apachebir vaqtning o'zida ishlaydigan. Yo'riqnoma MaxRequestsPerChild  bola jarayoni ko'rib chiqishi kerak bo'lgan so'rovlar sonini aniqlaydi Apachemavjudligingizni tugatmasdan oldin. Agar ushbu ko'rsatmaning qiymati nolga o'rnatilgan bo'lsa, u holda jarayon "tugamaydi".

    Uy serverim uchun, tegishli ehtiyojlar bilan, men konfiguratsiyani quyidagilarga o'rnatdim:

    StartServers 1 MinSpareServers 1 MaxSpareServers 1 MaxClients 5 MaxRequestsPerChild 300

    Albatta, yuqoridagi konfiguratsiya juda yuklangan serverlarda foydalanish uchun mutlaqo yaroqsiz, ammo uy, mening fikrimcha.

    Jarayon aylanishi

    Ko'rib turganingizdek, men ko'rsatmaning qiymatini o'zgartirdim MaxRequestsPerChild. Shu tarzda bola jarayonlarining umrini shu tarzda qayta ishlangan so'rovlar soniga cheklab qo'ygan holda, buzilgan skriptlar tufayli tasodifiy xotira tushishining oldini olishingiz mumkin.

    Juda uzoq emas KeepAlive-dan foydalanish

    Saqlovchi  Qo'llab-quvvatlash usuli doimiy ulanish  mijoz va server o'rtasida. Dastlab, HTTP protokoli doimiy bo'lmasligi uchun ishlab chiqilgan. Ya'ni, veb-sahifa mijozga yuborilganda, uning barcha qismlari (rasmlar, ramkalar, JavaScript) turli xil, alohida o'rnatilgan ulanishlar yordamida uzatiladi. Kelishi bilan Saqlovchi, brauzerlar doimiy ulanishni so'rash va uni o'rnatgan holda, o'rnatilgan aloqani ishlatib ma'lumotlarni yuklab olish imkoniyatiga ega. Ushbu usul kuchli ishlashga yordam beradi. Ammo Apache  sukut bo'yicha, ulanishni o'chirishdan oldin u juda ko'p vaqtni talab qiladi, 15 soniya. Bu shuni anglatadiki, barcha tarkib mijozning so'roviga berilganidan keyin Saqlovchi, bola jarayoni kirish so'rovlari uchun yana 15 soniya kutadi. Ammo juda ko'p. Ushbu kutish vaqtini 2-3 soniyagacha qisqartirish yaxshiroqdir.

    KeepAliveTimeout 2

    Vaqtni qisqartirish

    Shu bilan bir qatorda, siz ko'rsatmaning qiymatini kamaytirishingiz mumkin. Kutish vaqti, bu individual so'rovlarni bajarish uchun kutish vaqtini belgilaydi. Odatiy bo'lib, uning qiymati 300 ehtimol sizning holatingizda bu qiymatni kamaytirish / oshirish mantiqqa to'g'ri keladi. Men shaxsan uni shundayligicha qoldirdim.

    Kesish intensivligi pasaygan

    Server samaradorligini oshirish yo'lida, siz jurnalning intensivligini kamaytirishga harakat qilishingiz mumkin. Kabi modullar mod_rewrite, nosozliklarni tuzatish ma'lumotlarini jurnalga yozishi mumkin va agar sizga kerak bo'lmasa, uning chiqishini o'chirib qo'ying.

    Xost nomini aniqligini o'chirib qo'yish

    Menimcha, xost nomlarini o'zgartirish uchun IP-manzillarni teskari xaritaga o'tkazishning hojati yo'q. Agar jurnallarni tahlil qilishda sizga ularga juda ko'p narsa kerak bo'lsa, ularni serverning ish paytida emas, balki tahlil bosqichida aniqlashingiz mumkin. Yo'riqnoma xost nomlarini hal qilish uchun javobgardir HostnameLookups, aslida u sukut bo'yicha o'rnatilgan O'chirilganAmmo, agar konversiyani o'chirib qo'yish kerak deb o'ylasangiz, buni tekshiring.

    HostnameLookups o'chirilgan

    Foydalanishni o'chirib qo'yish

    Faylga ishlov berish .htaccess  amalga oshirildi Apache  har safar ma'lumot so'rashda. Nafaqat bu Apache  ushbu faylni yuklab olish kerak, shuning uchun uni qayta ishlashga hali ko'p vaqt va resurslar sarflanadi. Veb-serveringizni ko'rib chiqing va fayllarga bo'lgan ehtiyojni ko'rib chiqing .htaccess. Agar sizga turli kataloglar uchun turli xil sozlamalar kerak bo'lsa, ehtimol ularni asosiy server konfiguratsiya fayliga kiritish mumkinmi? Qayta ishlashni o'chirib qo'yish .htaccess  server konfiguratsiyasida ko'rsatma bo'lishi mumkin.

    Taxminan to'rt oy oldin, Mozilla ko'p jarayonli arxitekturaning birinchi sinovlarini boshladi. Firefox 48 versiyasida foydalanuvchilarning oz qismi, keyin esa sinov namunalari bir yarim baravar oshirildi. Rasmiy blogdagi Mozilla xabariga ko'ra, o'rnatilgan barcha kengaytmalarsiz Firefox-ning deyarli barcha foydalanuvchilari sinovchilar orasida bo'lgan.

    Tajribaning natijalari juda yaxshi edi. Brauzerga javob berish vaqti 400% ga qisqartirildi va sahifa tezligini yaxshilash 700% ga etdi.

      Sinov tugagandan ko'p vaqt o'tmay, ko'p ishlov berish odatiy Firefox-ning o'rnatilgan funktsiyasiga aylanadi, shuning uchun Fire Fox uzoq vaqtdan beri ishlatib kelayotgan Chrome, Edge, Safari va Internet Explorer-ning barqarorligi, xavfsizligi va tezligiga erishadi (yoki yutib yuboradi). arxitektura.

    Ko'p ishlov berish Firefox bir nechta jarayonlar o'rtasida vazifalarni taqsimlashga qodir degan ma'noni anglatadi. Amalda, brauzerda bu renderlash mexanizmini brauzer foydalanuvchi interfeysidan ajratishni anglatadi. Shunday qilib, veb-sahifani ko'rsatish bilan bog'liq muammo butun brauzerni muzlatishiga olib kelmaydi, bu umumiy barqarorlikni oshiradi. Agar har bir tab uchun alohida izolyatsiya qilingan renderlash jarayoni boshlangan bo'lsa, unda muzlatish muammosi faqat bitta yorliq bilan cheklanadi. Bundan tashqari, alohida qum qutisida izolyatsiyani o'rnatish xavfsizlikni kuchaytiradi: xizmat ko'rsatish tizimidagi zaifliklar uchun ekspluatatsiyadan foydalanish yanada qiyinlashadi.

    Chrome va boshqalar ko'p yillar davomida ko'p ishlov berish usullaridan foydalanib kelmoqdalar. 2008 yilda chiqarilgan birinchi versiyadan Chrome brauzerida umuman mavjud. Bu ma'lum ma'noda texnologik yutuq edi. Shunisi e'tiborga loyiqki, Chrome brauzerining eng birinchi versiyasini yaratish uchun Google bir nechta Firefox dasturchilarini mutaxassislarga taklif qildi va ular ko'ngli qolmadi.

    Ammo Mozillaning shaxsiy ishi biroz to'xtab qoldi. Kodli elektroliz (e10s) deb nomlangan ko'p jarayonli arxitekturaning rivojlanishi 2009 yilda boshlangan, ammo 2011 va 2013 yillar oralig'ida u "ustuvorliklar o'zgarishi sababli" to'xtatilgan edi.

    Moslik haqida hisobot beruvchi alohida plagin bilan siz qo'shimchalarning Firefox ko'p ishlov berish rejimiga mos kelishini tekshirishingiz mumkin.

    Endi oxirgi qadamlar qoldi. Firefox assambleyalarida brauzerning normal ishlashini ta'minlash kerak, chunki u hali ko'p protsessorni qo'llab-quvvatlamaydi. Rejaga ko'ra, Firefox 51 versiyasida ular aniq ishlov berishga mos kelmaydigan qilib belgilanmagan kengaytmalar bilan ishlashni ta'minlashni rejalashtirmoqdalar.

    Keyinchalik Mozilla arxitekturani o'zi takomillashtiradi. Vizual dvigatelni alohida jarayonga ajratishdan tashqari, siz bir nechta tarkibiy jarayonlar uchun qo'llab-quvvatlashni amalga oshirishingiz kerak. Bunday holda, ishlashning oshishi mumkin bo'lgan maksimal darajada bo'ladi va brauzer barqarorligini alohida yorliqlarni muzlatishdan kelib chiqadigan xavflar kamaytiriladi.

    Birinchidan, ikkinchi tarkib jarayoni Tungi filialda amalga oshirildi. Endi ishlab chiquvchilar elektrolizning alohida jarayonlariga bardosh bera olishlari va xatolarni qo'lga kiritishlari ustida tekshirishmoqda.

    Ikkinchi katta vazifa - bu huquqlar cheklangan bolalar jarayonlari bilan xavfsizlik muhitini yaratish. Firefox 50-da birinchi sinov versiyasi Windows-da chiqarildi. Ishlab chiqaruvchilar ogohlantirishicha, bu hali ham birinchi darajali himoya qilinmagan birinchi eksperimental versiya. Firefox-ning kelajakdagi versiyalarida Mac va Linux-larga qum qutisi qo'shiladi.

    Bir necha yil kech bo'lsa-da, Firefox nihoyat ko'payish jarayonini joriy qilmoqda. Va bu ajoyib brauzerning barcha foydalanuvchilari uchun ajoyib yangilik. Hech bo'lmaganda kechikkan yaxshi. Va hamma narsani to'g'ri qilish yaxshiroq, shoshilmang. Dastlabki sinovlar shuni ko'rsatdiki, elektroliz ishlash, barqarorlik va xavfsizlikni sezilarli darajada yaxshilaydi.

    Qo'llaniladi: System Center 2012 R2 Operations Manager, System Center 2012 - Operatsion menejeri, System Center 2012 SP1 - Operatsiyalar bo'yicha menejer

    Monitoring  Andoza sizga ma'lum bir jarayon kompyuterda ishlayotganligini kuzatishga imkon beradi. Ushbu shablondan foydalanib, siz ikkita turli xil asosiy stsenariylarni amalga oshirishingiz mumkin: sizga ma'lum bir dastur uchun ishlaydigan jarayon va agar u ishlamasa, ogohlantirish kerak bo'lishi mumkin, yoki agar istalmagan jarayon ishlayotganligi to'g'risida ogohlantirish kerak bo'lsa. Ilovaning ishlashini kuzatishdan tashqari, protsessorning ishlashi va protsessor tomonidan ishlatiladigan xotira to'g'risidagi ma'lumotlarni to'plashingiz mumkin.

    Stsenariylar

    Foydalanish monitoring  Windows-da ishlaydigan agent tomonidan boshqariladigan kompyuterning ishlashini kuzatmoqchi bo'lgan turli xil stsenariylarda shablon. Ilovalar quyidagi jarayonlarni kuzatishi mumkin.

    Tanqidiy jarayon

    Istalgan vaqtda boshlash kerak bo'lgan jarayon. Foydalanish monitoring Ushbu jarayon o'rnatilgan va ishlatiladigan kompyuterlarda ishlashiga ishonch hosil qilish uchun shablon monitoring  uning ishlashini o'lchash uchun shablon.

    Keraksiz jarayon

    Boshlanmasligi kerak bo'lgan jarayon. Ushbu jarayon korruptsiyaga olib keladigan ma'lum tashqi jarayon bo'lishi mumkin yoki dasturda xato yuzaga kelganda avtomatik ravishda boshlanadigan jarayon bo'lishi mumkin. Monitoring  Ushbu jarayon uchun shablonni kuzatib borishingiz mumkin va agar u to'liq bo'lsa, ogohlantirish yuborishingiz mumkin.

    Uzoq davom etadigan jarayon.

    Qisqa vaqt ichida ishlaydigan jarayon. Agar jarayon juda uzoq davom etsa, bu muammoni ko'rsatishi mumkin. Monitoring  Shablonni butun vaqt davomida kuzatib borish mumkin, bu jarayon ishlaydi va bajarilish vaqti ma'lum bir vaqtdan oshsa ogohlantirish yuboradi.

    Jarayon monitoringi shablonlari bo'yicha monitoring

    Monitoring ustasida tanlangan tanlovga qarab, yaratilgan monitorlar va qoidalar tomonidan bajariladigan monitoring quyidagi parametrlardan birini o'z ichiga olishi mumkin.

    Ta'rif

    Yoqilganda

    Monitorlar

    Kerakli jarayonlar soni

    Tanlanganda yoqilgan jarayonlar kerak  yoqilgan kuzatib borish uchun jarayon  sahifalar va jarayonlar soni  yoqilgan ishlaydigan jarayonlar  sahifalar.

    Jarayonning qo'rg'oshin vaqti

    Tanlanganda yoqilgan jarayonlar kerak  yoqilgan kuzatib borish uchun jarayon  sahifalar va davomiyligi  yoqilgan ishlaydigan jarayonlar  sahifalar.

    Keraksiz jarayonni bajarish

    Agar yoqilgan bo'lsa kuzatish stsenariysi  keraksiz jarayonlar uchun.

    Tanlanganda yoqilgan jarayonlar kerak  yoqilgan kuzatib borish uchun jarayon  sahifalarni ishga tushiring CPU ogohlantirish  yoqilgan ishlash haqidagi ma'lumotlar  sahifalar.

    Xotiradan foydalanish jarayonlari

    Tanlanganda yoqilgan jarayonlar kerak  yoqilgan kuzatib borish uchun jarayon  sahifalarni ishga tushiring Xotirani ogohlantirish  yoqilgan ishlash haqidagi ma'lumotlar  sahifalar.

    Ma'lumot to'plash qoidalari

    Protsessorlar to'plami

    Tanlanganda yoqilgan jarayonlar kerak  yoqilgan kuzatib borish uchun jarayon  sahifalarni ishga tushiring CPU ogohlantirish  yoqilgan ishlash haqidagi ma'lumotlar  sahifalar.

    Jarayon bo'yicha xotiradan foydalanishni yig'ish.

    Tanlanganda yoqilgan jarayonlar kerak  yoqilgan kuzatib borish uchun jarayon  sahifalarni ishga tushiring Xotirani ogohlantirish  yoqilgan ishlash haqidagi ma'lumotlar  sahifalar.

    Monitoring ma'lumotlarini ko'rish

    Barcha ma'lumotlar to'plangan monitoring  mavjud shablon jarayon holati  ko'rinishi mavjud Windows jarayonlari va xizmatlarini kuzatib boring  papkalar. Ushbu ko'rinishda tanlangan guruhdagi har bir agent uchun ob'ekt ko'rsatiladi. Agent jarayonni kuzatmasa ham, u ro'yxatda bo'ladi va monitor ishlamayotgan jarayonning holatini ko'rsatadi.

    Jarayon ob'ekti uchun Operations Manager Health Analyzer-ni ochib, individual jarayon monitorlarining holatini ko'rishingiz mumkin. Ishlash ma'lumotlarini ko'rishingiz mumkin, jarayon ob'ekti uchun ishlash ko'rinishini oching.

    Ro'yxatda keltirilgan xuddi shu jarayon ob'ektlari jarayon holati  ko'rinishlar ushbu jarayon joylashgan kompyuterning sog'liqni saqlash analizatoriga kiritilgan. Jarayon monitorlarining salomatlik holati kompyuterning sog'lig'ini pasaytirishdan iborat.

    Sehrgarning imkoniyatlari

    Ishga tushganda monitoring shablon, quyidagi jadvallarda parametr qiymatlarini belgilashingiz kerak. Har bir jadval alohida sehrgar sahifasini taqdim etadi.

    Umumiy xususiyatlari

    Umumiy imkoniyatlar  sehrgar sahifasi.

    Kuzatish uchun jarayon

    Quyidagi variantlar mavjud kuzatib borish uchun jarayon  sehrgar sahifasi.

    Parametr

    Ta'rif

    Kuzatish stsenariyalari

    Amalga oshiriladigan monitoring turi. Tanlang monitor va ishlov berish usuli  kerakli jarayonni kuzatib borish va jarayon ishlamayotgan vaqtda monitorning muhim holatini belgilash. Tanlang faqat jarayon ishlayotganligini kuzatib boring  istalmagan jarayonni kuzatib borish va jarayon boshlanganda monitor parametrlarini kritik holatga sozlash.

    Jarayon nomi

    Jarayonning to'liq nomi. Bu vazifa menejerida ko'rinadiganidek, jarayonning nomi. Bajarilishi kerak bo'lgan yo'lni o'z ichiga olmaydi. Siz nom kiritishingiz yoki ellips tugmachasini bosishingiz mumkin ( ... fayl nomini topish uchun) tugmasini bosing.

    Maqsadli guruh

    Jarayon belgilangan guruhga kiritilgan barcha kompyuterlarda kuzatiladi.

    Ishlayotgan jarayonlar

    Quyidagi variantlar mavjud ishlaydigan jarayonlar  sehrgar sahifasi.

    Parametr

    Ta'rif

    Jarayonlarning ogohlantiruvchi sonini yarating - minimal qiymatdan past yoki belgilangan vaqtdan maksimal darajadan yuqori

    Belgilash katakchasi tanlangan bo'lsa, monitor kritik holatga keltiriladi va agar belgilangan protseduralar soni minimal qiymatdan yoki belgilangan vaqtdan ko'proq bo'lsa, ogohlantirish hosil bo'ladi.

    Kamida bitta protsess nusxasi ishlayotganiga ishonch hosil qilish uchun, minimal va maksimal 1.

    Jarayonlarning minimal soni

    Boshlanishi kerak bo'lgan jarayonlarning minimal soni.

    Jarayonlarning maksimal soni

    Bajarilishi kerak bo'lgan jarayonlarning maksimal soni.

    Davomiyligi

    Monitorni kritik holatga qo'yishdan oldin ishlaydigan jarayonlar soni belgilangan diapazondan oshib ketishini ko'rsatadi. Ushbu qiymatni 1 daqiqadan kamroq vaqtga belgilamang.

    Agar jarayon belgilangan vaqtdan ko'proq davom etsa, ogohlantirish yarating

    Agar tasdiqlash qutisi tanlangan bo'lsa, monitor kritik holatga o'rnatiladi va agar protseduraning bitta nusxasi belgilangan vaqtdan ko'proq vaqt talab qilinsa, ogohlantirish paydo bo'ladi.

    Ishlash ma'lumotlari

    Quyidagi variantlar mavjud ishlash haqidagi ma'lumotlar  sehrgar sahifasi.

    Parametr

    Ta'rif

    Agar CPU yuki oldindan belgilangan qiymatdan oshsa, ogohlantirish yarating

    Jarayon uchun CPU monitoringi kuzatilishi kerakligini bildiradi. Ob'ektda xato holatini belgilaydigan va belgilangan chegaradan oshib ketganda ogohlantirishni keltirib chiqaradigan monitor yaratiladi. Tahlil qilish va hisobot berish uchun protsessorlarni to'plash uchun qoida yaratiladi.

    CPU (foiz)

    Agar protsessorni ishlatish kuzatilsa, ushbu parametr chegara qiymatini belgilaydi. Agar protsessorni umumiy iste'mol qilish darajasi belgilangan qiymatdan oshsa, ob'ektlar to'plami xato holatida va ogohlantirish hosil bo'ladi.

    Agar xotira sarfi belgilangan chegaradan oshsa, ogohlantirish yarating

    Jarayon tomonidan ishlatiladigan xotirani kuzatib borish kerakligini bildiradi. Ob'ektda xato holatini belgilaydigan va belgilangan chegaradan oshib ketganda ogohlantirishni keltirib chiqaradigan monitor yaratiladi. Tahlil qilish va hisobot berish uchun protsessorlarni to'plash uchun qoida yaratiladi.

    Xotira (MB)

    Xotiradan foydalanishni kuzatishda ushbu parametr chegaraviy qiymatni belgilaydi. Agar diskdagi protsessorni umumiy foydalanish megabaytda (MB) maksimal qiymatdan oshsa, ob'ektlar to'plami xato holatida va ogohlantirish hosil bo'ladi.

    Namunalar soni

    Agar protsessor yoki xotira sarfi monitoringi bo'lsa, ushbu parametr ob'ektlarning xatosi holatida va ogohlantirish hosil bo'lishidan oldin oshirib yuborilishi kerak bo'lgan ketma-ket ishlash namunalarini belgilaydi.

    Ushbu parametr uchun 1 dan katta miqdordagi qiymat shovqinni kuzatishni cheklaydi, chunki xizmat qisqa vaqtdan oshib ketganda ogohlantirish paydo bo'lmaydi. Belgilangan qiymat qanchalik katta bo'lsa, muammo to'g'risida bildirishnoma olishdan oldin uzoq vaqt kerak bo'ladi. Odatiy qiymat - 2 yoki 3.

    Namuna olish oralig'i

    Agar protsessor yoki xotira sarfini kuzatayotgan bo'lsangiz, ishlash namunalari orasidagi vaqtni belgilang.

    Ushbu parametr uchun past qiymat muammoni aniqlash vaqtini kamaytiradi, ammo agentga yuklanishni va hisobot uchun to'plangan ma'lumot miqdorini oshiradi. Odatiy qiymat 5 dan 15 minutgacha.

    Qo'shimcha monitoring xususiyatlari

    Ko'rsatilgan monitoringni amalga oshirishga qo'shimcha ravishda monitoring  shablon qo'shimcha monitorlar va ish oqimlari uchun ishlatilishi mumkin bo'lgan targetd sinfini yaratadi. Ushbu sinfdan maqsad sifatida foydalanadigan monitor yoki qoida shablonda ko'rsatilgan guruhdagi har qanday agent tomonidan boshqariladigan kompyuterda bajariladi. Agar u xatolikni ko'rsatadigan Windows hodisalarini yaratsa, masalan, siz aniq voqeani belgilaydigan va jarayon sinfini maqsad sifatida ishlatadigan monitor yoki qoida yaratishingiz mumkin.

    17 dekabr 2010

    Bu erda siz bepul yuklab olishingiz mumkin.
       Ushbu material sayt tomonidan faqat axborot maqsadida taqdim etilgan. Ma'muriyat uning mazmuni uchun javobgar emas.

    Ushbu maqolada men Apache va Nginx o'rtasidagi asosiy farqlarni, oldingi qismning arxitekturasini, Apache-ni orqa tomon sifatida o'rnatishni va Nginx-ning oldingi qismi sifatida tasvirlab beraman. Shuningdek, veb-serverning ishlashini tezlashtiradigan texnologiyani tasvirlayman: gzip_static + yuicompressor.

    Nginx  - server yengil; u belgilangan jarayonlar sonini (odatda jarayonlar soni \u003d yadrolar soni) boshlaydi va har bir jarayon yangi ulanishlarni oladi, mavjudlarini qayta ishlaydi. Ushbu model juda kam resurs xarajatlari bilan ko'plab mijozlarga xizmat ko'rsatishga imkon beradi. Ammo, ushbu model yordamida siz so'rovni bajarishda uzoq operatsiyalarni amalga oshira olmaysiz (masalan, mod_php), chunki bu aslida serverni osib qo'yadi. Jarayon ichidagi har bir tsikl bilan asosan ikkita operatsiya bajariladi: biror joydan ma'lumotlar blokini o'qing, biron joyga yozing. Biror joyda va boshqa joyda - mijoz bilan aloqa, boshqa veb-server yoki FastCGI jarayoni, fayl tizimi, xotirada bufer. Ish modeli ikkita asosiy parametr bo'yicha tuzilgan:
    working_processes - boshlash kerak bo'lgan jarayonlar soni. Odatda protsessor yadrolari soniga teng ravishda o'rnatiladi.
    working_connections - bitta jarayon tomonidan ishlov berilgan ulanishlarning maksimal soni. Bu to'g'ridan-to'g'ri tizimdagi ochiq fayl tavsiflovchilarining maksimal soniga bog'liq (Linuxda sukut bo'yicha 1024).

    Apache  - server og'ir (shuni ta'kidlash kerakki, agar kerak bo'lsa, uni ancha engillashtirish mumkin, ammo bu uning arxitekturasini o'zgartirmaydi); U ikkita asosiy ish modeliga ega - prefork va ishchi.
    Prefork modelidan foydalanib, Apache har bir so'rovni qayta ishlash uchun yangi jarayonni yaratadi va bu jarayon barcha ishlarni bajaradi: so'rovni qabul qiladi, tarkibni yaratadi va foydalanuvchiga beradi. Ushbu model quyidagi parametrlar bilan tuzilgan:


    MinSpareServers - bo'sh jarayonlarning minimal soni. Bu so'rov kelganida, uni tezroq qayta ishlashni boshlashi uchun kerak. Veb-server qo'shimcha protseduralarni boshlaydi, shunda ular belgilangan raqam bo'ladi.
    MaxSpareServers - bo'sh ishlarning maksimal soni. Bu ortiqcha xotirani egallamaslik uchun kerak. Veb-server keraksiz jarayonlarni yo'q qiladi.
    MaxClients - bir vaqtning o'zida xizmat ko'rsatadigan mijozlarning maksimal soni. Veb-server belgilangan miqdordan ko'proq jarayonlarni boshlamaydi.
    MaxRequestsPerChild - bu jarayon bajaradigan so'rovlarning maksimal soni, shundan so'ng veb-server uni yo'q qiladi. Yana, xotirani saqlash uchun, chunki jarayonlardagi xotira asta-sekin "oqadi".

    Ushbu model Apache 1.3 tomonidan qo'llab-quvvatlanadigan yagona model edi. Bu barqaror, tizimdan ko'p qirrali payvandlashni talab qilmaydi, lekin u juda ko'p resurslarni iste'mol qiladi va ishchi modelining tezligida ozgina yo'qotadi.
    Ishchi modelidan foydalanganda, Apache bir nechta jarayonlarni, har birida bir nechta iplarni yaratadi. Bundan tashqari, har bir so'rov to'liq alohida tartibda bajariladi. Preforkga qaraganda biroz kamroq barqaror ipning qulashi butun jarayonni buzishi mumkin, ammo u kamroq resurslarni sarflab, biroz tezroq ishlaydi. Ushbu model quyidagi parametrlar bilan tuzilgan:

    StartServers - veb-server ishga tushganda boshlanadigan jarayonlar sonini belgilaydi.
    MinSpareThreads - har bir jarayonda bo'sh turgan iplarning minimal soni.
    MaxSpareThreads - har bir jarayonda bo'sh turgan iplarning maksimal soni.
    ThreadsPerChild - bu jarayon boshlanganda har bir jarayon boshlanadigan oqimlar sonini belgilaydi.
    MaxClients - bir vaqtning o'zida xizmat ko'rsatadigan mijozlarning maksimal soni. Bunday holda, barcha jarayonlardagi iplarning umumiy sonini belgilaydi.
    MaxRequestsPerChild - bu jarayon bajaradigan so'rovlarning maksimal soni, shundan so'ng veb-server uni yo'q qiladi.

    Old orqa

    Apache-ning asosiy muammosi shundaki, har bir so'rov uchun alohida jarayon ajratilgan (hech bo'lmaganda bitta ip), u ham turli xil modullarga osilgan va juda ko'p resurslarni sarflaydi. Bunga qo'shimcha ravishda, ushbu jarayon mijozga barcha tarkibni bermaguncha xotirada qoladi. Agar mijoz tor kanalga ega bo'lsa va tarkib juda katta bo'lsa, unda bu uzoq vaqt talab qilishi mumkin. Masalan, server 0,1 sekund ichida tarkibni yaratadi va tizim resurslarini olish paytida mijozga 10 soniya davomida beriladi.
    Ushbu muammoni hal qilish uchun orqa tomonning arxitekturasidan foydalaniladi. Uning mohiyati shundaki, mijoz so'rovi engil serverga (Nginx) (arxitektura) kabi arxitekturaga ega bo'lib, so'rovni og'ir serverga (serverga) yo'naltiradi. Backend tarkibni keltirib chiqaradi, uni tezda ta'minlaydi va tizim resurslarini bo'shatadi. Old tomon bu natija natijasini o'z tamponiga qo'yadi va uni mijozga uzoq va zo'r berib berishi mumkin (natija), bu esa manbadan ancha kam resurslarni iste'mol qiladi. Bundan tashqari, old qism statik fayllar (css, js, rasmlar va boshqalar) uchun so'rovlarni mustaqil ravishda hal qilishi, kirishni boshqarish, avtorizatsiyani tekshirish va hk.

    Nginx to'plamini sozlash (frontend) + Apache (backend)

    Nginx va Apache allaqachon o'rnatilgan deb taxmin qilinadi. Siz turli xil portlarni tinglashlari uchun serverni sozlashingiz kerak. Shu bilan birga, agar ikkala server ham bitta mashinada o'rnatilgan bo'lsa, orqa tomonni faqat pastadir interfeysiga (127.0.0.1) osgan ma'qul. Nginx-da, bu tinglash ko'rsatmasi bilan sozlangan:

    Apache-da bu "Tinglash" ko'rsatmasi bilan sozlangan:

    127.0.0.1:81 tinglang

    Keyinchalik, Nginx-ga proksi-serverni qaytarish to'g'risida so'rovlarni aytishingiz kerak. Bu proksi-o'tish 127.0.0.1:81; direktivasi bilan amalga oshiriladi. Bu butun minimal konfiguratsiya. Biroq, yuqorida aytib o'tdik, Nginx-ga statik fayllarni qaytarib berishni ishonib topshirish yaxshiroqdir. Aytaylik, bizda odatda PHP sayt bor. Keyin biz faqat Apache-dagi .php fayllarini proksi qilishimiz kerak, Nginx-da qolgan barcha narsalarni qayta ishlashimiz kerak (agar saytingiz mod_rewrite-dan foydalansa, siz Nginx-ga qayta yozishingiz va .htaccess fayllarini chiqarib tashlashingiz mumkin). Mijoz so'rovi Nginx-ga kelganligini va Apache-ga so'rov allaqachon Nginx tomonidan amalga oshirilganligini hisobga olish kerak, shuning uchun Host-ning bosh sarlavhasi bo'lmaydi va mijozning manzili (REMOTE_ADDR) Apache tomonidan 127.0.0.1 deb belgilanadi. Xost sarlavhasini almashtirish oson, ammo Apache REMOTE_ADDR-ni o'zi belgilaydi. Ushbu muammo Apache uchun mod_rpaf yordamida hal qilinadi. U quyidagicha ishlaydi: Nginx mijoz IP-ni biladi va ma'lum bir https-sarlavhasini qo'shadi (masalan, X-Real-IP), ushbu IP ro'yxatdan o'tgan. mod_rpaf bu sarlavhani oladi va uning tarkibini Apache REMOTE_ADDR o'zgaruvchisiga yozadi. Shunday qilib, Apache tomonidan bajarilgan php skriptlari mijozning haqiqiy IP-manzilini ko'radi.
    Endi konfiguratsiya murakkablashadi. Birinchidan, Nginx va Apache ikkalasi ham bir xil ildizga ega bo'lgan virtual xostga ega ekanligiga ishonch hosil qiling. Nginx uchun misol:

    server (
      tinglash 80;
      server_name sayti;
      root / var / www / sayt /;
    }

    Apache uchun namuna:

      ServerName sayti

    Endi biz yuqoridagi sxema uchun sozlamalarni o'rnatamiz:
    Nginx:
    server (
      tinglash 80;
      server_name sayti;
      joylashuvi / (
      root / var / www / sayt /;
      indeks indeksi.php;
    }
      joylashuv ~ \\ .php ($ | \\ /) (
      proxy_pass https://127.0.0.1:81;
      proxy_set_header X-Real-IP $ remote_addr;
      proxy_set_header Xost $ xost;
    }
    }


    Apache:

    # mod_rpaf sozlamalari
    RPAFen yoqilgan
    RPAFproxy_ips 127.0.0.1
    RPAFheader X-Real-IP


      DocumentRoot "/ var / www / sayt /"
      ServerName sayti

    Doimiy ifoda \\ .php ($ | \\ /) ikkita vaziyatni tavsiflaydi: * .php so'rovi va * .php / foo / barga so'rov. Ikkinchi variant ko'plab CMS..com / index.php ishlashi uchun zarur (chunki biz indeks faylini aniqladik) va Apache-da proksi-server bo'ladi.

    Tezlashtirish: gzip_static + yuicompressor

    Internetda Gzip yaxshi. Matnli fayllar mukammal tarzda siqilgan, trafik saqlanib, tarkib tezda foydalanuvchiga etkaziladi. Nginx chivinni siqib chiqarishi mumkin, shuning uchun hech qanday muammo bo'lmaydi. Biroq, protsessor vaqtini o'z ichiga olgan faylni siqish uchun ma'lum vaqt sarflanadi. Va bu erda Nginx gzip_static ko'rsatmasi yordamga keladi. Uning ishining mohiyati quyidagicha: agar fayl so'ralganda Nginx xuddi shu nomdagi va ".gz" qo'shimcha kengaytmali faylni topsa, masalan, style.css va style.css.gz, keyin style.css-ni siqish o'rniga, Nginx bilan o'qiydi. Disk allaqachon style.css.gz siqilgan va uni siqilgan style.css niqobi ostida beradi.
    Nginx sozlamalari quyidagicha bo'ladi:

    https (
    ...
      gzip_static yoqilgan;
      gzip yoqilgan;
      gzip_comp_level 9;
      gzip_types dastur / x-javascript matn / css;
    ...

    Ajoyib, biz bir marta A.gz faylini yaratamiz, shunda Nginx uni ko'p marta qaytarib beradi. Bundan tashqari, biz YUI Kompressoridan foydalanib css va js-ni siqib chiqaramiz. Ushbu yordam dasturi css va js fayllarini iloji boricha kamaytiradi, bo'shliqlarni olib tashlaydi, ismlarni qisqartiradi va hokazo.
    Va bularning barchasini qisqarishi va hatto avtomatik ravishda yangilanishi uchun siz cron va kichik skriptlardan foydalanishingiz mumkin. Kuniga bir marta quyidagi buyruqni bajarish uchun cron-da yozing:

    / usr / bin / find / var / www -mmin 1500 -iname "* .js" -or -iname "* .css" | xargs -i -n 1 -P 2 packfile.sh

    -P 2 parametrida protsessoringizning yadrolari sonini aniqlang, packfile.sh ga to'liq yo'lni yozishni va veb-katalogingizga / var / www ni o'zgartirishni unutmang.
    Packfile.sh faylida yozing.

    Sizga maqola yoqdimi? Do'stlar bilan baham ko'ring: