เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

การพัฒนาระบบซอฟต์แวร์ทางอุตสาหกรรมจำเป็นต้องให้ความสนใจอย่างมากต่อความทนทานต่อข้อบกพร่องของผลิตภัณฑ์ขั้นสุดท้าย ตลอดจนการตอบสนองอย่างรวดเร็วต่อความล้มเหลวและความล้มเหลวหากเกิดขึ้น แน่นอนว่าการตรวจสอบช่วยตอบสนองต่อความล้มเหลวและความล้มเหลวได้อย่างมีประสิทธิภาพและรวดเร็วยิ่งขึ้น แต่ยังไม่เพียงพอ ประการแรก การติดตามเซิร์ฟเวอร์จำนวนมากเป็นเรื่องยากมาก - ต้องการคนจำนวนมาก ประการที่สอง คุณต้องมีความเข้าใจที่ดีเกี่ยวกับวิธีการทำงานของแอปพลิเคชันเพื่อที่จะคาดการณ์สถานะของแอปพลิเคชันได้ ดังนั้นเราจึงต้องการบุคลากรจำนวนมากที่มีความเข้าใจที่ดีเกี่ยวกับระบบที่เรากำลังพัฒนา รวมถึงประสิทธิภาพและฟีเจอร์ของระบบ สมมติว่าแม้ว่าคุณจะพบคนที่เต็มใจทำเช่นนี้มากพอ แต่ก็ยังต้องใช้เวลามากในการฝึกอบรมพวกเขา

จะทำอย่างไร? นี่คือจุดที่ปัญญาประดิษฐ์เข้ามาช่วยเหลือเรา ในบทความนี้จะพูดถึง การบำรุงรักษาเชิงคาดการณ์ (การบำรุงรักษาเชิงคาดการณ์) แนวทางนี้กำลังได้รับความนิยมอย่างแข็งขัน มีการเขียนบทความจำนวนมาก รวมถึงเรื่องHabréด้วย บริษัทขนาดใหญ่ใช้แนวทางนี้อย่างเต็มที่เพื่อรักษาประสิทธิภาพของเซิร์ฟเวอร์ของตน หลังจากศึกษาบทความจำนวนมากแล้ว เราก็ตัดสินใจลองใช้แนวทางนี้ มันมาจากอะไร?

การแนะนำ

ระบบซอฟต์แวร์ที่พัฒนาขึ้นไม่ช้าก็เร็วจะเริ่มทำงาน เป็นสิ่งสำคัญสำหรับผู้ใช้ที่ระบบทำงานโดยไม่มีข้อผิดพลาด หากเกิดเหตุฉุกเฉินควรแก้ไขโดยล่าช้าน้อยที่สุด

เพื่อลดความซับซ้อนในการสนับสนุนทางเทคนิคของระบบซอฟต์แวร์ โดยเฉพาะอย่างยิ่งหากมีเซิร์ฟเวอร์จำนวนมาก โปรแกรมตรวจสอบมักจะใช้ที่รับหน่วยวัดจากระบบซอฟต์แวร์ที่ทำงานอยู่ ทำให้สามารถวินิจฉัยสภาพของระบบและช่วยระบุสาเหตุที่ทำให้เกิดความล้มเหลวได้ กระบวนการนี้เรียกว่าการตรวจสอบระบบซอฟต์แวร์

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

รูปที่ 1. อินเทอร์เฟซการตรวจสอบ Grafana

ตัวชี้วัดเป็นตัวบ่งชี้ต่างๆ ของระบบซอฟต์แวร์ สภาพแวดล้อมการดำเนินการ หรือคอมพิวเตอร์จริงที่ระบบกำลังทำงานอยู่ โดยมีการประทับเวลาของช่วงเวลาที่ได้รับการวัด ในการวิเคราะห์แบบคงที่ หน่วยวัดเหล่านี้เรียกว่าอนุกรมเวลา ในการตรวจสอบสถานะของระบบซอฟต์แวร์ ตัวชี้วัดจะแสดงในรูปแบบของกราฟ: เวลาอยู่บนแกน X และค่าอยู่บนแกน Y (รูปที่ 1) สามารถดึงตัววัดได้หลายพันตัวจากระบบซอฟต์แวร์ที่ทำงานอยู่ (จากแต่ละโหนด) พวกมันก่อตัวเป็นปริภูมิของหน่วยเมตริก (อนุกรมเวลาแบบหลายมิติ)

