การคำนวณวันจนกว่าดิสก์จะเต็ม


9

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

ฉันต้องการได้รับการแจ้งเตือนที่ชาญฉลาด - สิ่งที่ฉันสนใจจริงๆคือ "ฉันต้องใช้เวลานานแค่ไหนก่อนที่ฉันจะต้องทำอะไรบางอย่างเกี่ยวกับพื้นที่ว่าง" เช่นถ้าแนวโน้มแสดงว่าใน 7 วันฉันจะหมดดิสก์ เว้นวรรคแล้วยกคำเตือนหากน้อยกว่า 2 วันให้เพิ่มข้อผิดพลาด

อินเทอร์เฟซแดชบอร์ดมาตรฐานของกราไฟต์นั้นค่อนข้างฉลาดด้วยอนุพันธ์และ Holt Winters Confidence bands แต่จนถึงตอนนี้ฉันยังไม่พบวิธีแปลงสิ่งนี้เป็นตัวชี้วัดที่สามารถดำเนินการได้ ฉันยังพอใจกับการบดตัวเลขด้วยวิธีอื่น ๆ (เพียงดึงตัวเลขดิบจากแกรไฟต์และเรียกใช้สคริปต์เพื่อทำเช่นนั้น)

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

มีใครทำเช่นนี้?


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

The volume of crap people have to store will expand to fill the disk available.- Sysadmin สัจพจน์เก่า
voretaq7

เซิร์ฟเวอร์ของเราถูกแบ่งระหว่าง VMware VM โดยใช้ IBM XIV สำหรับดิสก์และ KVM โดยใช้ SD ท้องถิ่น ฉันไม่แน่ใจว่าเราสามารถเข้าถึงข้อมูลประเภทนั้นได้ (ทีมของฉันไม่ได้จัดการ VMware หรือ XIV) และต้องการโซลูชันที่ไม่ขึ้นกับผลิตภัณฑ์
Amos Shapira

คำตอบ:


8

สุจริต "จนถึงวันที่เต็ม" เป็นตัวชี้วัดที่น่ากลัวจริงๆแล้ว - ระบบไฟล์จะได้รับโง่จริงๆเมื่อพวกเขาเข้าใกล้การใช้งาน 100%
ฉันขอแนะนำให้ใช้แบบดั้งเดิม 85%, 90%, เกณฑ์ 95% (คำเตือน, การเตือน, และสำคัญที่คุณต้องแก้ไขจริงๆ - ตอนนี้ตามลำดับ) - นี่ควรให้เวลาเตือนคุณมากมายเกี่ยวกับดิสก์ที่ทันสมัย (สมมติว่าไดรฟ์ 1TB: 85% ของเทราไบต์ยังทำให้คุณมีพื้นที่เหลือเฟือ แต่คุณตระหนักถึงปัญหาที่อาจเกิดขึ้น 90% คุณควรวางแผนที่จะขยายดิสก์หรือลดขนาดอื่น ๆ และที่ 95% ของเทราไบต์ คุณเหลือ 50GB แล้วและควรมีการแก้ไขปัญหาอย่างดี)

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

หากดิสก์ของคุณไม่ทันสมัย ​​(หรือรูปแบบการใช้งานของคุณเกี่ยวข้องกับข้อมูลจำนวนมากที่ถูกโยนลงบนดิสก์) คุณสามารถปรับเปลี่ยนเกณฑ์ได้อย่างง่ายดาย


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

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

การฉายภาพเฉพาะที่คุณใช้ (อัตราการเปลี่ยนแปลงที่เล็กที่สุด, อัตราการเปลี่ยนแปลงที่ใหญ่ที่สุด, อัตราการเปลี่ยนแปลงโดยเฉลี่ย, ค่าเฉลี่ยถ่วงน้ำหนัก, ฯลฯ .... ) ขึ้นอยู่กับสภาพแวดล้อมของคุณ เครื่องมือของ IBM นำเสนอมุมมองที่แตกต่างกันมากมายเพราะเป็นการยากที่จะ จำกัด รูปแบบที่เหมาะกับทุกคน


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


