Newrelic เครื่องมือสำหรับ monitor server บน Cloud ขั้นเทพ by

31
Jan
1

จากบทความที่แล้ว ทำไมเว็บไซต์ของคุณช้า หรือล่มบ่อย? อาจจะมีข้อสงสัยว่า “แล้วเราจะรู้ได้อย่างไรว่าเว็บเราช้าหรือล่มเพราะ Database, CPU หรือ Memory?” ผมก็ขอแนะนำเครื่องมือที่ช่วย Monitor server ให้กับทุกๆ คนครับ ที่สำคัญ Tools ตัวนี้ยังฟรีอีกด้วย!! (แต่ feature เทพๆ บางส่วนก็เสียตังนะ เหอๆ แต่โดยส่วนตัวแล้วมันช่วยได้เยอะจริงๆ นะผมว่า)

Tools ที่ว่าตัวนี้คือ Newrelic ซึ่งจะช่วยตรวจสอบ server ของเราและรายงานผลออกมาเป็นกราฟอย่างสวยงาม เข้าตรวจสอบได้ผ่านเว็บไซต์ ใช้งานง่ายมาก ไม่ต้องทนดู shell ดำๆ อ่านยาก และนอกจากนี้ยังไม่กินที่ server เราอีกต่างหาก เพราะข้อมูลที่ได้จะถูกส่งไปยัง cloud server ของทาง newrelic และเมื่อเราต้องการตรวจดูข้อมูล ก็เพียงแค่ login เข้าไปตรวจสอบเท่านั้น ซึ่ง Tools ตัวนี้เราจะต้องทำการติดตั้งตัวดักจับข้อมูลที่ server ของเรา ซึ่ง support ทั้งตัวภาษา .NET, Java, Ruby, PHP และ OS ที่ support ก็ครอบคลุมตั้งแต่ Redhat, Centos, Ubuntu, Debian และ Linux ตัวอื่นๆ รวมไปถึง Solaris! php ที่ support มีทั้งเวอร์ชั่น 5.2 และ 5.3 ครอบคลุมมากทีเดียว

มาดูกันดีกว่าว่า Newrelic ทำอะไรได้บ้าง

sss