เนื่องจากมีการรวบรวมตัววัดจำนวนมากสำหรับระบบซอฟต์แวร์ที่ซับซ้อน การตรวจสอบด้วยตนเองจึงกลายเป็นงานที่ยาก เพื่อลดปริมาณข้อมูลที่ผู้ดูแลระบบวิเคราะห์ เครื่องมือตรวจสอบจะมีเครื่องมือเพื่อระบุปัญหาที่อาจเกิดขึ้นโดยอัตโนมัติ ตัวอย่างเช่น คุณสามารถกำหนดค่าทริกเกอร์ให้เริ่มทำงานเมื่อพื้นที่ว่างในดิสก์ต่ำกว่าเกณฑ์ที่ระบุ คุณยังสามารถวินิจฉัยการปิดเซิร์ฟเวอร์หรือการชะลอตัวของบริการได้โดยอัตโนมัติ ในทางปฏิบัติ เครื่องมือตรวจสอบทำงานได้ดีในการตรวจจับความล้มเหลวที่เกิดขึ้นแล้ว หรือระบุอาการง่ายๆ ของความล้มเหลวในอนาคต แต่โดยทั่วไปแล้ว การทำนายความล้มเหลวที่เป็นไปได้ยังคงเป็นเรื่องยากที่จะถอดรหัส การทำนายผ่านการวิเคราะห์ตัวชี้วัดด้วยตนเองต้องอาศัยผู้เชี่ยวชาญที่มีคุณสมบัติเหมาะสม มันมีผลผลิตต่ำ ความล้มเหลวที่อาจเกิดขึ้นส่วนใหญ่อาจไม่มีใครสังเกตเห็น

เมื่อเร็วๆ นี้ สิ่งที่เรียกว่าการบำรุงรักษาระบบซอฟต์แวร์เชิงคาดการณ์ได้รับความนิยมเพิ่มมากขึ้นในกลุ่มบริษัทพัฒนาซอฟต์แวร์ไอทีขนาดใหญ่ สาระสำคัญของแนวทางนี้คือการค้นหาปัญหาที่นำไปสู่ความเสื่อมของระบบในระยะแรกก่อนที่จะล้มเหลว โดยใช้ปัญญาประดิษฐ์ วิธีการนี้ไม่ได้ยกเว้นการตรวจสอบระบบด้วยตนเองโดยสิ้นเชิง เป็นส่วนช่วยในกระบวนการติดตามผลโดยรวม

เครื่องมือหลักสำหรับการดำเนินการบำรุงรักษาเชิงคาดการณ์คือการค้นหาความผิดปกติในอนุกรมเวลาตั้งแต่นั้นเป็นต้นมา เมื่อมีความผิดปกติเกิดขึ้น ในข้อมูลมีความเป็นไปได้สูงว่าหลังจากผ่านไประยะหนึ่ง จะมีความล้มเหลวหรือความล้มเหลว. ความผิดปกติคือการเบี่ยงเบนบางประการในประสิทธิภาพของระบบซอฟต์แวร์ เช่น การระบุความเสื่อมในความเร็วในการดำเนินการของคำขอประเภทหนึ่ง หรือการลดลงของจำนวนคำขอที่ให้บริการโดยเฉลี่ยที่ระดับเซสชันของไคลเอนต์คงที่

งานค้นหาความผิดปกติของระบบซอฟต์แวร์มีลักษณะเฉพาะของตัวเอง ตามทฤษฎีแล้ว สำหรับแต่ละระบบซอฟต์แวร์มีความจำเป็นต้องพัฒนาหรือปรับแต่งวิธีการที่มีอยู่ เนื่องจากการค้นหาความผิดปกตินั้นขึ้นอยู่กับข้อมูลที่ดำเนินการอย่างมาก และข้อมูลของระบบซอฟต์แวร์จะแตกต่างกันอย่างมากขึ้นอยู่กับเครื่องมือสำหรับการนำระบบไปใช้ ลงไปถึงคอมพิวเตอร์เครื่องที่กำลังทำงานอยู่

