Score:0

CentOS - ขนาดรายการของไดเร็กทอรีระดับบนสุดในโวลุ่ม NTFS ขนาด 50TB นั้นช้าเกินไป

ธง us

สิ่งที่ฉันต้องการบรรลุคือการได้รับข้อมูลเกี่ยวกับขนาดของโฟลเดอร์ระดับบนสุดในไดเร็กทอรี (ซึ่งเป็นไดรฟ์ข้อมูล NTFS) บนเซิร์ฟเวอร์ CentOS7 ข้อมูลนี้อยู่ในไฟล์ Prometheus ซึ่งใช้เพื่อส่งข้อมูลนี้ไปยังแดชบอร์ดของ Grafana

สคริปต์ที่ดำเนินการผ่านงาน cron ทุกวันมีลักษณะดังนี้:

#!/usr/bin/env ทุบตี

# สร้างเมตริกคอลเลกชัน Prometheus เกี่ยวกับโครงการ Jenkins การใช้ดิสก์บนระบบ
# ขณะนี้ ข้อมูลโฟลเดอร์ระดับบนสุดเท่านั้นที่รวบรวมเป็นไบต์

# ตัดทอนรายการไฟล์ข้อความล่าสุด เพื่อให้สามารถเตรียมพร้อมสำหรับการป้อนข้อมูลใหม่ล่าสุด
เสียงสะท้อน -n > /var/lib/node_exporter/textfile_collector/jenkins_projects_disk_size.prom

cd /jenkins/jobs # ไปที่ไดเร็กทอรี NTFS ซึ่งมีข้อมูลงานทั้งหมด
สำหรับ f ใน *; ทำ # ผ่านแต่ละโฟลเดอร์ระดับบนสุด
    ถ้า [ -d "$f" ]; แล้ว  
        # จะไม่ทำงานหากไม่มีไดเร็กทอรี
        prometheus_entry=$(du ${f} --block-size=1 --summarize "$@" | \ # รันคำสั่ง `du` สำหรับแต่ละโฟลเดอร์ระดับบนสุด เพื่อให้สามารถคำนวณขนาดได้ และบันทึก เอาต์พุตในรูปแบบ Prometheus
          sed -ne 's/\/\/;s/"/\"/g;s/^\([0-9]\+\)\t\(.*\)$/jenkins_directory_size_bytes {ไดเรกทอรี="\2"} \1/p') 
        echo $prometheus_entry >> /var/lib/node_exporter/textfile_collector/jenkins_projects_disk_size.prom 
    ไฟ
เสร็จแล้ว

ขณะนี้ใช้งานได้กับเซิร์ฟเวอร์ไม่กี่เครื่อง ซึ่งไม่มีไดเร็กทอรีขนาดใหญ่เมื่อเทียบกับเซิร์ฟเวอร์ที่มีปัญหา (500GB-1.5T) และยังทำงานได้ค่อนข้างเร็วอีกด้วย

ปัญหาปัจจุบันที่ฉันพบคือบนเซิร์ฟเวอร์ที่มีปัญหา โดยเฉพาะอย่างยิ่งขนาดของโฟลเดอร์นั้นค่อนข้างใหญ่ (50T) แน่นอนว่าด้วยขนาดที่คาดหวังได้ คำสั่ง du/df จึงช้ามาก (ฉันคิดว่าต้องใช้เวลามากกว่า 15-20 ชั่วโมงในการดำเนินการสคริปต์)

มีวิธีเพิ่มประสิทธิภาพกระบวนการนี้เพิ่มเติม หรือใช้แคชบางประเภทหรือวิธีอื่น (เช่น ด้วยเครื่องมืออื่น) หรือไม่ ฉันพยายามแล้ว เอ็นดูแต่มันเป็น GUI และฉันไม่สามารถแยกข้อมูลในแบบเดียวกับที่ฉันต้องการให้ Prometheus ทำงาน

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

cn flag
Bob
`df` รวดเร็ว ดังนั้นการวางไดเร็กทอรีนั้นไว้ในระบบไฟล์/วอลุ่ม/ดิสก์ของตัวเองจึงเป็นทางออกหนึ่ง `du` และผองเพื่อนจำเป็นต้องสำรวจแผนผังไดเร็กทอรีทั้งหมด และวิธีเดียวที่จะทำให้ AFAIK เร็วขึ้นได้ก็คือการทำให้ที่เก็บข้อมูลพื้นฐานเร็วขึ้น

โพสต์คำตอบ

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