Score:0

ทำความเข้าใจเกี่ยวกับความสัมพันธ์ buff/cache และ tmpfs บนระบบไฟล์แบบอ่านอย่างเดียวโดยไม่มีการสลับ

ธง ru

เรามีบั๊กที่แปลกมากที่ระบบปฏิบัติการ Yocto ที่ทำงานบน Raspberry Pi จะ 'ล็อค' เนื่องจากดิสก์ IO รอ

สถานการณ์:

  • ระบบปฏิบัติการทำงานแบบอ่านอย่างเดียวและไม่มีการสลับ
  • มีระบบไฟล์ tmpfs สำหรับสิ่งที่ OS จำเป็นต้องเขียนถึง (/var, /log ฯลฯ)
  • tmpfs มีค่าเริ่มต้นเป็นครึ่งหนึ่งของ RAM 2GB ที่มีอยู่
  • มีฮาร์ดไดรฟ์ USB เชื่อมต่อสำหรับจัดเก็บไฟล์ MP4 ขนาดใหญ่

หลังจากรันโปรแกรม Python โต้ตอบกับตัวเร่งความเร็ว USB ของ Google Coral ได้ระยะหนึ่ง ผลลัพธ์ของ สูงสุด เป็น:

เอาต์พุตของคำสั่งด้านบน

ดังนั้นโหลด CPU จึงมาก แต่การใช้งาน CPU ต่ำ เราเชื่อว่าเป็นเพราะกำลังรอ IO ไปยังฮาร์ดดิสก์ USB

ในบางครั้งเราจะเห็นการใช้แคชที่สูงขึ้นไปอีก:

Mem: ใช้แล้ว 1622744K, ฟรี 289184K, ทำลาย 93712K, บัฟ 32848K, แคช 1158916K
CPU: 0% usr 0% sys 0% nic 24% ว่าง 74% io 0% irq 0% sirq
โหลดเฉลี่ย: 5.00 4.98 4.27 1/251 2645

ระบบไฟล์ดูค่อนข้างปกติ:

root@ifu-14:~# df -h
ขนาดระบบไฟล์ที่ใช้ ใช้ได้ ใช้% ติดตั้ง
/dev/root 3.1G 528.1M 2.4G 18% /
devtmpfs 804.6M 4.0K 804.6M 0% /dev
tmpfs 933.6M 80.0K 933.5M 0% /dev/shm
tmpfs 933.6M 48.6M 884.9M 5% /เรียกใช้
tmpfs 933.6M 0 933.6M 0% /sys/fs/cgroup
tmpfs 933.6M 48.6M 884.9M 5% /etc/รหัสเครื่อง
tmpfs 933.6M 1.5M 932.0M 0% /tmp
tmpfs 933.6M 41.3M 892.3M 4% /var/ระเหย
tmpfs 933.6M 41.3M 892.3M 4% /var/spool
tmpfs 933.6M 41.3M 892.3M 4% /var/lib
tmpfs 933.6M 41.3M 892.3M 4% /var/แคช
/dev/mmcblk0p1 39.9M 28.0M 11.9M 70% /uboot
/dev/mmcblk0p4 968.3M 3.3M 899.0M 0% /ข้อมูล
/dev/mmcblk0p4 968.3M 3.3M 899.0M 0% /etc/ชื่อโฮสต์
/dev/mmcblk0p4 968.3M 3.3M 899.0M 0% /etc/NetworkManager
/dev/sda1 915.9G 30.9G 838.4G 4% /mnt/sda1

เมื่อทุกอย่าง 'ล็อค' เราสังเกตเห็นว่าฮาร์ดไดรฟ์ USB ไม่ตอบสนองอย่างสมบูรณ์ ( ไม่ทำอะไรเลยและค้าง)

ในบันทึก dmesg เราสังเกตเห็นบรรทัดต่อไปนี้ (วางเป็นภาพเพื่อรักษาสี):

เอาต์พุต dmesg

นี่คือผลลัพธ์ทั้งหมดของ dmesg หลังจากที่เราเริ่มได้รับข้อผิดพลาดเหล่านี้: https://pastebin.com/W7k4cp35

เราสันนิษฐานว่าเมื่อซอฟต์แวร์ที่ทำงานบนระบบพยายามทำบางสิ่งกับไฟล์ขนาดใหญ่ (50MB +) (ย้ายไปมาในฮาร์ดไดรฟ์ USB) ระบบมีหน่วยความจำไม่เพียงพอ

เราไม่แน่ใจจริง ๆ ว่าเราดำเนินต่อไปอย่างไรในโลกนี้ เราพบบล็อกนี้: https://www.blackmoreops.com/2014/09/22/linux-kernel-panic-issue-fix-hung_task_timeout_secs-blocked-120-seconds-problem/ แบบไหนที่ดูเหมือนปัญหาเดียวกันและแนะนำให้แก้ไข vm.dirty_ratio และ vm.dirty_background_ratio เพื่อล้างแคชลงดิสก์บ่อยขึ้น