วิธีค้นหาความผิดปกติเมื่อทำนายความล้มเหลวของระบบซอฟต์แวร์

ก่อนอื่นควรบอกว่าแนวคิดในการทำนายความล้มเหลวนั้นได้รับแรงบันดาลใจจากบทความนี้ “แมชชีนเลิร์นนิงในการตรวจสอบไอที”. เพื่อทดสอบประสิทธิภาพของแนวทางด้วยการค้นหาความผิดปกติโดยอัตโนมัติ จึงได้เลือกระบบซอฟต์แวร์ Web-Consolidation ซึ่งเป็นหนึ่งในโครงการของบริษัท NPO Krista ก่อนหน้านี้ การตรวจสอบด้วยตนเองได้ดำเนินการตามตัวชี้วัดที่ได้รับ เนื่องจากระบบค่อนข้างซับซ้อน จึงมีการใช้ตัวชี้วัดจำนวนมาก: ตัวบ่งชี้ JVM (โหลดตัวรวบรวมขยะ), ตัวบ่งชี้ของระบบปฏิบัติการที่เรียกใช้โค้ด (หน่วยความจำเสมือน, โหลด CPU % ของระบบปฏิบัติการ), ตัวบ่งชี้เครือข่าย (โหลดเครือข่าย ) เซิร์ฟเวอร์เอง (โหลดของ CPU หน่วยความจำ) ตัววัด wildfly และตัววัดของแอปพลิเคชันเองสำหรับระบบย่อยที่สำคัญทั้งหมด

หน่วยเมตริกทั้งหมดนำมาจากระบบโดยใช้กราไฟท์ เริ่มแรก ฐานข้อมูลกระซิบถูกใช้เป็นโซลูชันมาตรฐานสำหรับ Grafana แต่เมื่อฐานลูกค้าเพิ่มขึ้น กราไฟท์ก็ไม่สามารถรับมือได้อีกต่อไป เนื่องจากความจุของระบบย่อยดิสก์ DC หมดลง หลังจากนั้นจึงตัดสินใจหาทางแก้ไขที่มีประสิทธิภาพมากขึ้น ทางเลือกได้รับความโปรดปราน กราไฟท์+คลิกเฮาส์ซึ่งทำให้สามารถลดภาระบนระบบย่อยของดิสก์ตามลำดับความสำคัญและลดพื้นที่ดิสก์ที่ถูกครอบครองได้ห้าถึงหกเท่า ด้านล่างนี้เป็นแผนภาพกลไกในการรวบรวมหน่วยเมตริกโดยใช้กราไฟท์+คลิกเฮาส์ (รูปที่ 2)

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

รูปที่ 2 โครงการรวบรวมเมตริก

