เคยไหมครับเวลาใช้งาน 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 ไว้ด้วยนะครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น