ขอบคุณสำหรับข้อมูลเชิงลึกของคุณ ฉันเห็นคะแนนของคุณ ฉันยังคิดว่าเกณฑ์คงที่เพียงพยายามสะท้อนให้เห็นว่า "ฉันต้องแก้ไขนานแค่ไหน" และรู้สึกถึงความเห็นที่ค่อนข้างชัดเจนจากความคิดเห็น "ปรับเกณฑ์ของคุณ" อนุพันธ์ของแกรไฟต์ธรรมดาไม่ทำงานเพราะกราฟดั้งเดิมไม่ราบรื่น ขอบคุณสำหรับตัวชี้ไปยังเครื่องมือของ IBM สิ่งที่คุณอธิบายเสียงเหมือนกับที่ฉันเริ่มคิด (แยกสองขั้นต่ำล่าสุดและคำนวณความชันจากพวกเขา)
Amos Shapira

แน่นอนว่าการวัด 'วันถึงเต็ม' คือด้วยเกณฑ์คงที่ 85/90/95 คุณไม่ทราบว่าดิสก์บรรจุข้อมูลอย่างรวดเร็วเพียงใด แน่นอนว่าคุณทราบถึงปัญหาที่อาจเกิดขึ้น แต่คุณจะทราบได้อย่างไรว่าคุณมีวันที่จะจัดการปัญหาหรือสัปดาห์ / เดือน

ฉันคิดว่ามันน่าสนใจจริง ๆ ที่คุณจะมีความคิดเห็นนี้ ให้ฉันทำแบบนี้: บริษัท ของคุณมีกระบวนการจัดซื้อจัดจ้างที่ใช้เวลาประมาณ 6 สัปดาห์ระหว่างการร้องขอเริ่มต้นสำหรับฮาร์ดไดรฟ์เพิ่มเติมจนถึงวันที่ฮาร์ดไดรฟ์เหล่านั้นติดตั้งจริงในกล่องและเริ่มการกระจายโหลดใหม่ ระบุว่ากรอบเวลา 6 สัปดาห์ที่ดิสก์% คุณต้องการได้รับแจ้งเพื่อให้สามารถติดตั้งดิสก์ได้ทันเวลา 80%? 75%? ข้อเท็จจริงของเรื่องนี้คือคุณไม่รู้ว่านอกจากคุณจะใช้ความพยายามในการคำนวณอัตราการเติบโตแล้ว
JHixson

2

เมื่อไม่นานมานี้เราได้เปิดตัวโซลูชันที่กำหนดเองโดยใช้การถดถอยเชิงเส้น

ในระบบของเราแหล่งที่มาหลักของการใช้ดิสก์หมดคือไฟล์บันทึกการจรจัดที่ไม่ถูกหมุน

เนื่องจากสิ่งเหล่านี้เติบโตขึ้นอย่างคาดเดาได้เราสามารถทำการถดถอยเชิงเส้นในการใช้ประโยชน์ดิสก์ (เช่นz = numpy.polyfit(times, utilization, 1)) จากนั้นคำนวณเครื่องหมาย 100% ที่ได้รับจากตัวแบบเชิงเส้น (เช่น(100 - z[1]) / z[0])

การนำไปใช้งานที่มีลักษณะเช่นนี้โดยใช้ ruby ​​และ GSL แม้ว่าจำนวน numpy ก็ใช้ได้ดีเช่นกัน

การป้อนข้อมูลการใช้งานเฉลี่ยสัปดาห์ละครั้งในช่วง 90 นาที (112 คะแนน) สามารถเลือกผู้สมัครที่มีแนวโน้มว่าจะหมดเรี่ยวแรงของดิสก์โดยไม่มีสัญญาณรบกวนมากเกินไป

คลาสในส่วนสำคัญถูกห่อในคลาสที่ดึงข้อมูลจากหน่วยลาดตระเวนแจ้งเตือนไปยังหย่อนและส่ง telemetry รันไทม์ไปยัง statsd ฉันจะปล่อยบิตนั้นออกไปเพราะมันเฉพาะกับโครงสร้างพื้นฐานของเรา


ฉันได้อัปเดตคำตอบด้วยข้อมูลบางส่วนแล้วในขณะนี้
matschaffer

1
เพิ่งพบ gotcha ตลกด้วยวิธีนี้ เรามีสัญญาณเตือน 90% หนึ่งในโฮสต์ของเราเติบโตขึ้นเรื่อย ๆ จนถึง 90% และทริกเกอร์สัญญาณเตือนนั้นแม้ว่ามันจะยังมีมากกว่าหนึ่งสัปดาห์ก่อนที่จะกดปุ่ม 100% ดังนั้นการแจ้งเตือนแบบคาดการณ์ไม่เคยถูกยิง;) เดาว่าฉันควรใช้(90 - z[1]) / z[0]แทน
matschaffer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.