rm -rf ช้ามากและช้าลงเซิร์ฟเวอร์


1

ฉันทำ rm -rf foldername ในความพยายามที่จะลบโฟลเดอร์ที่มี 10,000 ไฟล์ 25KB

คำถาม เหตุใดจึงใช้เวลานาน (เกือบ 30 นาที)

ทำไมเซิร์ฟเวอร์ถึงช้ามากถึงแม้ว่า htop แสดงการใช้งาน CPU% ต่ำมากหรือไม่ กระบวนการนี้ใช้ CPU เพียง 0.0% และ 0.2% MEM ใช่หรือไม่ แต่อย่างใดค่าเฉลี่ยการโหลดเท่ากับ 10!

htop

enter image description here

iotop

enter image description here


1
กิจกรรมฮาร์ดไดรฟ์สูงหรือไม่
Lorenzo Von Matterhorn

มีวิธีการตรวจสอบเท่าไหร่ IO% กระบวนการใช้? iotop? ยังไงก็ตามเพื่อเพิ่มความเร็วในการลบไฟล์ทั้งหมดในไดเรกทอรี?
Nyxynyx

1
ระบบไฟล์บางระบบสามารถจัดการไฟล์ขนาดเล็กได้ดีกว่าระบบอื่น ขนาดบล็อกที่เล็กกว่า (ตั้งค่าเมื่อทำการฟอร์แมต) สำหรับระบบไฟล์โดยทั่วไปจะปรับปรุงการทำงานของไฟล์ขนาดเล็ก เป็นตัวอย่างที่ฉันสามารถพูดได้ว่าการมีทรี gageoo portage (~ 128,000 ไฟล์ภายใต้ 100kb) บนระบบไฟล์ reiserfs3 ได้ปรับปรุงเวลาที่ใช้ในการแก้ไขการพึ่งพาแพ็คเกจ
Ярослав Рахматуллин

คำตอบ:


2

คุณจำเป็นต้อง nice กระบวนการลดภาระซีพียูและ ionice กระบวนการเพื่อลดการโหลด I / O บนดิสก์:

ionice -c 3 nice -n 19 echo foo

สิ่งนี้ควรสร้างกระบวนการที่ทำงานด้วยการกำหนดเวลา CPU และ I / O อย่างน้อยที่สุด

คุณสามารถยืนยันด้วย:

ionice -p 19574

คุณไม่สามารถรวมลำดับความสำคัญ "ดี" โดยใช้ "ionice -c 3 -n" เนื่องจาก "-n" ส่งผลต่อลำดับความสำคัญภายในระดับความสำคัญ I / O ระดับ 3, "ว่าง" (ซึ่งใน linux ของฉันยอมรับ 0-7) . ฉันเกรงว่าคุณจะต้องใช้สองคำสั่งแทน (ดีกว่าและดีกว่า)
Raúl Salinas-Monteagudo

ฉันหวังว่ามันจะใช้งานได้สำหรับฉัน (ใช้ ionice) แต่น่าเสียดายที่ไอโซโทปยังคงแสดงการใช้งานดิสก์% 99.99 พยายาม ionice -c 3 rm -rf dir, ionice -c2 -p7 rm -rf dirยังไม่มีโชค เมื่อมันกดไฟล์ขนาดใหญ่โหลดจะเพิ่มขึ้นจาก 1 เป็น 24 ใน 30 วินาที เกิดขึ้นบนเซิร์ฟเวอร์ฐานข้อมูลไม่ว่าง
Aaron R.

0

ไฟล์ขนาดเล็กจำนวนมากมักจะยากสำหรับระบบไฟล์ / ฮาร์ดไดรฟ์ (หัวอ่าน / เขียนจะต้องฟาดไปทั่วสถานที่เพียงเพื่อค้นหาแต่ละไฟล์และเมื่อไฟล์มีขนาดเล็กมาก อาจเป็นเพราะคุณมี HDD มากอยู่หรือกำลังล้มเหลว

nice -n 19 rm -rf directory

สิ่งนี้จะเรียกใช้ 'rm' ที่ลำดับความสำคัญต่ำสุด


ฉันจะลดลำดับความสำคัญ IO ของกระบวนการที่ลบไฟล์จำนวนมากและใช้งาน IO ได้อย่างไร
Nyxynyx

1
nice -n 19 rm -rf ไดเร็กทอรี
SnakeDoc

ขอบคุณจาก iotop ปรากฏว่า jbd2 การกินไอโอเยอะมากมีวิธีป้องกันไหม เช่นเดียวกับปิดการใช้งาน jbd2 สำหรับไดเรกทอรีที่มีไฟล์ขนาดเล็กจำนวนมากถูกลบ / ลบทิ้งทุกวัน? หรือสิ่งนี้จะมีผลกระทบด้านลบต่อพื้นที่อื่นหรือไม่?
Nyxynyx

คุณสามารถวางมันลงในพาร์ติชั่นของตัวเองและปิดการใช้งานเจอร์นัลสำหรับมัน (อาจจะดีสำหรับสิ่งที่มีไฟล์ "temp" มากหรือน้อย) ตรวจสอบในเวลาไม่นานสำหรับไฟล์ fstab ของคุณด้วยตรวจสอบให้แน่ใจว่า distro / ปล่อย ฉันคิดว่ามีแพทช์เคอร์เนลบางส่วนเกี่ยวกับ ext4 และการทำเจอร์นัลฮาร์ดไดรฟ์
SnakeDoc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.