แผนภาพนี้นำมาจากเอกสารภายใน มันแสดงการสื่อสารระหว่างกราฟาน่า (UI การตรวจสอบที่เราใช้) และกราไฟท์ การลบหน่วยเมตริกออกจากแอปพลิเคชันทำได้โดยใช้ซอฟต์แวร์แยกต่างหาก - เจเอ็มเอ็กซ์ทรานส์. เขาใส่มันลงในกราไฟท์
ระบบ Web Consolidation มีคุณลักษณะหลายประการที่สร้างปัญหาในการทำนายความล้มเหลว:

  1. แนวโน้มมักจะเปลี่ยนแปลง มีเวอร์ชันต่างๆ ให้เลือกสำหรับระบบซอฟต์แวร์นี้ แต่ละรายการนำการเปลี่ยนแปลงมาสู่ส่วนซอฟต์แวร์ของระบบ ดังนั้น ด้วยวิธีนี้ นักพัฒนาจะมีอิทธิพลโดยตรงต่อตัวชี้วัดของระบบที่กำหนด และอาจทำให้เกิดการเปลี่ยนแปลงแนวโน้มได้
  2. คุณลักษณะการใช้งานตลอดจนวัตถุประสงค์ที่ไคลเอนต์ใช้ระบบนี้ มักจะทำให้เกิดความผิดปกติโดยไม่เสื่อมคุณภาพก่อนหน้านี้
  3. เปอร์เซ็นต์ของความผิดปกติที่เกี่ยวข้องกับชุดข้อมูลทั้งหมดมีขนาดเล็ก (< 5%)
  4. อาจมีช่องว่างในการรับตัวบ่งชี้จากระบบ ในช่วงเวลาสั้นๆ ระบบตรวจสอบไม่สามารถรับเมตริกได้ เช่น หากเซิร์ฟเวอร์โอเวอร์โหลด นี่เป็นสิ่งสำคัญสำหรับการฝึกอบรมโครงข่ายประสาทเทียม จำเป็นต้องเติมช่องว่างสังเคราะห์
  5. กรณีที่มีความผิดปกติมักจะเกี่ยวข้องกับวันที่/เดือน/เวลาที่ระบุเท่านั้น (ฤดูกาล) ระบบนี้มีกฎระเบียบที่ชัดเจนสำหรับการใช้งานโดยผู้ใช้ ดังนั้น เมตริกจึงมีความเกี่ยวข้องในช่วงเวลาหนึ่งเท่านั้น ระบบไม่สามารถใช้งานได้ต่อเนื่องแต่เฉพาะบางเดือนเท่านั้น: สามารถเลือกได้ขึ้นอยู่กับปี สถานการณ์เกิดขึ้นเมื่อพฤติกรรมเดียวกันของหน่วยวัดในกรณีหนึ่งสามารถนำไปสู่ความล้มเหลวของระบบซอฟต์แวร์ แต่ไม่ใช่ในอีกกรณีหนึ่ง
    เริ่มต้นด้วยการวิเคราะห์วิธีการตรวจจับความผิดปกติในการตรวจสอบข้อมูลของระบบซอฟต์แวร์ ในบทความในหัวข้อนี้ เมื่อเปอร์เซ็นต์ของความผิดปกติมีน้อยเมื่อเทียบกับส่วนที่เหลือของชุดข้อมูล มักเสนอให้ใช้โครงข่ายประสาทเทียม

ตรรกะพื้นฐานในการค้นหาความผิดปกติโดยใช้ข้อมูลโครงข่ายประสาทเทียมแสดงในรูปที่ 3:

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

รูปที่ 3 การค้นหาความผิดปกติโดยใช้โครงข่ายประสาทเทียม

ขึ้นอยู่กับผลลัพธ์ของการคาดการณ์หรือการฟื้นฟูหน้าต่างกระแสปัจจุบันของการวัด ค่าเบี่ยงเบนจากที่ได้รับจากระบบซอฟต์แวร์ที่ทำงานอยู่จะถูกคำนวณ หากมีความแตกต่างอย่างมากระหว่างตัวชี้วัดที่ได้รับจากระบบซอฟต์แวร์และโครงข่ายประสาทเทียม เราสามารถสรุปได้ว่าส่วนข้อมูลปัจจุบันมีความผิดปกติ ชุดปัญหาต่อไปนี้เกิดขึ้นสำหรับการใช้โครงข่ายประสาทเทียม:

  1. เพื่อให้ทำงานได้อย่างถูกต้องในโหมดสตรีมมิ่ง ข้อมูลสำหรับการฝึกโมเดลโครงข่ายประสาทเทียมจะต้องมีเฉพาะข้อมูล "ปกติ" เท่านั้น
  2. จำเป็นต้องมีโมเดลที่ทันสมัยเพื่อการตรวจจับที่ถูกต้อง การเปลี่ยนแปลงแนวโน้มและฤดูกาลในเมตริกอาจทำให้เกิดผลบวกลวงจำนวนมากในโมเดล หากต้องการอัปเดต จำเป็นต้องกำหนดเวลาที่โมเดลล้าสมัยอย่างชัดเจน หากคุณอัปเดตโมเดลในภายหลังหรือเร็วกว่านั้น ก็มีแนวโน้มว่าผลบวกลวงจำนวนมากจะตามมา
    เราต้องไม่ลืมเกี่ยวกับการค้นหาและป้องกันการเกิดผลบวกลวงบ่อยครั้ง สันนิษฐานว่าส่วนใหญ่มักเกิดขึ้นในสถานการณ์ฉุกเฉิน อย่างไรก็ตาม อาจเป็นผลมาจากข้อผิดพลาดของโครงข่ายประสาทเทียมเนื่องจากการฝึกอบรมไม่เพียงพอ จำเป็นต้องลดจำนวนผลบวกลวงของแบบจำลองให้เหลือน้อยที่สุด มิฉะนั้นการคาดการณ์ที่ผิดพลาดจะทำให้ผู้ดูแลระบบเสียเวลามากในการตรวจสอบระบบ ไม่ช้าก็เร็วผู้ดูแลระบบจะหยุดตอบสนองต่อระบบการตรวจสอบ "หวาดระแวง"

