มีรูปแบบ 'ด่วน' สำหรับ ext4 หรือไม่?


28

ใน Windows การฟอร์แมตด้วย NTFS นั้นรวดเร็วมาก ฉันมีลีนุกซ์ที่ใช้พลังงานต่ำและมี RAM น้อย การฟอร์แมตวอลุ่ม 2TB ไปยัง ext4 นั้นใช้เวลานาน

มีอะไรที่ฉันสามารถทำได้เพื่อเร่งความเร็วในการจัดรูปแบบหรือไม่? ฉันนึกภาพไม่ออกว่าใช้เวลานานเท่าไหร่? (ใช้เวลานานเท่าไหร่)


1
คุณใช้คำสั่งอะไรในการฟอร์แมต?
tacotuesday

เป็นวิธีแก้ปัญหา ลองทำให้มันเป็นปริมาตร lvm ที่เล็กลงและขยายมันเท่าที่จำเป็น? นั่นจะลดค่าใช้จ่ายเริ่มต้นอย่างใด
Sirex

1
หรือใช้ XFS หากเวลาในการสร้างระบบไฟล์ทำให้คุณรำคาญ - mkfs.xfs นั้นเร็วกว่า mkfs.ext4 มาก (เพราะมันไม่ได้ทำ - หรือต้องทำ - มาก) แต่ mkfs เป็นสิ่งที่คุณมักจะต้องทำเพียงครั้งเดียวต่อระบบไฟล์ - มีสิ่งที่ดีกว่าในการเพิ่มประสิทธิภาพ
cas

หรือใช้ ZFS การสร้างระบบไฟล์ด้วย ZFS นั้นใกล้เคียงกับความรวดเร็วไม่ว่าขนาดใดก็ตาม
jlliagre

ใช้ ZFS เฉพาะเมื่อคุณมีฮาร์ดแวร์ระดับองค์กรโดยเฉพาะอย่างยิ่งถ้าคุณมี ECC RAM และคุณมี UPS ก็ไม่แนะนำให้ใช้ ZFS โดยไม่ต้องการเหล่านี้ คุณอาจไม่สามารถกู้คืนหลังจากเกิดข้อผิดพลาดพาริตีหน่วยความจำและ / หรือไฟฟ้าขัดข้อง ปริมาณทั้งหมดของคุณจะหายไปในกรณีนี้ คุณได้รับการเตือน
Richard Gomes

คำตอบ:


16

คำตอบที่เข้มงวด

การแก้ปัญหาอย่าง-E lazy_itable_initไม่เปลี่ยนแปลงผลลัพธ์เพียงเร่งกระบวนการเท่านั้น นี่คือสิ่งที่ถูกถามอย่างชัดเจน แต่ในหลายกรณีผู้คนต้องการมากขึ้น

โบนัสพิเศษ

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

ฉันเพิ่งทำแบบทดสอบ แม้จะไม่ได้ใช้-E lazy_itable_initตัวเลือกด้านล่างเร่งเวลาในการสร้างระบบไฟล์ 2TB จาก 16 นาที 2 วินาทีเป็น 1 นาที 21 วินาที (เคอร์เนล 3.5.0 64 บิตบน Intel i7 2.2GHz, ดิสก์ 2TB ในการเชื่อมต่อ USB2 - SATA อาจเร็วกว่า) .

สำหรับระบบไฟล์ที่จะเก็บไฟล์ขนาดใหญ่ฉันใช้ชุดนี้:

mkfs.ext3 /dev/sdXX -O sparse_super,large_file -m 0 -T largefile4

ที่-T largefile4เลือกตัวเลือก/etc/mke2fs.confซึ่งโดยทั่วไปจะมีสิ่งที่ชอบ:

    inode_ratio = 4194304
    blocksize = -1

ทำman mke2fsรายละเอียดเกี่ยวกับแต่ละตัวเลือกเหล่านี้

นี่คือสารสกัดที่เกี่ยวข้อง:

               sparse_super
                      Create a filesystem with fewer superblock backup copies (saves space on large filesystems).

               large_file
                      Filesystem can contain files that are greater than 2GB.  (Modern kernels set this feature  automatically
                      when a file > 2GB is created.)

   -i bytes-per-inode
          Specify  the  bytes/inode ratio.  mke2fs creates an inode for every bytes-per-inode bytes of space on the disk.  The
          larger the bytes-per-inode ratio, the fewer inodes will be created.  This value generally shouldn't be smaller  than
          the blocksize of the filesystem, since in that case more inodes would be made than can ever be used.  Be warned that
          it is not possible to expand the number of inodes on a filesystem after it is created, so be  careful  deciding  the
          correct value for this parameter.

-m 0บอกว่าอย่าจอง 5% สำหรับรูทซึ่งใช้ได้สำหรับระบบไฟล์ data (ไม่ใช่ boot / root) 5% ของดิสก์ 2TB หมายถึง 100Gb นั่นเป็นความแตกต่างที่สำคัญมาก


