top of page

ทำไมวันนี้ App ช้าจัง !!! EP1.



สวัสดีครับหลายท่านทั้งที่เป็นทีม Developers หรือทีม Infrastructure อาจจะเคยประสบปัญหาเกี่ยวกับการใช้งานระบบ IT ของ End Users ที่บางครั้งแจ้งมาว่า ทำไมวันนี้ app ช้าจัง, App หลุดบ่อย หรืออีกหลากหลายสารพัดปัญหา โดยปัญหาเหล่านี้มักใช้เวลานานกว่าจะแก้ไขปัญหาได้หากไม่มีผู้เชี่ยวชาญที่เคยแก้ปัญหาเหล่านี้มาก่อนช่วยฟันธงว่าเป็นที่อะไร และอาจจะเคยเจอว่า ทีมพัฒนา Software บอก Application ไม่ได้ทำอะไร, ทีม Infrastructure บอกทุกอย่างปกติ ซึ่งคนที่จะปวดหัวที่สุดก็จะเป็นผู้บริหารที่ต้องคอยจัดการปัญหาที่เกิดขึ้น โดยบทความนี้ผู้เขียนจะมาเล่าประสบการณ์ที่เราในฐานะการเป็นที่ปรึกษาในหลายๆ องค์กรที่เจอปัญหาเหล่านี้ให้ท่านผู้อ่านฟัง และจะพยายามสรุปให้สั้นที่สุดแต่คงจะไม่หมดภายใน EP เดียว เดี๋ยวจะขอเล่าเป็น Series ถัดๆไป ไล่ตั้งแต่ Application , infrastructure , server และ Database ส่วนในครั้งนี้จะขอเล่าเกี่ยวกับระบบปฎิบัติการ (OS) และ Server กันก่อนนะครับ

เราเคยเจอเรื่อง Application อยู่ดีๆ End user ก็แจ้งว่าวันนี้ทำไมช้าจังด้วยความที่การเป็น IT ประจำองค์กรก็จะมีการแบ่งหน้าที่กันรับผิดชอบไม่ว่าจะเป็น System Engineer ,Network Engineer, DBA , Developers เพื่อค้นหาว่าสิ่งที่ตัวเองรับผิดชอบอยู่นั้นมีอาการผิดปกติอะไรไหม

ในส่วนของ Server OS รวมถึง Hardware เราสามารถบริหารจัดการรวมถึงการ Monitoring ในมุมของการตรวจสอบ Performance ของตัวเครื่อง โดยการใช้เครื่องมือต่างๆเข้ามาบริหารจัดการไม่ว่าจะเป็น Software สำเร็จรูปต่างๆ เช่น Solarwind, Whatup Gold หรืออื่นๆ แต่หากเราไม่มี Software เหล่านี้ หนึ่งในเครื่องมือที่ทาง Microsoft ได้ให้มากับเครื่อง Windows Server ที่มีประสิทธิภาพในการตรวจสอบการใช้งานของตัวเครื่องไม่แพ้กันและผู้เขียนก็ขอบใช้ด้วยก็คือ Performance Monitor


โดยหลักแล้วการใช้ Performance Monitor จะเป็นการตรวจสอบการใช้งานตัวเครื่อง Server ของเราว่าในแต่ละช่วงเวลามีการใช้งานระบบไปมากน้อยขนาดไหน โดยดูได้ตั้งแต่ CPU, Memory, Storage ,Network หรืออื่นๆ ตามแต่เราจะตั้งค่าเพื่อให้ตัว Software ทำการจับพฤติกรรมการทำงานของตัวเครื่อง Server

แต่ลำพังเจ้า Performance Monitor อย่างเดียวสำหรับการวิเคราะห์ระบบจะเป็นไปได้ยากเพราะเราต้องดู Graph หรือตัวเลขที่ระบบแสดงออกมาเท่านั้น ไม่สามารถวิเคราะห์ได้มากกว่านั้น เราจึงจำเป็นต้องมีผู้ช่วยเพื่อนำข้อมูลดิบที่เราได้นำมาวิเคราะห์เพิ่มเติม เช่น PAL หรือย่อมาจาก Performance Analysis of Logs โดย Software นี้สามารถวิเคราะห์ออกมาในรูปแบบของรายงานความผิดปกติต่างๆของ logs ที่เราได้ตามรูป


จากรูปด้านล่างเป็นตัวอย่างเทียบกันระหว่าง log ที่ได้จาก Performance Monitor ที่เป็นข้อมูลดิบ เมื่อเทียบกับ PAL หลังจากการจัดการในรูปแบบรายงานทำให้เราสามารถอ่านค่าต่างๆได้สะดวกมากขึ้น


รูปข้อมูลดิบที่ได้จาก Performance Monitor


รูปที่ผ่านการวิเคราะห์จาก PAL มาแล้ว


ทีนี้เรามาดู Case Study กันหน่อยนะครับหลังจากที่เราได้ข้อมูลดิบแล้วผ่านขบวนการวิเคราะห์ระบบมาแล้วเราได้อะไรจาก Report บ้างและเราแก้ไขปัญหาอย่างไร

