ฉันจะดูภาพพื้นที่ว่างในฮาร์ดดิสก์ด้วยไฟล์นับล้านได้อย่างไร


18

เรามีฮาร์ดดิสก์ที่มี 600 กิ๊กและเกือบเต็มแล้ว มันเต็มไปด้วย 18,501,765 ไฟล์ (ส่วนใหญ่เป็นรูปภาพขนาดเล็ก 19k) และ 7,142,132 โฟลเดอร์ เป็นเรื่องยากมากที่จะทราบว่าพื้นที่ทั้งหมดไปด้วยหรือไม่ ขั้นตอนการล้างข้อมูลตามปกติของเราไม่ได้เป็นการล้างพื้นที่เพียงพอซึ่งหมายความว่าเราต้องดูไดรฟ์นี้โดยรวมแล้วพิจารณาว่ามีอะไรบ้างและสามารถเคลื่อนย้ายหรือลบออกได้ เราได้ลองใช้งานแอปพลิเคชั่นหลายตัวและจนถึงขั้นตอนนี้พวกเขาจะระเบิดหรือวิ่งไปตามเวลาที่น่าทึ่ง

ข้อมูลเซิร์ฟเวอร์

  • ระบบปฏิบัติการ: Windows Server 2003
  • ระบบไฟล์: NTFS

วิธีการแก้

ObServer Spaceสามารถอ่านไฟล์ได้ 18,501,765 ไฟล์และ 7,142,132 โฟลเดอร์โดยไม่ต้องใช้หน่วยความจำใด ๆ เลย ฉันแน่ใจว่าส่วนใหญ่เป็นเพราะความจริงที่ว่ามันใช้แบ็กเอนด์ SQL เพื่อจัดเก็บข้อมูลทั้งหมด มันน่าเสียดายที่แพงที่สุดของผลิตภัณฑ์ทั้งหมดที่ $ 259.95 ต่อเซิร์ฟเวอร์

วิธีแก้ไขปัญหา

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

ซอฟต์แวร์ฟรี

จ่ายซอฟต์แวร์

อัพเดท

อัปเดต # 1 : เซิร์ฟเวอร์ที่ฉันพยายามวิเคราะห์มี RAM 2 GB และผลิตภัณฑ์ส่วนใหญ่ที่ฉันพยายามจะลองและเก็บข้อมูลไฟล์ / โฟลเดอร์ไว้ในหน่วยความจำ สิ่งนี้มีแนวโน้มที่จะหมดเร็วเกินไปด้วยไฟล์ 18,501,765 ไฟล์และ 7,142,132 โฟลเดอร์

อัปเดต # 2 : ดูเหมือนว่านักพัฒนาของ WinDirStat มีส่วนเกี่ยวข้องมากพอที่จะบอกเราว่ามันสามารถคอมไพล์ได้ภายใต้ 64- บิต ที่ให้หน่วยความจำเพิ่มเติมให้ทำงานกับ แต่ฉันไม่แน่ใจว่ามันจะเพียงพอถ้าพวกเขาสามารถอยู่กับดิสก์


ระบบปฏิบัติการอะไร
Wesley

เป็น Windows Server 2003 ฉันแก้ไขโพสต์เพื่อแสดงว่าตอนนี้
นาธานพาลเมอร์

ใด ๆ ของโปรแกรมแชร์แวร์หรือโอเพ่นซอร์สที่สมบูรณ์ฟรี
Maslow

ยินดีที่คุณได้อัปเดตเราในลักษณะที่เกี่ยวกับสิ่งที่ล้มเหลวทำงานและรอดำเนินการ ให้ความคิดที่ดีแก่ฉัน
Wesley

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

คำตอบ:


6

สมมติว่าระบบปฏิบัติการของคุณเป็น Windows ...

ไม่ว่าคุณจะแบ่งไฟล์อย่างไรการจัดระเบียบไฟล์หลายล้านไฟล์จะใช้เวลานานและจะถูก จำกัด โดย I / O ของดิสก์เอง ผมขอแนะนำให้TreeSize มืออาชีพ หรืออาจจะSpaceObServer คุณสามารถลองใช้ TreeSize เวอร์ชันฟรีแวร์ได้เช่นกัน


ฉันเห็นด้วย. แต่ผลิตภัณฑ์ทั้งสองที่ฉันยังไม่ได้ลองฉันจะดู
นาธานพาลเมอร์

5

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