โครงข่ายประสาทเทียมที่เกิดซ้ำ

หากต้องการตรวจจับความผิดปกติในอนุกรมเวลา คุณสามารถใช้ โครงข่ายประสาทเทียมที่เกิดซ้ำ พร้อมหน่วยความจำ LSTM ปัญหาเดียวคือสามารถใช้ได้เฉพาะกับอนุกรมเวลาที่คาดการณ์ไว้เท่านั้น ในกรณีของเรา เมตริกบางรายการไม่สามารถคาดเดาได้ ความพยายามในการใช้ RNN LSTM กับอนุกรมเวลาแสดงในรูปที่ 4

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

รูปที่ 4 ตัวอย่างโครงข่ายประสาทเทียมที่เกิดซ้ำพร้อมเซลล์หน่วยความจำ LSTM

ดังที่เห็นได้จากรูปที่ 4 RNN LSTM สามารถรับมือกับการค้นหาความผิดปกติในช่วงเวลานี้ได้ ในกรณีที่ผลลัพธ์มีข้อผิดพลาดในการทำนายสูง (ข้อผิดพลาดเฉลี่ย) ก็มีความผิดปกติในตัวบ่งชี้เกิดขึ้นจริง การใช้ RNN LSTM เดียวจะไม่เพียงพออย่างชัดเจน เนื่องจากใช้ได้กับเมตริกจำนวนไม่มาก สามารถใช้เป็นวิธีการเสริมในการค้นหาความผิดปกติได้

โปรแกรมเข้ารหัสอัตโนมัติสำหรับการทำนายความล้มเหลว

โปรแกรมเข้ารหัสอัตโนมัติ – โดยพื้นฐานแล้วคือโครงข่ายประสาทเทียม ชั้นอินพุตคือตัวเข้ารหัส ส่วนเอาต์พุตคือตัวถอดรหัส ข้อเสียของโครงข่ายประสาทเทียมประเภทนี้คือไม่สามารถระบุตำแหน่งความผิดปกติได้ดี เลือกสถาปัตยกรรมตัวเข้ารหัสอัตโนมัติแบบซิงโครนัส

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

รูปที่ 5 ตัวอย่างการทำงานของโปรแกรมเข้ารหัสอัตโนมัติ

