Apache2 ಕಾರ್ಯಕ್ಷಮತೆ ಆಪ್ಟಿಮೈಸೇಶನ್

ಅನೇಕ ಜನರು apache2 ಅನ್ನು ವೆಬ್ ಸರ್ವರ್ ಆಗಿ ಬಳಸುತ್ತಾರೆ. ಆದಾಗ್ಯೂ, ಕೆಲವು ಜನರು ಅದರ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಉತ್ತಮಗೊಳಿಸುವ ಬಗ್ಗೆ ಯೋಚಿಸುತ್ತಾರೆ, ಇದು ಸೈಟ್ ಪುಟಗಳ ಲೋಡಿಂಗ್ ವೇಗ, ಸಂಸ್ಕರಣಾ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳ ವೇಗ (ನಿರ್ದಿಷ್ಟವಾಗಿ php), ಹಾಗೆಯೇ CPU ಲೋಡ್‌ನಲ್ಲಿನ ಹೆಚ್ಚಳ ಮತ್ತು ಬಳಸಿದ RAM ನ ಹೆಚ್ಚಳದ ಮೇಲೆ ನೇರವಾಗಿ ಪ್ರಮಾಣಾನುಗುಣವಾಗಿ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ.

ಹೀಗಾಗಿ, ಕೆಳಗಿನ ಕೈಪಿಡಿಯು ಆರಂಭಿಕರಿಗಾಗಿ (ಮತ್ತು ಮಾತ್ರವಲ್ಲ) ಬಳಕೆದಾರರಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ಕೆಳಗಿನ ಎಲ್ಲಾ ಉದಾಹರಣೆಗಳನ್ನು ರಾಸ್ಪ್ಬೆರಿ PI 3, Debian 9, Apache 2.4.38, PHP 7.3 ನಲ್ಲಿ ಬಳಸಲಾಗಿದೆ.

ಆದ್ದರಿಂದ, ನಾವು ಪ್ರಾರಂಭಿಸೋಣ.

1. ಬಳಕೆಯಾಗದ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದು

ನೀವು ಬಳಸದ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಸರಳವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದು ಮೊದಲ ವಿಧಾನವಾಗಿದೆ:

ಪ್ರಸ್ತುತ ಬಳಸಲಾದ ಮಾಡ್ಯೂಲ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ಆಜ್ಞೆಯೊಂದಿಗೆ ವೀಕ್ಷಿಸಬಹುದು:

apache2ctl -M

ಮಾಡ್ಯೂಲ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು, ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ:

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

ಅಂತೆಯೇ, ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು, ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ:

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

ಬಳಸುವಾಗ ದಯವಿಟ್ಟು ಗಮನಿಸಿ a2 dismod, ಮಾಡ್ಯೂಲ್‌ನ ಹೆಸರನ್ನು ಮಾಡ್ಯೂಲ್ ಎಂಬ ಪದವಿಲ್ಲದೆ ಬರೆಯಬೇಕು.

ಉದಾಹರಣೆಗೆ, ನೀವು ಆಜ್ಞೆಯ ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿದ್ದರೆ apache2ctl -M ಗರಗಸ ಪ್ರಾಕ್ಸಿ_ಮಾಡ್ಯೂಲ್, ನಂತರ ಅದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನೀವು ಆಜ್ಞೆಯನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ - a2dismod ಪ್ರಾಕ್ಸಿ

ಸಿಸ್ಟಮ್ ಅನ್ನು ಹೆಚ್ಚು ಲೋಡ್ ಮಾಡುವ ಮಾಡ್ಯೂಲ್‌ಗಳು (ವೈಯಕ್ತಿಕ ಅನುಭವದಿಂದ):

  • PHP, ರೂಬಿ, ಪರ್ಲ್ ಮತ್ತು ವಿವಿಧ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಗಳಿಗೆ ಇತರ ಮಾಡ್ಯೂಲ್‌ಗಳು
  • ಎಸ್ಎಸ್ಎಲ್
  • ಮತ್ತೆ ಬರೆಯಿರಿ
  • CGI

ಆದ್ದರಿಂದ ನಿಮಗೆ ಈ ಮಾಡ್ಯೂಲ್‌ಗಳು ಅಗತ್ಯವಿಲ್ಲದ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಈ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ.

ಅಲ್ಲದೆ, ಯಾವುದೇ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ ನಂತರ, ಆಜ್ಞೆಯನ್ನು ಬಳಸಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ - apache2ctl configtest, ಇದು ಬಳಸಿದ ಸೈಟ್‌ಗಳ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾದ ಮಾಡ್ಯೂಲ್‌ಗಳು ಅವರಿಗೆ ಅಗತ್ಯವಿದ್ದರೆ, ಅದು ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.

2. MPM (ಮಲ್ಟಿ-ಪ್ರೊಸೆಸಿಂಗ್ ಮಾಡ್ಯೂಲ್) ಬದಲಾಯಿಸುವುದು ಮತ್ತು php-fpm ಅನ್ನು ಬಳಸುವುದು

ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಅನುಸ್ಥಾಪನೆಯ ನಂತರ, apache2 MPM Prefork ಅನ್ನು ಬಳಸುತ್ತದೆ (1 ಸಂಪರ್ಕಕ್ಕೆ 1 ಥ್ರೆಡ್), ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ, ಆದರೆ ಅದೇ ಸಮಯದಲ್ಲಿ ಸ್ಥಿರತೆ ಮತ್ತು ಭದ್ರತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.

ಆದರೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು, ಎಂಪಿಎಂ ವರ್ಕರ್ ಅನ್ನು ಬಳಸಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ, ಇದು ಪ್ರತಿ ಸಂಪರ್ಕಕ್ಕೆ ಬಹು ಎಳೆಗಳನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಾವು ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸುತ್ತೇವೆ:

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

ಆದಾಗ್ಯೂ, ವರ್ಕರ್ ಅನ್ನು ಬಳಸುವಾಗ ನೀವು ಸಮಸ್ಯೆಯನ್ನು ಎದುರಿಸಬಹುದು ಏಕೆಂದರೆ... php7.3 ಮಾಡ್ಯೂಲ್ ಪ್ರಿಫೋರ್ಕ್ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.

ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು, ನಾವು php7.3-fpm ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸ್ಥಾಪಿಸೋಣ, ಇದನ್ನು PHP ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಚಲಾಯಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ:

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

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