บิลด์ 32 บิตมาตรฐานถูก จำกัด ไว้ที่ 10 ล้านไฟล์และการใช้ RAM 2 GB แต่ซอร์สโค้ดจะสร้างสำเร็จเป็นแอปพลิเคชัน 64 บิต ข้อเท็จจริงที่ว่าเซิร์ฟเวอร์ที่สงสัยมี RAM เพียง 2GB อาจมีปัญหาในกรณีเฉพาะนี้ แต่เซิร์ฟเวอร์ส่วนใหญ่ที่มีไฟล์จำนวนมากดังกล่าวจะมี RAM มากกว่า

แก้ไข # 1: ฉันเสียใจที่ได้ค้นพบว่าเมื่อทดสอบกับปริมาณ 4TB ที่มีไฟล์นับล้าน WinDirStat Portable ขัดข้องหลังจากทำดัชนีประมาณ 6.5 ล้านไฟล์ อาจไม่สามารถใช้กับคำถามต้นฉบับได้หากไดรฟ์มีไฟล์มากกว่า 6 ล้านไฟล์

แก้ไข # 2: WinDirStat เวอร์ชันเต็มขัดข้องที่ 10 ล้านไฟล์และใช้ 1.9GB

แก้ไข # 3: ฉันได้ติดต่อกับผู้พัฒนา WinDirStat และ: (1) พวกเขายอมรับว่าเกิดจากข้อ จำกัด การใช้หน่วยความจำของสถาปัตยกรรม x86 และ (2) กล่าวว่าสามารถรวบรวมเป็น 64 บิตโดยไม่มีข้อผิดพลาด ขึ้นเร็ว ๆ นี้.

แก้ไข # 4: การทดสอบ WinDirStat รุ่น 64 บิตสำเร็จ ใน 44 นาทีมันทำดัชนีไฟล์ 11.4 ล้านไฟล์และใช้ RAM ขนาด 2.7 GB


มันอาจจะคุ้มค่าที่จะลองใช้เวอร์ชั่นปกติเนื่องจากเป็นไปได้ว่าสภาพแวดล้อมแบบพกพานั้นสร้างข้อ จำกัด ที่ไม่คาดคิด ฉันไม่สามารถทดสอบตัวเองได้ windirstat.info
John Gardeniers

แท้จริงแล้วรุ่นปกติจะเสียชีวิตที่ 10 ล้านไฟล์และการใช้ RAM 1.9GB ฉันสงสัยว่ามันไม่สามารถจัดสรร> 2GB ฉันประหลาดใจที่มันใช้ RAM ค่อนข้างมาก (เกือบ 200 ไบต์ต่อไฟล์นับจำนวน) แต่จากนั้นอีกครั้งฉันโตขึ้นมาในยุคที่แต่ละไบต์มีค่ามากกว่าที่เป็นอยู่ในวันนี้ ...
Skyhawk

ฉันใช้ WinDirStat มาก น่าเสียดายที่มันไม่ได้ตัดเมื่อคุณได้รับไฟล์จำนวนมาก
นาธานพาลเมอร์

ฉันสนใจที่จะฟังว่า dev ของ WinDirStat กลับมาพร้อมกับอะไรอีกหรือไม่ RAM จะเป็นข้อ จำกัด สำหรับฉันในแบบ 32 บิตหรือ 64 บิต
Nathan Palmer

1
ไม่มีงานสร้างอย่างเป็นทางการ แต่ฉันสามารถส่งแบบไม่เป็นทางการไปให้คุณได้ - แน่นอนว่ามันจะยุ่งยากหากคุณไม่มี Visual Studio! (my.name@gmail.com มาถึงฉัน)
Skyhawk


3

+1 สำหรับผลิตภัณฑ์ TreeSize แต่ ...

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

http://support.microsoft.com/kb/174619

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


ดูเหมือนว่าสิ่งที่ดีที่จะตรวจสอบ น่าเสียดายที่เราไม่สามารถเห็นขนาด MFT ได้เนื่องจากการจัดเรียงข้อมูลจะไม่วิเคราะห์หาก CHKDSK และ CHKDSK กำลังล้มเหลวด้วย "ข้อผิดพลาดที่ไม่ได้ระบุเกิดขึ้น"
Nathan Palmer

3
  1. cd \
  2. dir / s> out.txt
  3. เกย์! เวทมนตร์เกิดขึ้น หรือแฮ็กเกอร์ perl ปรากฏขึ้น
  4. ผล!

อย่างจริงจัง. ฉันทำสิ่งนี้ด้วยไฟล์ 5 หรือ 6 ล้านไฟล์ ไม่แน่ใจว่าสิ่งที่คุณกำลังมองหา แต่ภาษาสคริปต์ที่ดีจะกินสิ่งนี้


ซู ... เกิดอะไรขึ้นในขั้นตอนที่ 3 .. สมมติว่าแฮกเกอร์ perl ไม่แสดงขึ้นมา?
Nathan Palmer