1
โปรดทราบว่าการอนุญาตให้ระบบไฟล์รับเต็มมากกว่า 95% จะนำไปสู่การแตกแฟรกเมนต์มากทำให้การทำงานช้าลงอย่างมาก หากมีสิ่งใดที่ใครสนใจเกี่ยวกับประสิทธิภาพของพาร์ติชันข้อมูลของเขามันควรจะเพิ่มเป็น 10%
Matija Nalis

หากดิสก์ของคุณจะเก็บไฟล์ขนาดใหญ่ไม่เพียงแต่ไฟล์ขนาดเล็กเท่านั้นให้อ่านสิ่งนี้: การลดอัตราส่วนไอโหนดจะช่วยให้คุณประหยัดพื้นที่เก็บข้อมูลได้มากถึง 1.5% ในราคาที่สามารถใช้งานได้ inode_ratio = xหมายความว่าถ้าค่าเฉลี่ยขนาดไฟล์บนไดรฟ์น้อยกว่า x ไบต์แล้วคุณกำลังมุ่งหน้าไปยังวิ่งออกมาจาก inodesก่อนที่จะวิ่งออกมาจากพื้นที่จัดเก็บ ในสถานการณ์นั้นคุณอาจเสียเงินมากกว่าที่คุณคาดการณ์ไว้นับพัน
Stéphane Gourichon

กล่าวอีกนัยหนึ่งถ้าขนาดไฟล์เฉลี่ยมีขนาดเล็กกว่า 4MB ห้ามใช้ "-T largefile4" สำหรับไดรฟ์ขนาดใหญ่ตอนนี้ฉันจะสิ้นสุดการใช้ที่ไม่-T huge inode_ratio = 65536หากมีข้อสงสัยอย่าตั้งค่า-iหรือ-Tให้คนฉลาดที่ทำ ext2 / 3/4 เลือกให้คุณ คุณจะจองพื้นที่ส่วนเล็ก ๆ ที่รู้จักเพื่อทำความสะอาดและ (เว้นแต่คุณจะเก็บไฟล์จำนวนน้อยมากนับล้าน) คุณรับประกันว่าจะไม่เสียพื้นที่เก็บข้อมูลจริงตามอำเภอใจ ในขณะที่คนเขียนซอฟต์แวร์แฟนซีนั้นดี แต่ระบบไฟล์ที่ดีต้องน่าเบื่อและใช้งานได้
Stéphane Gourichon

ในกรณีของฉันmkfs.ext4มากขึ้นเร็วขึ้น (เวลา: real 0m16.001sกว่า) mkfs.ext3(เวลา: real 2m10.336s)
coanor

19

เพิ่มธง -E lazy_itable_init

นี่คือสิ่งที่หน้าคนพูดว่า:

หากเปิดใช้งานและเปิดใช้งานคุณลักษณะ uninit_bg แล้วตาราง inode จะไม่เริ่มต้นอย่างสมบูรณ์โดย mke2fs สิ่งนี้เร่งความเร็วในการเริ่มต้นระบบไฟล์อย่างเห็นได้ชัด แต่มันต้องการเคอร์เนลเพื่อเริ่มต้นระบบไฟล์ในพื้นหลังเมื่อระบบไฟล์ติดตั้งครั้งแรก หากไม่ได้ระบุค่าตัวเลือกจะใช้ค่าเริ่มต้นเป็น 1 เพื่อเปิดใช้งานการเริ่มต้นตารางขี้เกียจ


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

ขอบคุณมาก! wo4ked นี้ดีจริง ๆ เอกสาร / ชายไม่ชัดเจนสำหรับฉันจนกว่าจะรู้ว่าจะต้องตามหาอะไร! ขอบคุณมาก!
ติด

ฉันเคยเห็นการอ้างอิงเกี่ยวกับเวอร์ชั่นเคอร์เนลขั้นต่ำซึ่งจำเป็นต้องใช้ขั้นต่ำนี้คืออะไร
Xarses

8

ค่าเริ่มต้นคือรูปแบบด่วน การตั้งค่าโครงสร้างสำหรับไดรฟ์ข้อมูล ext * ใช้เวลานานกว่าไดรฟ์ข้อมูล NTFS เนื่องจากมีจำนวนมาก คุณสามารถลดจำนวนซูเปอร์บล็อกได้


ขอบคุณสำหรับข้อมูลอุปกรณ์ของฉันเริ่มการจัดรูปแบบดิสก์ 2TB USB2 ประมาณ 20 ชั่วโมงที่ผ่านมามันยังคงดำเนินต่อไป - อุปกรณ์ใช้พลังงานต่ำคิดว่า Raspberry Pi พร้อม RAM 64MB เพื่อที่จะเริ่มฟอร์แมทที่ฉันต้องติดตั้งเพจจิ้งไปยังดิสก์ USB ที่ถูกฟอร์แมทแล้วมีอะไรที่ฉันสามารถทำได้เพื่อเร่งความเร็วนี้หรือไม่? ฉันจะดีมากถ้าฉันได้รับการแสดงที่ต่ำกว่าหนึ่งหรือสองชั่วโมง?
ติด

2
lazy_itable_init ทำเคล็ดลับสำหรับฉันนี่ไม่ใช่ค่าเริ่มต้นและทำให้การจัดรูปแบบเร็วขึ้นมาก
ติด

4

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

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