Аптымізацыя працэсу канфігурацыі шаблона VestaCP phpfcgid вычарпання некалькіх аб'ёмаў памяці 500 памылак

Пасля выбару шаблону "phpfcgid" для вэб-сэрвісу VestaCP вялікая колькасць працэсаў PHP-CGI хутка вычарпала аператыўную памяць.

  • Пасля перазапуску сервера ў мяне практычна не хапала памяці на працягу некалькіх гадзін.
  • Раней бяздзейны працэс PHP-CGI не спыняецца, і адзін працэс запускае каля 1 падпрацэсаў, спажываючы не менш за 20 МБ памяці.

Выкарыстоўваецца ў SSH htop (патрабуецца ўстаноўка), вы можаце праглядзець гэты статус ▼

Пасля выбару шаблону "phpfcgid" для вэб-сэрвісу VestaCP вялікая колькасць працэсаў PHP-CGI хутка вычарпала аператыўную памяць.

Калі вы атрымліваеце паведамленне пра памылку «-bash: htop: каманда не знойдзена» пры выкарыстанні каманды htop, праглядзіце гэты падручнік для рашэння ▼

Вялікая колькасць працэсаў PHP-CGI прывяла да хуткага вычарпання памяці. Праблема заключаецца ў тым, што VestaCP выкарыстоўвае неаптымізаваную канфігурацыю ў шаблоне phpfcgid CentOS .

  • VestaCP у шаблоне phpfcgid усталюйце 1 працэс PHP-CGI для запуску да 20 даччыных працэсаў.

请 参阅 /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Радок 13 файла:

export PHP_FCGI_CHILDREN=20

Аднак такая ўстаноўка парушае папярэджанне Apache у дакументацыі па кіраванні падпрацэсам PHP:

Кіраванне даччынымі працэсамі PHP ( PHP_FCGI_CHILDREN ) заўсёды павінна быць адключана з дапамогай mod_fcgid, які будзе накіроўваць толькі адзін запыт за раз да працэсаў прыкладання, якія ён спарадзіў; такім чынам, любыя даччыныя працэсы, створаныя PHP, не будуць эфектыўна выкарыстоўвацца. (Акрамя таго, даччыныя працэсы PHP могуць не завяршыцца належным чынам.) Па змаўчанні, і пры ўсталёўцы зменнай асяроддзя PHP_FCGI_CHILDREN=0 , кіраванне даччынымі працэсамі PHP адключана.

Паколькі ў модулі mod_fcgid Apache працэс 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
  • Наладзьце Apache на аўтаматычнае спыненне працэсаў PHP-CGI, якія прастойваюць 2 хвіліны (120 секунд).

Пасля завяршэння ўстаноўкі перазапусціце службу Apache ▼

service httpd restart

Пасля перазапуску службы сотні працэсаў PHP-CGI, якія раней адлюстроўваліся ў HTOP, больш не будуць адлюстроўвацца.

Звычайна адзін працэс PHP-CGI для аднаго карыстальніка Vesta CP спажывае ад 30 да 40 МБ памяці, чаго больш чым дастаткова для хоста Linux.

Такім чынам, аптымізацыя канфігурацыі кантэнту і шаблонаў Vesta мае вырашальнае значэнне для інтэрнэт-маркетолагаў , якія жадаюць дасягнуць поспеху ў SEO .

Вы можаце зірнуць на наступныя падручнікі на панэлі VestaCP ▼

Спадзяюся, артыкул «Аптымізацыя канфігурацыі шаблону VestaCP phpfcgid для «Некалькі працэсаў, памылка перавышэння памяці 500»», апублікаваны ў блогу Чэня Вэйляна ( https://www.chenweiliang.com/ ), будзе вам карысным.

Не саромейцеся падзяліцца спасылкай на гэты артыкул: https://www.chenweiliang.com/cwl-735.html

Каб адкрыць больш схаваных хітрасцяў🔑, далучайцеся да нашага канала ў Telegram!

Падзяліцеся і пастаўце лайкі, калі вам гэта падабаецца! Вашы акцыі і лайкі - наша пастаянная матывацыя!

 

发表 评论

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

Пракрутка да пачатку