ระบบค้าง / ไม่ตอบสนอง / ใช้ไม่ได้เมื่อคัดลอกไฟล์ขนาดใหญ่ไปยัง USB


49

เมื่อวานนี้ฉันกำลังคัดลอกไฟล์เดียว 8 GB ไปยัง USB ด้วยความเร็วในการเขียนที่ช้า 7 MB / s ในขณะที่ RAM ของฉันคือ 3 GB ในขณะที่การคัดลอกระบบนั้นหยุดนิ่งจนถึงจุดที่ฉันไม่สามารถขยับเคอร์เซอร์ได้

ฉันจัดการเพื่อเข้าสู่คอนโซลข้อความและวิ่งiotopก็แสดงให้เห็นว่ากระบวนการที่มีชื่อว่าkswapd0ใช้ 99.99% ของ IO

มีวิธีแก้ไขเพื่อให้การคัดลอกไฟล์ขนาดใหญ่ไม่ทำให้ระบบของฉันใช้ไม่ได้หรือไม่?


11
ข้อผิดพลาดนี้จะไร้สาระดังนั้น ...
king_julien

คำตอบ:


32

ตามรายงานข้อผิดพลาดนี้ฉันแก้ไขได้โดยเพิ่มบรรทัดต่อไปนี้

vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

เป็น /etc/sysctl.conf

และวิ่ง

sudo sysctl -p

12
สนใจอธิบายสิ่งที่บรรทัดด้านบนทำอย่างไร
nsane

3
@ nisargshah95 ขออภัย แต่ไม่มีเงื่อนงำค้นหาตัวเอง ;-)
Philippe Gachoud

4
@ nisargshah95 รายละเอียดของปัญหาได้อธิบายไว้ในบทความ LWN สองบทความที่เชื่อมโยงในunix.stackexchange.com/a/107722/52205
Rmano

1
ขอบคุณฉันเพิ่งพบว่าอูบุนตู 16.04 ของฉันไม่สามารถเขียนไฟล์ 1.4 GB สองไฟล์ไปยัง USB โดยไม่ต้องใช้สองบรรทัดนี้ฉันกำลังถูกแช่แข็งเป็นเวลาหลายชั่วโมงปัญหาที่แก้ไขนี้ใครสนใจสิ่งที่ทำบางครั้งคุณแค่คัดลอกไฟล์ บน.
Mike

1
ฉันมีค่า 5 และ 60 ค่าเหล่านี้ควบคุมเปอร์เซ็นต์ของหน่วยความจำที่ใช้สำหรับการดำเนินการในขณะที่dirty_background_bytesและdirty_bytesใช้ค่าไบต์แบบสัมบูรณ์ ฉันได้แก้ไขปัญหานี้ด้วยคำตอบที่สอง แต่เพื่อให้เพิ่มไปยังแบบถาวรsysctl.confโปรดดูคำตอบนี้ ดังนั้นเมื่อใช้ค่าร้อยละปรับแต่งพวกเขาเมื่ออัพเกรดหน่วยความจำ
PeterM

19

ฉันวิ่งเข้าไปในปัญหาที่คล้ายกัน Mine เป็น 64 บิต Ubuntu 14.04 ดังนั้นหลังจากการต่อสู้ที่ยาวนานฉันพบคำตอบที่แก้ไขปัญหาของฉัน สำหรับการใช้งานง่ายผมเพิ่มคำสั่งดังต่อไปนี้ใช้ในการที่คำตอบดังกล่าวข้างต้น ตรวจสอบคำตอบสำหรับคำอธิบายโดยละเอียด

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

หลังจากใช้ระบบคำสั่งข้างต้นเริ่มทำงานตามปกติในการคัดลอกไฟล์

ขอบคุณไป@Rmano


2
การตั้งค่าอัตราส่วนไม่ได้ช่วยในระบบ 12.04 ของฉันที่มีการแบ่งปัน NAS ช้า แต่หลังจากตั้งค่าไบต์โดยตรงตามที่แนะนำที่นี่ระบบของฉันสามารถใช้งานได้อีกครั้งในขณะที่คัดลอกไปยัง NAS
mivk

6
คำถามนี้มีอายุ 3 ปีและยังจำเป็นต้องหลีกเลี่ยงการใช้ระบบที่ไม่สามารถใช้งานได้ในขณะที่คัดลอกไปยัง pendrive ข้อมูลบางอย่าง: ถ้า pendrive จัดรูปแบบโดยใช้ Linux fs เช่น ext4 สิ่งนี้จะไม่เกิดขึ้น เมื่อฉันพูดว่า "ระบบที่ใช้ไม่ได้" ฉันหมายถึงจริงๆตัวชี้เมาส์จะไม่ตอบสนองและคุณต้องยืนยันที่จะย้ายไปรอบ ๆ หน้าจอคุณดูที่การตรวจสอบระบบและไม่มีการใช้ทรัพยากรที่ผิดปกติ คนเคอร์เนลทั้งหมดใช้ซีพียู Intel รุ่นที่ 6 และไดรฟ์ SSD หรือไม่ ทำไมพวกเขาถึงไม่สังเกตสิ่งนี้ขณะทำการทดสอบ
Hatoru Hansou