ตัวเข้ารหัสอัตโนมัติได้รับการฝึกฝนกับข้อมูลปกติ จากนั้นจะพบสิ่งผิดปกติในข้อมูลที่ป้อนให้กับโมเดล สิ่งที่คุณต้องการสำหรับงานนี้ สิ่งที่เหลืออยู่คือการเลือกตัวเข้ารหัสอัตโนมัติที่เหมาะกับงานนี้ รูปแบบที่ง่ายที่สุดทางสถาปัตยกรรมของตัวเข้ารหัสอัตโนมัติคือโครงข่ายประสาทเทียมแบบส่งต่อและไม่ส่งคืน ซึ่งคล้ายกับมากกับ เพอร์เซปตรอนหลายชั้น (multilayer perceptron, MLP) โดยมีเลเยอร์อินพุต เลเยอร์เอาท์พุต และเลเยอร์ที่ซ่อนอยู่อย่างน้อยหนึ่งเลเยอร์เชื่อมต่อกัน
อย่างไรก็ตาม ความแตกต่างระหว่างตัวเข้ารหัสอัตโนมัติและ MLP ก็คือในตัวเข้ารหัสอัตโนมัติ เลเยอร์เอาท์พุตจะมีจำนวนโหนดเท่ากันกับเลเยอร์อินพุต และแทนที่จะได้รับการฝึกให้ทำนายค่าเป้าหมาย Y ที่กำหนดโดยอินพุต X ตัวเข้ารหัสอัตโนมัติจะได้รับการฝึก เพื่อสร้าง X ของตัวเองขึ้นใหม่ ดังนั้น ตัวเข้ารหัสอัตโนมัติจึงเป็นโมเดลการเรียนรู้แบบไม่มีผู้ดูแล

งานของตัวเข้ารหัสอัตโนมัติคือการค้นหาดัชนีเวลา r0 ... rn ที่สอดคล้องกับองค์ประกอบที่ผิดปกติในเวกเตอร์อินพุต X เอฟเฟกต์นี้ทำได้โดยการค้นหาข้อผิดพลาดกำลังสอง

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

รูปที่ 6 ตัวเข้ารหัสอัตโนมัติแบบซิงโครนัส

สำหรับตัวเข้ารหัสอัตโนมัติที่ถูกเลือก สถาปัตยกรรมแบบซิงโครนัส. ข้อดี: ความสามารถในการใช้โหมดการประมวลผลแบบสตรีมมิ่งและพารามิเตอร์โครงข่ายประสาทเทียมจำนวนค่อนข้างน้อยเมื่อเทียบกับสถาปัตยกรรมอื่นๆ

กลไกในการลดผลบวกลวงให้เหลือน้อยที่สุด

เนื่องจากสถานการณ์ที่ผิดปกติต่างๆ เกิดขึ้น รวมถึงสถานการณ์ที่เป็นไปได้ของการฝึกอบรมโครงข่ายประสาทเทียมที่ไม่เพียงพอ สำหรับรูปแบบการตรวจจับความผิดปกติที่กำลังได้รับการพัฒนา จึงตัดสินใจว่าจำเป็นต้องพัฒนากลไกในการลดผลบวกลวงให้เหลือน้อยที่สุด กลไกนี้จะขึ้นอยู่กับฐานข้อมูลเทมเพลตที่จัดประเภทโดยผู้ดูแลระบบ

อัลกอริทึมสำหรับการแปลงไทม์ไลน์แบบไดนามิก (อัลกอริธึม DTW จากการแปรปรวนเวลาแบบไดนามิกภาษาอังกฤษ) ช่วยให้คุณค้นหาความสอดคล้องที่เหมาะสมที่สุดระหว่างลำดับเวลา ใช้ครั้งแรกในการรู้จำเสียง: ใช้เพื่อกำหนดว่าสัญญาณเสียงพูดสองเสียงแสดงถึงวลีที่พูดต้นฉบับเดียวกันอย่างไร ต่อมาพบการประยุกต์ใช้ในพื้นที่อื่นๆ

หลักการสำคัญของการลดผลบวกลวงให้เหลือน้อยที่สุดคือการรวบรวมฐานข้อมูลมาตรฐานด้วยความช่วยเหลือจากผู้ปฏิบัติงานที่จำแนกกรณีที่น่าสงสัยที่ตรวจพบโดยใช้โครงข่ายประสาทเทียม ต่อไปจะเปรียบเทียบมาตรฐานจำแนกกับกรณีที่ระบบตรวจพบ และสรุปว่ากรณีดังกล่าวเป็นเท็จหรือนำไปสู่ความล้มเหลว อัลกอริธึม DTW ถูกใช้อย่างแม่นยำเพื่อเปรียบเทียบอนุกรมเวลาสองชุด เครื่องมือย่อขนาดหลักยังคงจัดหมวดหมู่อยู่ คาดว่าหลังจากรวบรวมกรณีอ้างอิงได้จำนวนมาก ระบบจะเริ่มถามผู้ปฏิบัติงานน้อยลง เนื่องจากความคล้ายคลึงกันของกรณีส่วนใหญ่และการเกิดขึ้นของกรณีที่คล้ายกัน

