apache2 гүйцэтгэлийн оновчлол

Олон хүмүүс apache2-г вэб сервер болгон ашигладаг. Гэсэн хэдий ч цөөхөн хүн түүний гүйцэтгэлийг оновчтой болгох талаар боддог бөгөөд энэ нь сайтын хуудас ачаалах хурд, скрипт боловсруулах хурд (ялангуяа php), түүнчлэн CPU-ийн ачаалал ихсэх, ашигласан RAM-ийн хэмжээг нэмэгдүүлэхэд шууд нөлөөлдөг.

Тиймээс, дараах гарын авлага нь шинэхэн (зөвхөн биш) хэрэглэгчдэд туслах болно.
Доорх бүх жишээг Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3 дээр ашигласан.

Тиймээс, эхлээрэй.

1. Ашиглагдаагүй модулиудыг идэвхгүй болгох

Эхний арга бол ашигладаггүй модулиудыг идэвхгүй болгох явдал юм:

Одоо ашиглагдаж байгаа модулиудын жагсаалтыг дараах тушаалаар харж болно.

apache2ctl -M

Модулийг идэвхгүй болгохын тулд дараах тушаалыг ашиглана уу.

a2dismod *название модуля*

Үүний дагуу модулийг идэвхжүүлэхийн тулд дараах тушаалыг ашиглана.

a2enmod *название модуля*

Үүнийг ашиглахдаа анхаарна уу a2dismod, модулийн нэрийг модуль үггүйгээр бичих ёстой.

Жишээлбэл, хэрэв та тушаалын гаралтанд байгаа бол apache2ctl -M харсан прокси_модуль, дараа нь үүнийг идэвхгүй болгохын тулд та тушаалыг ашиглах ёстой - a2dismod прокси

Системийг хамгийн их ачаалдаг модулиуд (хувийн туршлагаас) нь:

  • PHP, Ruby, Perl болон янз бүрийн скрипт хэлэнд зориулсан бусад модулиуд
  • SSL
  • Реврит
  • CGI

Тиймээс эдгээр модулиудыг ашиглах шаардлагагүй тохиолдолд би эдгээр модулиудыг идэвхгүй болгохыг зөвлөж байна.

Мөн ямар нэгэн модулийг идэвхгүй болгосны дараа − командыг ашиглахыг зөвлөж байна apache2ctl тохиргооны тест, энэ нь ашигласан сайтуудын тохиргоог шалгах бөгөөд хэрэв идэвхгүй болсон модулиудын аль нэг нь шаардлагатай бол алдаа гаргах болно.

2. MPM(Multi-Processing Module)-г өөрчилж, php-fpm ашиглана уу.

Анхдагч байдлаар, суулгасны дараа apache2 нь MPM Prefork (1 холболт тутамд 1 thread) ашигладаг бөгөөд энэ нь гүйцэтгэлийг мэдэгдэхүйц бууруулдаг боловч тогтвортой байдал, аюулгүй байдлыг сайжруулдаг.

Гэхдээ гүйцэтгэлийг оновчтой болгохын тулд би MPM Worker-ийг ашиглахыг зөвлөж байна, энэ нь нэг холболтод олон урсгалыг нэг дор ашиглах боломжийг олгодог.

Үүнийг идэвхжүүлэхийн тулд дараах тушаалуудыг ашиглана уу.

a2dismod mpm_prefork  //Отключаем prefork
a2dismod php7.3  //Отключаем модуль php, который зависит от prefork
a2enmod mpm_worker  //Включаем worker

Гэсэн хэдий ч, Worker-г ашиглах үед та асуудалтай тулгарч магадгүй php7.3 модуль нь Prefork модулиас хамаарна.

Энэ асуудлыг шийдэхийн тулд php скриптүүдийг боловсруулахад ашиглагдах php7.3-fpm модулийг суулгана уу:

apt-get update && apt-get install php7.3-fpm  //Устанавливаем
systemctl enable php7.3-fpm && systemctl start php7.3-fpm  //Добавляем в автозагрузку и запускаем
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf  //Включаем модуль и конфиг для него

Php-fpm ашиглах нь apache2 процессын ашигладаг RAM-ийн хэмжээг бууруулж, php скриптүүдийн боловсруулалтыг бага зэрэг хурдасгах болно гэдгийг тэмдэглэх нь зүйтэй.

3. Дүгнэлт

Тиймээс ийм энгийн үйлдлүүдийн тусламжтайгаар бид гүйцэтгэлийг оновчтой болгож, машин дээрх ачааллыг бууруулж чадсан (энэ тохиолдолд RPI3).

Мэдээжийн хэрэг, шахалтыг идэвхжүүлэх (энэ нь үнэхээр хэрэгтэй, гэхдээ ихэнх нь анхдагчаар идэвхжсэн), MPM-ийн параметрүүдийг (тохируулгын файлууд) өөрчлөх, HostnameLookups-ыг идэвхгүй болгох гэх мэт олон зуун оновчтой хувилбарууд байдаг. Энэ нийтлэлд би хамгийн их тусалсан санаануудыг тусгах гэж оролдсон бөгөөд бусдад тусална гэж найдаж байна.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх