\

Facebook


วันอังคารที่ 24 กุมภาพันธ์ พ.ศ. 2558

[XAMPP] เร่งความเร็ว Apache ด้วย mod_log_config


 เคยไหมครับเวลาใช้งาน XAMPP เป็นเซิฟเว่อร์จำลอง แล้วเเต่ละ request ที่ส่งไปใช้เวลานานเหลือเกิน ตั้ง timeout ไว้ 30 วินาที บางครั้งยังไม่พอ แล้วหลังจาก Return ข้อผิดพลาดกลับดันเป็นแค่ Notice ธรรมดา จนบางคนแก้ปัญหาด้วยการ ประกาศปิด Notice กับ Error ไว้ที่หัวไฟล์ซะเลย

แต่พอระบบใหญ่ขึ้นมา เจอโจทย์แบบว่า "Notice เป็นแบบไหนต้องแก้ให้ได้ทั้งหมด" ซึ่งส่วนใหญ่มันจะเกิดจากสาเหตุที่ object ไม่มีอยู่จริง, อินเด็กที่เรียกไม่มีอยู่ หรือ Loop ไม่มีสมาชิกอยู่เลย(count=0)  วนๆกันอยู่ประมาณนี้แหละครับ

เวลาฝั่ง Server เจอข้อผิดพลาด จะทำการเก็บล็อกเอาไว้ ซึ่งวิธีที่จะเร่งความเร็วเพิ่มขึ้นวันนี้ก็คือการ เพิ่มความเร็วในการบันทึก Log นั่นเอง โดยใช้โมดูลที่มีชื่อว่า mod_log_config โดยหากใช้ XAMPP เวอชั่น WINDOWS ก็ทำตามนี้ครับ เปิด "httpd.conf" ขึ้นมาแล้วเพิ่มบรรทัดข้างล่างเข้าไป

<IfModule mod_log_config.c>
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"**%T/%D**" combined
  CustomLog logs/access.log combined
  <IfModule mod_deflate.c>
    DeflateFilterNote Input instream
    DeflateFilterNote Output outstream
    DeflateFilterNote Ratio ratio
    LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
    CustomLog logs/deflate.log deflate
  </IfModule>
</IfModule>


มันคือการเพิ่ม format ของ Log นั่นเอง ซึ่ง %T คือเวลาที่ใช้ในหน่วย millisec เเทนที่จะเป็นแค่ sec ซึ่งจะออกมาหน้าตาประมาณนี้

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"**%T/%D**" combined

that is logging the time spent to serve the request but in microseconds (10-6) instead of seconds.(อ้างอิง)
 ที่มา: http://www.ducea.com/2008/02/06/apache-logs-how-long-does-it-take-to-serve-a-request/
ปล. ใช้ได้กับ apache version 2.0.x ขึ้นไป

ผมยังไม่ได้เทส จริงจังนะครับ ว่าไวขึ้นจริงๆไหม (ดันมาเจอบทความตอนโปรเจกค์ใกล้จบ) ใครเทสเเล้ว work หรือไวขึ้นจริงๆ post comment ไว้ด้วยนะครับ

ไม่มีความคิดเห็น:

May be like this posts

  • จัดระเบียบ SQL Query ให้อ่านง่ายๆสบายตา DEV ด้วย ApexSQL
    07/10/2015 - 0 Comments
    สำหรับท่านที่ต้องใช้งาน MSSMS อยู่เป็นประจำน่าจะเจอปัญหาคล้ายๆกับผมคือ "เวลาแก้ store procedure…
  • [WinForm c#] Basic send E-mail with Google Sevice
    29/09/2013 - 0 Comments
    In this tutorial, I gonna show you how to implement basic WinForm with sending E-mail function. Gmail…
  • [[แจก]] โปรแกรมอ่าน Skype โดยไม่ต้อง LogIN
    16/10/2014 - 0 Comments
    โปรแกรมอ่านข้อความใน Skype โดยไม่ต้อง LogIN เอาไว้จับผิดตอนเค้าไม่อยู่เครื่อง ** ตอนนี้ ผมเขียนให้รันบน…
  • [PHP] วิธีจับ Notice มาเป็น Exception ใน TryCatch
    24/02/2015 - 0 Comments
    ในภาษาพีเฮชพี Notice กับ Warning ไม่ถือเป็น runtime error ครับ ทำให้เวลาเราครอบด้วย try catch…
  • Doodle Rubik ตัวใหม่ของ Google เล่นกันละยัง
    18/05/2014 - 0 Comments
    วันนี้ 19/5 เข้าหน้ากูเกิ้ลแล้วเจอ Doodle ตัวใหม่ เป็นรูบิค 3x3…
  • สร้าง WebApp ด้วย VueJS บน Digital Ocean ตอนที่ 2 : ติดตั้ง nodejs + npm
    18/05/2018 - 0 Comments
    NodeJS คือ JavaScript framework ที่ใช้ทำ back-end ซึ่งในเคสของผม ผมเลือกเพื่อมาเป็นตัว API สำหรับให้…
  • แก้ไข PDF ออนไลน์ไม่ต้องพึ่งโปรแกรมเสียเงิน
    04/08/2017 - 0 Comments
    เป็นความอารมณ์เสียอย่างหนึ่งเมื่อต้องแก้งาน PDF แล้วเครื่องเราไม่มี software สำหรับแก้…