ด้วยเหตุนี้ ตามวิธีการของโครงข่ายประสาทเทียมที่อธิบายไว้ข้างต้น โปรแกรมทดลองจึงถูกสร้างขึ้นเพื่อทำนายความล้มเหลวของระบบ "การรวมเว็บ" เป้าหมายของโปรแกรมนี้คือการใช้ที่เก็บข้อมูลการตรวจสอบที่มีอยู่และข้อมูลเกี่ยวกับความล้มเหลวก่อนหน้านี้ เพื่อประเมินความสามารถของแนวทางนี้สำหรับระบบซอฟต์แวร์ของเรา โครงร่างของโปรแกรมแสดงไว้ด้านล่างในรูปที่ 7

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

รูปที่ 7 รูปแบบการทำนายความล้มเหลวตามการวิเคราะห์พื้นที่เมตริก

ในแผนภาพ สามารถแยกแยะบล็อกหลักได้สองบล็อก: การค้นหาช่วงเวลาที่ผิดปกติในสตรีมข้อมูลการตรวจสอบ (หน่วยเมตริก) และกลไกในการลดผลบวกลวงให้เหลือน้อยที่สุด หมายเหตุ: เพื่อวัตถุประสงค์ในการทดลอง ข้อมูลจะได้รับผ่านการเชื่อมต่อ JDBC จากฐานข้อมูลที่กราไฟท์จะบันทึกไว้
ต่อไปนี้เป็นอินเทอร์เฟซของระบบตรวจสอบที่ได้รับจากการพัฒนา (รูปที่ 8)

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

รูปที่ 8 อินเทอร์เฟซของระบบติดตามการทดลอง

อินเทอร์เฟซแสดงเปอร์เซ็นต์ของความผิดปกติตามเกณฑ์ชี้วัดที่ได้รับ ในกรณีของเรา ใบเสร็จรับเงินเป็นการจำลอง เรามีข้อมูลทั้งหมดมาหลายสัปดาห์แล้ว และกำลังโหลดข้อมูลทีละน้อยเพื่อตรวจสอบกรณีความผิดปกติที่นำไปสู่ความล้มเหลว แถบสถานะด้านล่างจะแสดงเปอร์เซ็นต์โดยรวมของความผิดปกติของข้อมูล ณ เวลาที่กำหนด ซึ่งกำหนดโดยใช้โปรแกรมเข้ารหัสอัตโนมัติ นอกจากนี้ เปอร์เซ็นต์ที่แยกต่างหากจะแสดงสำหรับตัวชี้วัดที่คาดการณ์ ซึ่งคำนวณโดย RNN LSTM

ตัวอย่างการตรวจจับความผิดปกติตามประสิทธิภาพของ CPU โดยใช้โครงข่ายประสาทเทียม RNN LSTM (รูปที่ 9)

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

รูปที่ 9 การค้นพบ RNN LSTM

กรณีที่ค่อนข้างง่าย โดยพื้นฐานแล้วเป็นค่าผิดปกติทั่วไป แต่นำไปสู่ความล้มเหลวของระบบ ได้รับการคำนวณโดยใช้ RNN LSTM ได้สำเร็จ ตัวบ่งชี้ความผิดปกติในช่วงเวลานี้คือ 85–95% ทุกอย่างที่สูงกว่า 80% (เกณฑ์ถูกกำหนดโดยการทดลอง) ถือเป็นความผิดปกติ
ตัวอย่างการตรวจจับความผิดปกติเมื่อระบบไม่สามารถบูตได้หลังจากการอัพเดต สถานการณ์นี้ตรวจพบโดยตัวเข้ารหัสอัตโนมัติ (รูปที่ 10)

เรามองหาความผิดปกติและคาดการณ์ความล้มเหลวโดยใช้โครงข่ายประสาทเทียม

