Friday, December 2, 2022

Tuning Your Apache Server

ENV

  • Ubuntu 18.04 
  • Apache2
  • PHP 7.4
ปัญหาที่พบ
  • apache2 ชอบ freeze เป็นระยะๆ น่าจะเกิดจาก client แต่ละ node สร้าง connection เยอะเกิน limit ของ apache
  • ดู log
$ sudo tail /var/log/apache2/error.log
  • พบ error ประมาณนี้
AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

Solved

$ sudo nano /etc/apache2/sites-available/your_doman.conf 

  • เพิ่มต่อบรรทัดสุดท้ายได้เลย

<IfModule mpm_prefork_module>

       StartServers              4

       MinSpareServers          20

       MaxSpareServers          40

       MaxRequestWorkers       200

       MaxConnectionsPerChild 4500

</IfModule>

  • ถ้ายังดู error.log ยังพบ MaxRequestWorkers ไม่พออยู่ ให้ปรับสัก 1500 เลย

<IfModule mpm_prefork_module>
      StartServers                     10
      MinSpareServers               10
      MaxSpareServers              20
      ServerLimit                      2000
      MaxRequestWorkers         1500
      MaxConnectionsPerChild    10000 

</IfModule> 

  • หรือจะไปแก้ที่ global file เลย สำหรับทุก ไซต์

$ sudo nano /etc/apache2/mods-available/mpm_prefork.conf

  • รีสตาร์ท apache

$ sudo systemctl restart apache2

$ sudo /etc/init.d/apache2 restart

Ref

  • https://www.linode.com/docs/guides/tuning-your-apache-server/
  • https://help.thaidatahosting.com/kb/apache-performance-directadmin/
  • https://th.linux-console.net/?p=1301#gsc.tab=0
  • https://www.programmerthailand.com/tutorial/post/view/288/%E0%B9%81%E0%B8%81%E0%B9%89%E0%B8%9B%E0%B8%B1%E0%B8%8D%E0%B8%AB%E0%B8%B2-apache-error-maxrequestworkers
  • https://ubiq.co/tech-blog/check-apache-modules-enabled/
  • https://thiti.dev/blog/6245/
  • https://softganz.com/paper/235
  • https://stackoverflow.com/questions/36924952/ah00161-server-reached-maxrequestworkers-setting-consider-raising-the-maxreque

No comments:

Post a Comment