ฮาร์ดไดรฟ์ลดลงหรือไม่หากเราเขียนไปยังไดเรกทอรีเดียวกันเสมอ


2

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

ความรู้สึกของฉันคือ HDD ลดระดับลงเนื่องจาก I / O สูงสองสามปีที่ผ่านมาและฉันคิดว่าจะเปลี่ยน HDD มีประโยชน์ที่จะเขียนไปยังหลายไดเรกทอรีแทนที่จะใช้เหมือนกันเสมอหรือไม่

BTW เขาใช้ Windows XP

คำตอบ:


9

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

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

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

[แก้ไข] คุณพูดถึงข้างต้นว่าสิ่งเหล่านี้เป็นภาพรังสีวิทยา ฉันสมมติว่ามี ID ผู้ป่วยหรือเลขลำดับ / datestamp บางรูปแบบเป็นชื่อไฟล์ ขอแนะนำให้คุณสร้างโฟลเดอร์สำหรับตัวอักษร 2-3 ตัวแรกของสิ่งที่แสดงถึง ID และย้ายรายการไปยังที่ คุณสามารถทำหลาย ๆ โฟลเดอร์ในเชิงลึกและมันจะทำให้การค้นหารายการไม่ยากกว่าตอนนี้และเพิ่มความเร็วในการทำดัชนีไดเรกทอรี

oldfolder
  123456
  123457
  123558
  ...
  55123
  55124
  ...
  99345
  99346

newfolder
  12
    34
      123456
      123457
    35
      123558
  ...
  55
    12
      55123
      55124
  ...
  99
     34
       99345
       99346

ฉันมี 60,000 ไดเรกทอรีย่อยในไดเรกทอรีรากเดียวกัน ในนั้นมีไฟล์มากมาย
code-gijoe

1
นั่นเป็นวิธีการมากมาย ฉันเดิมพันเพียงแค่ทำ ls / dir ใช้เวลาหลายวินาทีหรือไม่กี่นาที
Chris Nava

ใช้เวลา 10 นาที :)
code-gijoe

2
โปรดทราบว่าจำนวนรายการเดียวกันจะนั่งอย่างมีความสุขในโครงสร้างต้นไม้ที่มีโฟลเดอร์ย่อยไม่กี่โหลในสองสามสาขาแรก
Chris Nava

1
A directory is not a physical location on the disk- ข้อมูลภายในไดเรกทอรีไม่มีตำแหน่งที่แน่นอน แต่บล็อกที่ใช้ในการจัดเก็บข้อมูลเกี่ยวกับสิ่งที่อยู่ในไดเรกทอรีจะไม่เคลื่อนที่ไปมา
Zoredache

3

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


การย้ายไฟล์ระหว่างตำแหน่งต่างๆในไดรฟ์เดียวกันนั้นไม่เกี่ยวข้องกับการแตกแฟรกเมนต์เนื่องจากไฟล์จะไม่ถูกคัดลอกหรือเขียน ระบบไฟล์จะอัพเดตดัชนีเพื่อแสดงไฟล์ที่เป็นส่วนหนึ่งของไดเรกทอรีใหม่
Frank Thomas

Degrag ก็โอเคแล้วมันเป็น HDD เฉพาะดังนั้นฉันไม่รังเกียจที่จะเปิดตัว defrag เต็มรูปแบบ มันเป็นภาพรังสีวิทยาดังนั้นจึงมีไฟล์ขนาดเล็กนับแสนไฟล์
code-gijoe

@ Frankthomas มันไม่ใช่ไฟล์ แต่เป็นไดเรกทอรีที่มีปัญหา เริ่มต้นด้วยไดเรกทอรีใหม่ที่สะอาดกำจัดการกระจายตัว
psusi

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

1
@Pusi ฉันคิดว่าเราต้องพูดถึงปรากฏการณ์ที่แตกต่างกันเมื่อใช้คำว่า 'การกระจายตัวของ' ไดเรกทอรีไม่ได้แยกส่วน (หรืออัลกอริธึมการกระจายไฟล์ที่แม่นยำยิ่งขึ้นทำให้ไฟล์ที่เก็บอยู่ในดิสก์ไม่มีความสัมพันธ์โดยตรงกับโครงสร้างดัชนีระบบไฟล์) การแตกแฟรกเมนต์พื้นที่ว่างสามารถทำให้การแตกแฟรกเมนต์ของไฟล์เมื่อสร้างไฟล์ แต่นั่นแก้ไขได้โดยการเพิ่มขนาดวอลุ่มหรือทำการเพิ่มประสิทธิภาพของพื้นที่ว่าง
Frank Thomas

2

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

IO ที่ไม่หยุดยั้งอาจทำให้ไดรฟ์ของคุณเสียหายอย่างช้าๆ (แต่ฮาร์ดไดรฟ์กำลังจะตายทุก ๆ วินาที) แต่การแพร่กระจายออกไปในหลายไดเรกทอรีจะไม่สร้างความแตกต่าง


ฉันจะตรวจสอบการแตกแฟรกเมนต์ แต่การมี HDD เกือบเต็มอาจจะเพิ่มโอกาสในการแตกแฟรกเมนต์ใช่หรือไม่
code-gijoe

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