ลูกค้ารายหนึ่งของผู้เขียนเจอปัญหาการใช้งาน Web Application ที่เป็น Core Business เกิดอาการใช้งานช้าในทุกช่วงเวลาที่มีลูกค้าเข้ามาใช้งานเป็นจำนวนมากโดยไม่ทราบสาเหตุ โดยเครื่อง Server หลังจากการตรวจสอบจากลูกค้าแจ้งเบื้องต้นว่าในส่วน Task Manager ในช่วงเวลาที่มีการใช้งานช้าพบว่า CPU, Memory ทั้งเครื่องที่เป็น Application Server และ Database Server ยังสามารถใช้งานได้ปกติโดยที่มีการใช้งานไม่เกิน 50% ของทรัพยากรของตัวเครื่องที่มี แต่มีอาการของการใช้งานที่ช้าลงอย่างมาก เป็นเฉพาะเวลาช่วงเย็นที่ต้องมีการสรุป Report ประจำวันโดยจำนวนคนไม่เยอะ ทั้งนี้เขียนเองได้มีโอกาสเข้าไปให้คำปรึกษาและมีการตรวจสอบและสอบถามพฤติกรรมการใช้งานในหลายๆ Scenario โดยระหว่างการตรวจสอบแก้ไขปัญหาที่เกิดขึ้นก็ได้มีการ Setup ระบบ Performance Monitor เพราะทางลูกค้าไม่มี Software ที่สามารถตรวจสอบการทำงานของตัวเครื่อง Server ได้ หลังจากนั้นก็ต้องรอระยะเวลาเพื่อให้ตัว Monitor ทำการตรวจสอบ Server ไปเรื่อยๆ โดย Trick อีกอย่างหนึ่งของการตรวจติดตาม Performance นั้นก็คือเรื่องเวลาในการตรวจจับ ควรจะต้องตั้งเพื่อตรวจสอบไปอย่างน้อย 1 เดือน เหตุผลเพราะว่า การที่เราจะสามารถตรวจดู root cause จริงๆของ Application ว่ามาอาการช้าหรือปัญหาอื่นๆนั้น เราไม่สามารถบอกได้ว่าพฤติกรรมที่แท้จริงของ End user เป็นอย่างไร และการใช้งานใน 1 เดือน อาจจะมีช่วงเวลาที่มีการใช้งานแบบปกติหรือมากกว่าปกติบ้างหรือไม่ หรืออาจจะเป็นแค่ช่วงปลายเดือนที่อาจจะมีการสรุปรายงานบางอย่าง ทำให้ทรัพยากรของเครื่องไม่พอกับช่วงนั้นๆ ก็เป็นได้ เพราะฉะนั้นเวลาขั้นต่ำที่เราควรจะตรวจสอบนั้นอย่างน้อย 1 เดือน หลังจากได้ข้อมูลต่างๆประกอบกับการวิเคราะห์แล้วนั้นทีมผู้เขียนก็พบสิ่งผิดปกติอย่างหนึ่งคือ Disk Read Latency ซึ่งในระบบเองมีการฟ้องว่า Latency ของ Disk ในการอ่านซึ่งมีมากกว่า 50ms ในช่วงเวลาที่ End Users ที่มีการสรุปรายงานประจำวัน ซึ่งก่อนหน้านี้ก็มีการใช้งานลักษณะนี้มาตลอดแต่ก็เพราะจำนวน Transaction รวมถึงธุรกิจที่ดำเนินการมีการเจริญเติบโตขึ้นเป็นอย่างมากเมื่อเทียบกับผลดำเนินธุรกิจในปีที่ผ่านมา อีกทั้งทางทีมได้พิจารณาต่อไปว่า Server เครื่องที่ใช้ทำหน้าที่ Database Server ใช้ Storage Tier แบบจานหมุนอีกทั้ง RAID ที่ใช้งานไม่เหมาะสมกับการใช้งานเป็น Database Server ทั้งนี้หลังจากการแก้ไขค่าต่างให้เหมาะสมมากขึ้นในระดับ Server Operating System รวมถึง Hardware ที่เหมาะสมทำให้ช่วยแก้ไขปัญหาที่เกิดขึ้นได้

เป็นไงบ้างครับอ่านมาถึงตรงนี้พอจะได้ idea ในการนำไปประยุกต์ใช้งานจริงบ้างไหมครับ สำหรับตัว Software ที่ใช้งานสามารถ Download มาใช้งานได้ฟรีนะครับผมจะทิ้ง link ไว้ใน reference site สามารถนำไปติดตั้งใช้งานดูได้นะครับ ในส่วนของ EP. หน้าผมจะมาเล่าเรื่องที่ทีมเราเจอเกี่ยวกับปัญหาที่เกิดกับ Database ให้ฟังกันนะครับว่าเป็นยังไงบ้างและเรามีวิธีการแก้ไขอย่างไร ทั้งนี้หากท่านผู้อ่านกำลังประสบปัญหาที่เกิดขึ้นในองค์กรในเรื่องของ Application, Server หรือ Network ต่างๆ สามารถติดต่อมาทางเราเพื่อให้เราเข้าไปช่วยเหลือได้ เพราะจุดแข็งของเราคือเรามีทีมพัฒนา Software, DBA , DevOps Engineer, System&Network Engineer รวมถึง Cybersecurity Expert ที่มีประสบกาณ์มากกว่า 10 ปีในวงการ IT พร้อมให้คำปรึกษาและแก้ไขปัญหาที่ทางผู้เขียนประสบณ์อยู่ ที่เบอร์โทรศัพท์ 02-513-9415-6 ติดต่อทีมขาย หรือที่ E-Mail : sales@tkl.co.th


Reference site:


Comments


bottom of page