หลังจากลบไฟล์ขนาดใหญ่จำนวนมากพื้นที่ว่างเพิ่มขึ้นด้วยความล่าช้ามาก


15

เมื่อวานนี้ฉันได้ลบไฟล์ 71 GB ในบ้าน / เซิร์ฟเวอร์สื่อของฉัน
พื้นที่ว่างก่อน: 117 GB
พื้นที่ว่างหลังจาก: 126 GB

ดังนั้นแทนที่จะมีพื้นที่ว่างเพิ่มเติม 71 GB ฉันมีเพียง 9 GB ฉันได้ตรวจสอบสองครั้งว่าไม่มีไฟล์ใดถูกเปิดและฉันได้ลบ 71 GB และพื้นที่ว่างเพิ่มขึ้นจริงๆเพียง 9 GB

ฉันพยายามซิงค์ แต่ไม่มีผลใด ๆ

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

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

ไม่ยูทิลิตี้ 'at' จะไม่ทำเพราะหนึ่งในบริการทำงานที่ไม่สามารถทำงานต่อได้ยาวนานและต้องการการตรวจสอบสถานะด้วยตนเองเพื่อหาช่วงเวลาที่ดีเมื่อสามารถปิดระบบได้เช่นงานเพิ่งเสร็จสิ้น

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

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

ระบบไฟล์ถูกสร้างด้วย 0% สงวนไว้สำหรับ root ( mkfs -m 0) ตามfsck -f(ฉันกำลังทำสิ่งนี้อยู่เสมอระหว่าง unmount และ remount) ระบบไฟล์ไม่เสียหายและตามการขยายการวินิจฉัยของ SMART การทดสอบฮาร์ดแวร์ก็โอเค

[แก้ไข]

tune2fs 1.42 (29-Nov-2011)  
Filesystem volume name:   bigdata  
Last mounted on:          /bigdata  
Filesystem UUID:          6aebd17a-e064-41dc-9c68-c9a3acbe4f66  
Filesystem magic number:  0xEF53  
Filesystem revision #:    1 (dynamic)  
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize  
Filesystem flags:         signed_directory_hash   
Default mount options:    user_xattr acl  
Filesystem state:         clean  
Errors behavior:          Continue  
Filesystem OS type:       Linux  
Inode count:              121413632  
Block count:              485645568  
Reserved block count:     0  
Free blocks:              29081276  
Free inodes:              121382378  
First block:              0  
Block size:               4096  
Fragment size:            4096  
Reserved GDT blocks:      908  
Blocks per group:         32768  
Fragments per group:      32768  
Inodes per group:         8192  
Inode blocks per group:   512  
Flex block group size:    16  
Filesystem created:       Tue Dec 25 23:42:35 2012  
Last mount time:          Fri Jan  3 17:37:36 2014  
Last write time:          Fri Jan  3 17:37:36 2014  
Mount count:              37  
Maximum mount count:      -1  
Last checked:             Thu Apr 18 17:03:40 2013  
Check interval:           0 (<none>)  
Lifetime writes:          14 TB  
Reserved blocks uid:      0 (user root)  
Reserved blocks gid:      0 (group root)  
First inode:              11  
Inode size:           256  
Required extra isize:     28  
Desired extra isize:      28  
Journal inode:            8  
Default directory hash:   half_md4  
Directory Hash Seed:      be2b977e-5127-4843-9123-fe33b6d7b573  
Journal backup:           inode blocks  

[/ แก้ไข]

ดังนั้นนี่คือคำถาม 2 ข้อของฉัน:

  1. เกิดอะไรขึ้นที่นี่ เหตุใดจึงมีพื้นที่ว่างที่ค้างอยู่หรือค้างล่าช้าแทนที่จะถูกลบทันที?
  2. มีบางอย่างที่ฉันสามารถทำได้เพื่อกระตุ้นการเพิ่มพื้นที่ว่างตอนนี้โดยไม่ต้องถอดและติดตั้งใหม่?

มันมีกลิ่นมากสำหรับฉันเหมือนไฟล์บางไฟล์ยังคงเปิดอยู่ คุณจะยืนยันได้อย่างไรว่าไม่มีไฟล์ใดที่ถูกเปิดหลังจากการลบ? lsof | grep -i deletedมักเป็นวิธีที่ดีที่สุดในการตรวจสอบนี้
Garrett

2
โดยปกติคุณไม่สามารถติดระบบไฟล์เมื่อเปิดไฟล์ได้ ดังนั้นหาก umount สำเร็จไม่มีไฟล์ที่เปิดอยู่ ยกเว้นเมื่อวานนี้ฉันมักจะวนรอบใหม่อีกครั้งเมื่อฉันสังเกตเห็นสิ่งนี้
Markus N.

กรณีนี้เป็นจริง ตัวเลือก ext4 mount ของคุณคืออะไร?
Garrett

ตอนเที่ยง, ค่าเริ่มต้น
Markus N.

คุณมีระบบสำรองข้อมูลบางประเภทที่อาจเก็บสำเนาของไฟล์หรือลิงก์ไปยังพวกเขาหรือไม่?
Derobert

คำตอบ:


9

มีสองปัจจัยที่อาจมีการโต้ตอบ

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

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


1
ใช่ฉันรู้ว่าฉันสามารถลบไฟล์ที่เปิดอยู่ ฉันรู้เกี่ยวกับความสัมพันธ์ระหว่างรายการไดเรกทอรีและ inodes แต่ฉันแน่ใจว่าไฟล์นั้นไม่เปิดมิฉะนั้นฉันจะไม่สามารถต่อเชื่อมระบบไฟล์ ... แต่รายการที่สองของคุณน่าสนใจ อาจใช้เวลานานกว่า 30 นาทีเพื่อให้ไฟล์ที่ถูกลบส่งไป? 30 นาทีเป็นเวลาระหว่างการลบไฟล์และเข้านอนวันก่อนเมื่อวานดังนั้นฉันไม่สามารถบอกได้ว่าใช้เวลานานเท่าใด
Markus N.

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

ขอบคุณสำหรับการแก้ไข แต่อย่างที่คุณเห็นในคำถามเดิมของฉันฉันลองซิงค์แล้วโดยไม่มีผลกระทบ
Markus N.

1
@MarkusN ฉันไม่คิดว่าการซิงค์จะมีประสิทธิภาพเท่าที่เคยเป็นมา เป็นไปได้เพียงเพื่อให้แน่ใจว่าข้อมูลเจอร์นัลถูกเขียนขึ้นไม่จำเป็นว่าจะต้องมีการเปลี่ยนแปลงทั้งหมด Unmount / mount จะบังคับให้เจอร์นัลถูกนำไปใช้ ฉันไม่ทราบว่าการจัดตารางเวลาสำคัญสำหรับการลบ แต่ฉันคาดว่ามันจะค่อนข้างต่ำ การสำรวจรหัสอาจตอบคำถามของคุณได้มากกว่านี้
BillThor

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