กราฟโดยรวมของ server ของเรา

  1. Monitor ทั่วไปโดยสังเกตที่แถบสีด้านล่างจะมีอยู่ 5 สีได้แก่
    • Request Queueing – คือมี Queue รอจะใช้งานอยู่มากหรือไม่ หากมีสูง แสดงว่า script เราทำงานช้าเกินไป หรือ apache config มีปัญหาทำให้เกิดการรอกันใช้งานระหว่างผู้ใช้มากเกินไป
    • PHP – เวลาที่ PHP ใช้งาน อันนี้ถ้าสูงมาก แสดงว่า script ที่เราเขียนมีปัญหาติดลูปหรือติดปัญหาบางอย่าง
    • Database – ตรงๆ ตัวครับ เวลาที่ใช้ไปกับ Database ถ้า Database ช้าถูสีกราฟตัวนี้จะเห็นชัดเลยทีเดียว
    • Memcache – เวลาที่ใช้ของ memcache ตรงนี้ผมยังไม่เคยเห็นค่าพุ่งสูงเลยแม้แต่น้อย ไม่เคยมีปัญหาครับ
    • All External – เวลาที่ใช้ในการดึงข้อมูลจากเว็บไซต์ภายนอกที่ไม่ใช่เว็บไซต์ของเรา เช่นมีการต่อ API twitter, Facebook ซึ่งพวกนี้แหละที่เป็นตัวกินเวลาทำให้เว็บของคุณช้าโดยที่ไม่รู้ตัว ทั้งๆ ที่คุณไม่ได้เขียนโค้ดแย่ซักหน่อย วิธีแก้คือลดการติดต่อกับเว็บภายนอกให้เหลือเฉพาะส่วนจำเป็นเท่านั้น อาจใช้ memcache เข้ามาช่วยตรงจุดนี้ได้เช่นกัน

    นอกจากนี้แล้ว ในหน้าแรกนี้ยังมีกราฟแสดง CPU, Memory, Apdex(คะแนนความพอใจของผู้ใช้), Throughput (ปริมาณข้อมูล) อีกด้วย

  2. URL ที่ช้า

    URL ที่ช้า

    ส่วนนี้เป็นการแสดงว่าหน้าใดที่เป็นตัวการของปัญหาความช้า ซึ่งจะจัดเรียงให้เราเห็นชัดเจนเลยว่าปัญหาเกิดจากหน้าใดมากที่สุด นอกจากนี้ยังเลือกให้จัดเรียงตาม ค่าเฉลี่ย Response Time มากที่สุด, Apdex ห่วยสุด (คะแนนความพึงพอใจน้อยที่สุด), กินเวลามากที่สุด (ไม่จำเป็นต้องมี Response Time มากที่สุดเสมอไป อาจถูกเรียกบ่อยเกินไปก็เป็นได้), ปริมาณการส่งข้อมูลมากที่สุด และ เรียงตามค่ามาตรฐาน (Standard Deviation) ก็ได้

  3. กราฟ Database

    กราฟ Database

    (สมาชิก Silver เท่านั้น) คล้ายกับข้อ 2 เพียงแต่เปลี่ยนจากหน้าเป็น Query ที่ช้าที่สุด มีรูปแบบการจัดเรียงให้เลือกเหมือนกัน และมีกราฟสรุปว่ามีอัตราการ INSERT, SELECT, UPDATE, DELETE อย่างไหร ตัวไหนกินเวลามากที่สุด

  4. หน้า Transaction Trace

    หน้า Transaction Trace

    (สมาชิก Silver เท่านั้น) สรุปว่ามีหน้าอะไรบ้าง (เป็นรายครั้ง ไม่ใช่สรุปรวมเหมือนข้อ 2) ที่ทำงานช้า สามารถคลิกเข้าไปดูรายละเอียดเพิ่มเติมเป็นราย Query ได้ดังรูปด้านล่าง หากมี Query ไหนที่ทำงานช้าเกินไปสามารถคลิกเพื่อดูบรรทัดที่ script สั่งรัน query ตัวนั้นเพื่อตามหาต้นตอของความช้าได้อีกด้วย!

    หน้า Transaction Trace

    หน้า Transaction Trace (ด้านใน)

  5. หน้า Scalabilit

    หน้า Scalability

    (สมาชิก Gold เท่านั้น) หน้านี้ไว้ใช้สำหรับดูการกระจายตัวของการใช้งาน CPU, Database, Response time ว่าช่วงเวลาใดมีการใช้งานหนักที่สุด สังเกตรการจุดสีของกราฟ ถ้ามีการกระจุกที่จุดใด จุดหนึ่ง ก็สรุปได้ว่าช่วงเวลานั้นมีการใช้งานหนัก

  6. มี feature การทำงานเป็นทีม หากพบกราฟที่ผิดปกติ สามารถคลิก Add to note ไว้เพื่อให้สมาชิกในทีมคนอื่นมาดูต่อ และ discuss กันได้ แม้เวลาจะผ่านจากจุดนั้นไปแล้วนานแค่ไหนก็ตาม
  7. ปกติแล้วถ้าแบบฟรีจะไม่สามารถดูข้อมูลย้อนหลังได้เกิน 30 นาที แต่ถ้าจ่ายตังหน่อยก็จะดูได้ตั้งแต่ 1 อาทิตย์ไปจนถึง 3 เดือน แต่ทั้งนี้และทั้งนั้น หากใครไม่อยากเสียตังก็สามารถใช้ API ดึงข้อมูลกราฟในแต่ละช่วงเวลามาเก็บที่ server ตัวเองได้ครับ ซึ่งทาง newrelic เปิด API ให้ดึงข้อมูลจากกราฟไปใช้ได้โดยตรงฟรีๆ

ด้วยข้อดีมหาศาลขนาดนี้ การ monitor server ของคุณจะง่ายขึ้นเป็นอย่างมากเลยทีเดียว แต่แน่นอนบาง feature ก็ต้องจ่ายเงินซื้อ แต่โดยส่วนตัวแล้วผมคิดว่าไม่แพงเกินไปหรอกครับ หากเว็บของเรามีคนเข้าเยอะจนต้องปรับ performance กันขนานใหญ่ขนาดนี้แล้ว ขอให้ทุกท่านโชคดีกับการดูแล server นะครับ :)

Enjoy this article?

Consider subscribing to our RSS feed!

1 ความเห็น

ใส่ความเห็น

RSS feed for comments on this post