3
@HatoruHansou ฉันรู้สึกเหมือนกันฉันเพิ่งติดตั้ง Debian Stretch ใหม่และข้อผิดพลาดนี้ก็ปรากฏที่นี่เช่นกัน ฉันรู้ว่ามันไม่ได้ขึ้นอยู่กับการกระจาย แต่ขึ้นอยู่กับแหล่งที่มาของเคอร์เนล แต่ผู้ชายทำไมมันยังคงไม่ได้รับการแก้ไข
Marecky

1
@Marecky หลังจากอ่านบางดูเหมือนว่าสกปรก _bytes ไม่ได้เป็นสิ่ง usb เพียงอย่างเดียว พวกเขาส่งผลกระทบต่อ I / O ทั้งหมดดังนั้นหลังจากทำสิ่งที่สะท้อนคุณกำลังเปลี่ยนพวกเขาเป็นระบบระดับโลกไม่ใช่เพื่อคนเดียว สำหรับเซสชั่นปัจจุบันเท่านั้นฉันคิดว่า ดูเหมือนว่าค่าปัจจุบันของเคอร์เนลกำลังคิดในอุปกรณ์จัดเก็บข้อมูลที่ใหม่กว่า pendrives ช้าประสบเป็นผลข้างเคียง ขออภัยไม่มีลิงก์ แต่จะต้องค้นหาได้ง่ายโดย googling
Hatoru Hansou

3
ดูคำตอบนี้เพื่อทำให้ขัดขืน
PeterM

4

ฉันประสบปัญหาคล้ายกันกับระบบแช่แข็งเมื่อคัดลอกไปยังแฟลชไดรฟ์ ฉันรายงานรายงานข้อผิดพลาดเกี่ยวกับเรื่องนี้: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1267648

ฉันพบวิธีแก้ปัญหาการปิดใช้งานการสลับอย่างสมบูรณ์ช่วยขจัดปัญหานี้


1
น่าเสียดายที่นี่ไม่ได้ผลสำหรับฉันบน Ubuntu 16.04
Programster

ไม่ได้ผลสำหรับฉันทั้งบน Ubuntu 16.04.3 LTS - นี่เป็นแล็ปท็อป Alienware 17 R2
AnthonyK

4

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


2
เฮ้คุณช่วยแนะนำฉันหน่อยได้ไหมว่าฉันต้องตั้งค่าตัวเลขตามข้อกำหนดแล็ปท็อปของฉัน อ้างอิง askubuntu.com/questions/713723/…

1

ฉันมีปัญหาที่คล้ายกันเมื่อคัดลอกไฟล์ไปยังexfatไดรฟ์ ฉันมีปัญหาในการใช้ext4ระบบไฟล์บนฮาร์ดไดรฟ์ USB ของฉันน้อยลง


1
มีปัญหานี้ใน ext4 ด้วย
PeterM

Fedora 27 (เคอร์เนล 4.17.5-100) การคัดลอกจากสนิมหมุนที่พ่วงต่อกับ USB ไปยังแฟลชไดรฟ์ที่ต่อกับ USB เรื่องนี้ดูเหมือนจะไปไกลเท่าที่แช่แข็งหน้าจอล็อกเกอร์กลาง - จาง :-( ~~~
David Tonhofer

1

ฉันเพิ่งมีปัญหาเดียวกัน (ในปี 2019) บน Ubuntu 19.10 ในขณะที่คัดลอกไฟล์จำนวนมากจากดิสก์ USB ไปยังดิสก์ SATA ระบบไฟล์ทั้งสองเป็น ext4 เมื่อฉันปิดสวิตช์ปัญหาก็หายไป ดูเหมือนว่าข้อผิดพลาดบางอย่างในการจัดสรรหน่วยความจำสำหรับดิสก์บัฟเฟอร์ - ดูเหมือนว่าเคอร์เนลพยายามจัดสรรหน่วยความจำให้มากที่สุดสำหรับดิสก์บัฟเฟอร์เท่าที่จะเป็นไปได้ในสถานการณ์เช่นนี้ซึ่งไม่เหมาะสม มันคำนวณขนาดหน่วยความจำผิดเกินกว่าที่จะใช้สำหรับแคช ...

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