คุณช่วยโพสต์ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่คุณต้องการได้ไหม? ไฟล์ที่ใหญ่ที่สุด? ไดเรกทอรีที่ใหญ่ที่สุด? คุณต้องการข้อมูลวันที่ / เวลาหรือไม่? มันเป็นความต้องการครั้งเดียวหรือเกิดขึ้นอีกครั้ง?
SqlACID

สำหรับตอนนี้มันเป็นครั้งเดียว ฉันจำเป็นต้องรู้ว่าไดเรกทอรีใดที่ใหญ่ที่สุด (dir + children) แต่ฉันจะต้องไปยังไดเรกทอรีบางแห่งก่อนที่ข้อมูลนั้นจะถูกต้อง จากนั้นฉันจะต้องแบ่งไฟล์ตามวันที่เพื่อให้ฉันสามารถดูไฟล์ล่าสุดและไฟล์เก่าได้
Nathan Palmer

3

ปกติฉันจะไม่ใช่ผู้ใช้ Windows แต่ฉันตระหนักถึงการมีอยู่ของ Cygwin :-)

ถ้ามันใช้งานได้ดีพอ

du -m /your/path | sort -nr | head -n 50

หรือบางทีใน Cygwin

du C:\ | sort -nr | head -n 50

อย่างไรก็ตามผู้ที่ควรพิมพ์ไดเรกทอรีที่ใหญ่ที่สุด 50 ไดเรกทอรี (ขนาดเป็นเมกะไบต์)


2

ฉันพบปัญหาสองสามข้อกับ Spacemonger และในการหายูทิลิตี้ฉันสามารถถ่ายโอนหรือเรียกใช้จาก usb stick ได้อย่างง่ายดาย - Space Snifferกลายเป็นอุปกรณ์เอนกประสงค์ที่เกี่ยวกับเรื่องนั้นและจัดการปริมาณหลายเทราไบต์ได้อย่างง่ายดาย


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

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

1

du -s สามารถใช้ในการเหน็บแนมและจะทำงานได้นานเท่าที่จำเป็น


ขอบคุณ จะตรวจสอบว่าครั้งต่อไปที่ฉันใช้ระบบ * ix
Nathan Palmer


ไม่ทราบว่ามันมีอยู่ใน windows ฉันจะตรวจสอบมันออก ขอบคุณ
Nathan Palmer



0

เกี่ยวกับตาราง mft จากด้านหลังของหัวของฉันฉันดูเหมือนจะจำได้ว่า jkdefrag เวอร์ชัน opensource ดั้งเดิมให้มุมมองดิสก์ที่แม่นยำมากรวมถึงการระบายสีที่แตกต่างกันสำหรับพื้นที่ mft ฉันคิดว่าฉันเคยใช้มันมาก่อนแล้วสำหรับกฎง่ายๆที่มีขนาดและการแตกแฟรกเมนต์

ยังไม่สนใจ chdsk

ลองดูสิ


ฉันลองดู เมื่อฉันรันการวิเคราะห์มันก็มีชะตากรรมเดียวกันกับที่โปรแกรมอื่น ๆ ส่วนใหญ่มี มีไฟล์ / โฟลเดอร์ในหน่วยความจำมากเกินไป
นาธานปาล์มเมอร์

ขออภัยที่ต้องอ่าน ดูเหมือนว่าปัญหาแพลตฟอร์ม ฉันมีข้อเสนอแนะอื่น: ทำมิกเรอร์ดิสก์ (อิมเมจบิต, อิมเมจซอฟต์หรือมิเรอร์ฮาร์ดแวร์) ไม่ว่าจะทำอย่างไรทำลายมิรเรอร์และวางสำเนาภายใต้นิติเวชบนแพลตฟอร์มอื่นเช่น ลินุกซ์ / ระวัง นี่ใช้เวลามากพอที่จะรับประกันค่าใช้จ่ายของไดรฟ์กระจกที่เกี่ยวข้องกับจำนวนเวลาทำงานของคุณที่ลงทุน
deploymonkey


0

ฉันใช้ตัววิเคราะห์การใช้งานดิสก์ - Baobabบน Linux โดยใช้ฟังก์ชันการสแกนระยะไกลบนเซิร์ฟเวอร์ Windows ฉันไม่รู้ว่ามันมีข้อ จำกัด อะไรบ้าง

Fedora LiveCDบรรจุ Baobab บูตจากคอมพิวเตอร์เครื่องใดก็ได้ใน LAN ของคุณ

มันฟรีทั้งหมด - เหมือนเบียร์และพูด นอกจากนี้สำหรับใช้ในเชิงพาณิชย์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.