VestaCP phpfcgid загварын тохиргооны процессыг оновчтой болгох нь олон санах ойн хомсдол 500 алдаа

VestaCP вэб үйлчилгээний "phpfcgid" загварыг сонгосны дараа олон тооны PHP-CGI процессууд санах ойг хурдан шавхсан.

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

SSH-д ашигладаг htop тушаал (суулгах шаардлагатай), та энэ статусыг харж болно ▼

VestaCP вэб үйлчилгээний "phpfcgid" загварыг сонгосны дараа олон тооны PHP-CGI процессууд санах ойг хурдан шавхсан.

Хэрэв та 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

Илүү олон далд заль мэхийг нээхийн тулд манай Telegram сувагт нэгдэнэ үү!

Хэрэв танд таалагдвал лайк дарж, хуваалцаарай! Таны шэйр, лайк бол бидний байнгын урам зориг юм!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

TOP хүртэл гүйлгэж