จำนวนไฟล์สูงสุดที่โฟลเดอร์ Unix สามารถเก็บไว้คือเท่าใด
ฉันคิดว่ามันจะเหมือนกับจำนวนไฟล์
จำนวนไฟล์สูงสุดที่โฟลเดอร์ Unix สามารถเก็บไว้คือเท่าใด
ฉันคิดว่ามันจะเหมือนกับจำนวนไฟล์
คำตอบ:
แตกต่างกันไปตามระบบไฟล์http://en.wikipedia.org/wiki/Comparison_of_file_systems
ในทุกระบบไฟล์ Unix ปัจจุบันไดเรกทอรีสามารถเก็บไฟล์ได้ไม่ จำกัดจำนวน ในขณะที่ "ไม่ จำกัด " ถูก จำกัด โดย diskspace และinodesไม่ว่าอะไรก็ตามจะหมดไปก่อน
ด้วยการออกแบบระบบไฟล์รุ่นเก่า ( ext2 , UFS , HFS + ) สิ่งต่าง ๆ มักจะช้าถ้าคุณมีไฟล์จำนวนมากในไดเรกทอรี โดยปกติสิ่งต่าง ๆ จะเริ่มเจ็บปวดประมาณ 10,000 ไฟล์ ด้วยระบบไฟล์ที่ใหม่กว่า ( ReiserFS , XFS , ZFS , UFS2 ) คุณสามารถมีไฟล์ได้นับล้านไฟล์ในไดเรกทอรีโดยไม่เห็นคอขวดของประสิทธิภาพการทำงานทั่วไป
แต่การมีไฟล์จำนวนมากในไดเรกทอรีนั้นยังไม่ผ่านการทดสอบและมีเครื่องมือมากมายที่ล้มเหลว ตัวอย่างเช่นสคริปต์การบำรุงรักษาระบบเป็นระยะอาจมีปัญหากับมัน
ฉันใช้ไดเรกทอรีที่มีไฟล์หลายล้านไฟล์ใน UFS2 อย่างมีความสุขและไม่เห็นปัญหาใด ๆ จนกว่าฉันจะต้องการลบไดเรกทอรี - ซึ่งใช้เวลาหลายวัน
ขึ้นอยู่กับจำนวนinodesที่ระบบไฟล์สร้างขึ้น การดำเนินการ
df -i
จะให้จำนวนของ inodes ฟรี นี่เป็นข้อ จำกัด ในทางปฏิบัติของจำนวนระบบไฟล์และไดเรกทอรีสามารถเก็บได้
ฉันคิดว่าคุณกำลังคิดที่จะเก็บไฟล์ไว้มากมายในที่เดียวใช่ไหม
ระบบไฟล์ Unix ที่ทันสมัยส่วนใหญ่สามารถใส่ไฟล์จำนวนมากไว้ในไดเรกทอรีเดียว แต่การดำเนินการเช่นเส้นทางต่อไปนี้รายชื่อไฟล์ ฯลฯ เกี่ยวข้องกับการค้นหาเชิงเส้นผ่านรายการไฟล์และทำงานช้าหากรายการมีขนาดใหญ่เกินไป
ฉันดูเหมือนจะจำได้ว่าได้ยินสองสามพันมากเกินไปสำหรับการใช้งานจริงมากที่สุด วิธีแก้ปัญหาโดยทั่วไปคือการแบ่งกลุ่ม นั่นคือ,
/some/path/to/dir/a/
/some/path/to/dir/b/
...
/some/path/to/dir/z/
basename
และจัดเก็บไฟล์ในไดเรกทอรีย่อยเหมาะสมตามกัญชาของพวกเขา เลือกแฮชที่แสนสะดวกตัวอักษรตัวแรกอาจใช้กับกรณีง่าย ๆ ได้
Cristian Ciupitu เขียนในความคิดเห็นที่XFSและไฟล์ระบบใหม่มากอื่น ๆ อาจจะใช้log(N)
โครงสร้างที่สามารถค้นหาเนื้อหาถือไดเรกทอรีดังนั้นข้อ จำกัด นี้เป็นอย่างมากปรับตัวดีขึ้น
ext3
หนึ่งในรูปแบบที่พบมากที่สุดของระบบไฟล์ linux นั้นจะช้ามากหากคุณมีไฟล์ประมาณ 20k + ในไดเรกทอรี ไม่ว่าจะมีจำนวนเท่าใดคุณควรพยายามหลีกเลี่ยงการมีไฟล์จำนวนมากในไดเรกทอรีเดียว
จากความคิดเห็นที่คุณออกไปฉันคิดว่าคุณไม่สนใจว่าจะมีไฟล์ / โฟลเดอร์กี่ไฟล์ที่ FS ของคุณสามารถโฮสต์ได้
คุณควรพิจารณาใช้ ModRewrite และเขียนใหม่ site.com/ ชื่อผู้ใช้ไปที่ site.com/?user= หรืออะไรทำนองนั้นแล้วเก็บข้อมูลทั้งหมดของคุณไว้ในฐานข้อมูล โดยทั่วไปไม่จำเป็นต้องสร้างหนึ่งโฟลเดอร์ต่อผู้ใช้ (และไม่ใช่ความคิดที่ดี)
ที่กล่าวไว้ว่าแต่ละระบบไฟล์มีข้อ จำกัด และdf
สามารถบอกได้ว่ามีกี่ไอโหนดในพาร์ติชั่นระบบของคุณ