VestaCP вэб үйлчилгээний "phpfcgid" загварыг сонгосны дараа олон тооны PHP-CGI процессууд санах ойг хурдан шавхсан.
- Серверийг дахин эхлүүлсний дараа миний санах ой үндсэндээ хэдэн цагийн турш дуусч байсан.
- Өмнө нь идэвхгүй байсан PHP-CGI процессыг устгадаггүй бөгөөд нэг процесс нь бараг 1 дэд процессыг ажиллуулж, дор хаяж 20 сая санах ой зарцуулдаг.
SSH-д ашигладаг htop тушаал (суулгах шаардлагатай), та энэ статусыг харж болно ▼

Хэрэв та htop командыг ашиглах үед "-bash: htop: команд олдсонгүй" гэсэн алдаа гарч ирвэл энэ зааварчилгааг үзнэ үү ▼
PHP-CGI процессуудын олон тоо нь санах ойг хурдан шавхахад хүргэсэн. Асуудал нь VestaCP нь CentOS phpfcgid загварт оновчлогдоогүй тохиргоог ашигладагт оршино.
- phpfcgid загварт VestaCP-ийг 1 хүртэлх хүүхэд процесс ажиллуулахын тулд 20 PHP-CGI процессыг тохируулна уу.
Харна уу /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Файлын 13-р мөр:
export PHP_FCGI_CHILDREN=20
Гэсэн хэдий ч ийм тохиргоо нь PHP дэд процессын удирдлагын баримт бичигт Apache-ийн анхааруулгыг зөрчиж байна:
PHP хүүхдийн процессын менежментийг ( PHP_FCGI_CHILDREN ) mod_fcgid ашиглан үргэлж идэвхгүй болгох ёстой бөгөөд энэ нь нэг удаад зөвхөн нэг хүсэлтийг өөрийн үүсгэсэн програмын процессууд руу чиглүүлэх болно; ингэснээр PHP-ийн үүсгэсэн аливаа хүүхдийн процессууд үр дүнтэй ашиглагдах боломжгүй болно. (Нэмж дурдахад, PHP хүүхдийн процессууд зөв дуусахгүй байж магадгүй.) Анхдагчаар, PHP_FCGI_CHILDREN=0 орчны хувьсагчийн тохиргоотой үед PHP хүүхдийн процессын менежмент идэвхгүй болно.
Apache-ийн mod_fcgid модульд PHP-CGI процесс нь зөвхөн нэг хүсэлтэд хариу үйлдэл үзүүлж, нэг удаад ажиллах боломжтой тул PHP-CGI хүүхэд процесс нь маш үр ашиггүй байдаг.
Тиймээс PHP дэд процессын удирдлагын тохиргоог шууд идэвхгүй болгох хэрэгтэй ▼
PHP_FCGI_CHILDREN=0
Үүний зэрэгцээ, хэрэв та аль хэдийн үүсгэсэн виртуал хосттой бол бүх вэб сайтын тохиргооны файлуудыг өөрчлөх хэрэгтэй ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
fcgi-starter тохиргооны файлыг нээсний дараа дараах ▼-г оруулна уу
export PHP_FCGI_CHILDREN=20
▼ болгон өөрчилсөн
export PHP_FCGI_CHILDREN=0
- Өөрчлөлт хийсний дараа PHP дэд процессын удирдлага mod_fcgid горимд унтрах болно.
- PHP-CGI процесс нь хүүхэд процессуудыг үүсгэхээ больсон бөгөөд энэ нь маш их санах ойг хэмнэх болно.
Мөн VestaCP нь сул зогсолттой процессуудыг зогсоох механизмыг тогтоодоггүй.
- Шинээр хийгдсэн бүх PHP-CGI процессууд системийг дахин ачаалах хүртэл санах ойг үргэлжлүүлэн ашиглах болно.
Үүнийг засахын тулд mod_fcgid тохиргооны файлыг нэмнэ үү /etc/httpd/conf.d/fcgid.conf Дараах тохиргоог ▼ дотор нэмнэ
FcgidIdleTimeout 120
- 2 минут (120 секунд) идэвхгүй байгаа PHP-CGI процессуудыг автоматаар устгахаар Apache-г тохируулна уу.
Тохиргоо дууссаны дараа Apache үйлчилгээг дахин эхлүүлнэ үү ▼
service httpd restart
Үйлчилгээг дахин эхлүүлсний дараа HTOP дээр өмнө нь харуулсан хэдэн зуун PHP-CGI процессууд цаашид харагдахгүй болно.
Ерөнхийдөө, Vesta CP хэрэглэгчийн хувьд ганц PHP-CGI процесс нь 30-40 MB санах ой ашигладаг бөгөөд энэ нь Linux хостод хангалттай хэмжээнээс их юм.
Тиймээс Vesta контент болон загваруудын тохиргоог оновчтой болгох нь SEO- д амжилтанд хүрэхийг хүсдэг онлайн маркетеруудын хувьд маш чухал юм.
Та VestaCP самбар дээрх дараах хичээлүүдийг үзэж болно ▼
Чен Вэйлиангийн блог ( https://www.chenweiliang.com/ ) дээр хуваалцсан "'Олон процесс, санах ойн ядаргаа 500 алдаа'-д зориулсан VestaCP phpfcgid загварын тохиргоог оновчтой болгох нь" нийтлэл танд тустай байх гэж найдаж байна.
Энэ нийтлэлийн холбоосыг хуваалцахаас бүү эргэлзээрэй: https://www.chenweiliang.com/cwl-735.html