รูปที่ 10 ตัวอย่างการตรวจจับการเข้ารหัสอัตโนมัติ

ดังที่คุณเห็นจากภาพ PermGen ติดอยู่ที่ระดับหนึ่ง โปรแกรมเข้ารหัสอัตโนมัติพบว่าสิ่งนี้แปลกเพราะไม่เคยเห็นอะไรแบบนี้มาก่อน ที่นี่ความผิดปกติยังคงอยู่ 100% จนกว่าระบบจะกลับสู่สถานะการทำงาน มีการแสดงความผิดปกติสำหรับเมตริกทั้งหมด ตามที่กล่าวไว้ข้างต้น ตัวเข้ารหัสอัตโนมัติไม่สามารถจำกัดตำแหน่งความผิดปกติได้ ผู้ปฏิบัติงานจะถูกเรียกให้ทำหน้าที่นี้ในสถานการณ์เหล่านี้

ข้อสรุป

พีซี "การรวมเว็บ" ได้รับการพัฒนามาหลายปีแล้ว ระบบอยู่ในสถานะที่ค่อนข้างเสถียร และจำนวนเหตุการณ์ที่บันทึกไว้มีน้อย อย่างไรก็ตาม สามารถพบความผิดปกติที่นำไปสู่ความล้มเหลวได้ 5 ถึง 10 นาทีก่อนเกิดความล้มเหลว ในบางกรณี การแจ้งข้อผิดพลาดล่วงหน้าจะช่วยประหยัดเวลาที่กำหนดไว้ในการดำเนินการ "ซ่อมแซม"

จากการทดลองที่ดำเนินการ ยังเร็วเกินไปที่จะสรุปขั้นสุดท้าย จนถึงขณะนี้ผลลัพธ์มีความขัดแย้งกัน ในด้านหนึ่ง เป็นที่ชัดเจนว่าอัลกอริธึมที่ใช้โครงข่ายประสาทเทียมสามารถค้นหาความผิดปกติที่ "มีประโยชน์" ได้ ในทางกลับกัน ยังมีผลบวกลวงจำนวนมาก และไม่สามารถตรวจพบความผิดปกติทั้งหมดที่ผู้เชี่ยวชาญที่มีคุณสมบัติในโครงข่ายประสาทเทียมตรวจพบได้ ข้อเสียรวมถึงความจริงที่ว่าขณะนี้โครงข่ายประสาทเทียมต้องได้รับการฝึกอบรมกับครูเพื่อการทำงานตามปกติ

เพื่อพัฒนาระบบการทำนายความล้มเหลวเพิ่มเติมและนำไปสู่สถานะที่น่าพอใจ สามารถทำได้หลายวิธี นี่คือการวิเคราะห์โดยละเอียดเพิ่มเติมเกี่ยวกับกรณีที่มีความผิดปกติที่นำไปสู่ความล้มเหลว เนื่องจากมีการเพิ่มรายการตัวชี้วัดสำคัญที่มีอิทธิพลอย่างมากต่อสถานะของระบบ และการละทิ้งสิ่งที่ไม่จำเป็นซึ่งไม่ส่งผลกระทบต่อมัน นอกจากนี้ หากเราเคลื่อนไปในทิศทางนี้ เราก็สามารถพยายามสร้างอัลกอริธึมเฉพาะทางสำหรับกรณีของเราโดยเฉพาะซึ่งมีความผิดปกติที่นำไปสู่ความล้มเหลวได้ มีอีกวิธีหนึ่ง นี่คือการปรับปรุงสถาปัตยกรรมโครงข่ายประสาทเทียม และด้วยเหตุนี้จึงเพิ่มความแม่นยำในการตรวจจับด้วยการลดเวลาการฝึกอบรม

ฉันแสดงความขอบคุณต่อเพื่อนร่วมงานที่ช่วยฉันเขียนและรักษาความเกี่ยวข้องของบทความนี้: วิคเตอร์ เวอร์บิทสกี้ และเซอร์เก ฟิโนเจนอฟ

ที่มา: will.com

เพิ่มความคิดเห็น