นั่นเป็นแนวทางที่ถูกต้องหรือไม่?

การตั้งค่าปัจจุบันคือ vm.dirty_ratio = 20 และ vm.dirty_background_ratio = 10

ฮาร์ดไดรฟ์ USB ที่ค่อนข้างช้าจำเป็นต้องเปลี่ยนสิ่งนี้หรือไม่ ใครสามารถอธิบายสิ่งที่เกิดขึ้น?

Score:3
ธง cn
[sda] tag#0 คำสั่งหมดเวลา รอ 180 วินาที
blkupdate_request: ข้อผิดพลาด I/O, dev sda1
ข้อมูล: งาน jbd2/sda1 ถูกบล็อกนานกว่า 122 วินาที

อุปกรณ์บล็อก /dev/sda ล้มเหลว แทนที่และกู้คืนข้อมูล

คำเตือนการบล็อกงานของ Linux คือเมื่องานไม่มีความคืบหน้าสำหรับสองสามีภรรยา นาที. ซึ่งเป็นชั่วนิรันดร์สำหรับคอมพิวเตอร์ แม้กระทั่งระบบจัดเก็บข้อมูล ปัญหา I/O ทริกเกอร์ซึ่งไม่ปกติ ไม่ว่าจะเป็นที่เก็บข้อมูลล้มเหลว หรือมีความขัดแย้งในปริมาณที่ไร้สาระ หรือมีบางอย่างที่ขาดแคลนทรัพยากรอย่างมาก เนื่องจากข้อความอื่นๆ มีหลักฐานของข้อผิดพลาด I/O ข้อความก่อนหน้าจึงน่าจะเป็นไปได้

หากพื้นที่เก็บข้อมูลถูกแทนที่แล้ว อาจเป็นไปได้ว่าโมเดลนั้นทำงานช้าและไม่เหมาะกับแอปพลิเคชันนี้ ลองใช้ SSD ประสิทธิภาพสูง เช่น NVMe ในอะแดปเตอร์ USB 3 หรือที่คล้ายกัน

นอกจากนี้ ยังมีการทดสอบการโหลดแบบสังเคราะห์เพื่อใช้พื้นที่จัดเก็บข้อมูลเช่นเดียวกับที่แอปพลิเคชันทำ และรับตัวเลขประสิทธิภาพ การเขียนแบบสุ่มเล็ก ๆ น้อย ๆ ลำดับที่ยาว อาจผสมผสานกัน บนลินุกซ์ ฟิโอ เป็นเครื่องทดสอบ I/O ที่ยืดหยุ่นมาก

ท้ายที่สุด เป็นไปได้ว่าส่วนประกอบฮาร์ดแวร์อื่นๆ ล้มเหลว เป็น Raspberry Pi ลองแทนที่สิ่งทั้งหมด

Massimo avatar
ng flag
ตามขนาด `/dev/sda1` ควรเป็นดิสก์ USB (ซึ่งคำถามอธิบายถึงการแช่แข็งแล้ว) ตัวดิสก์เองล้มเหลวหรือมีบางอย่างผิดปกติกับกล่องหุ้ม
ru flag
วันนี้ฉันลองไดรฟ์ใหม่เหมือนกันสามตัว แต่ฉันจะลองยี่ห้ออื่นในวันพรุ่งนี้ สิ่งที่แปลกมากคือปัญหาจะปรากฏขึ้นเมื่อเราเรียกใช้โปรแกรมที่ใช้ตัวเร่ง Google Coral AI และหน่วยความจำอีกเล็กน้อยเท่านั้น อาจจะขัดแย้งกับบัส USB? หากไม่มี Google Coral ก็ไม่มีปัญหา
John Mahowald avatar
cn flag
ข้อผิดพลาดบางอย่างจะปรากฏเฉพาะเมื่อโหลดเท่านั้น เปลี่ยนสิ่งต่างๆ ไปเรื่อยๆ และลองใช้ที่เก็บข้อมูลรุ่นต่างๆ
Score:1
ธง ru

เพื่อเป็นการอัปเดตสำหรับคำถามนี้ คำตอบก่อนหน้านี้เกี่ยวกับเงินค่อนข้างมาก

ปัญหาคือข้อเท็จจริงที่ว่า Raspberry Pi 4 ไม่สามารถจ่ายพลังงานจากพอร์ต USB ได้เพียงพอเพื่อขับเคลื่อนทั้งฮาร์ดไดรฟ์ USB และ Google Coral ในเวลาเดียวกันเป็นเวลานาน หลังจากนั้นครู่หนึ่ง ฮาร์ดไดรฟ์ USB เริ่มทำงานผิดปกติมากตามบันทึกด้านบน ซึ่งทำให้ดูเหมือนว่าล้มเหลว

การเปลี่ยนไปใช้ SSD ทำให้ปัญหาหมดไปในทันที

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา