AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-143322

jakew009's questions

Martin Hope
jakew009
Asked: 2021-07-16 10:21:11 +0800 CST

了解没有交换的只读文件系统上的 buff/cache 和 tmpfs 关系

  • 0

我们有一个非常奇怪的错误,在 Raspberry Pi 上运行的 Yocto 操作系统会因为磁盘 IO 等待而“锁定”。

设想:

  • 操作系统以只读方式运行,没有交换
  • 有一个 tmpfs 文件系统,用于存储操作系统需要写入的内容(/var、/log 等)
  • tmpfs 默认为可用 2GB RAM 的一半
  • 有一个 USB 硬盘驱动器连接用于存储大型 MP4 文件

在运行与 Google Coral USB 加速器交互的 Python 程序一段时间后,输出top为:

top 命令的输出

因此 CPU 负载很大,但 CPU 使用率很低。我们认为这是因为它正在等待 IO 到 USB 硬盘。

其他时候我们会看到更高的缓存使用率:

Mem: 1622744K used, 289184K free, 93712K shrd, 32848K buff, 1158916K cached
CPU:   0% usr   0% sys   0% nic  24% idle  74% io   0% irq   0% sirq
Load average: 5.00 4.98 4.27 1/251 2645

文件系统看起来相当正常:

root@ifu-14:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/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% /run
tmpfs                   933.6M         0    933.6M   0% /sys/fs/cgroup
tmpfs                   933.6M     48.6M    884.9M   5% /etc/machine-id
tmpfs                   933.6M      1.5M    932.0M   0% /tmp
tmpfs                   933.6M     41.3M    892.3M   4% /var/volatile
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/cache
/dev/mmcblk0p1           39.9M     28.0M     11.9M  70% /uboot
/dev/mmcblk0p4          968.3M      3.3M    899.0M   0% /data
/dev/mmcblk0p4          968.3M      3.3M    899.0M   0% /etc/hostname
/dev/mmcblk0p4          968.3M      3.3M    899.0M   0% /etc/NetworkManager
/dev/sda1               915.9G     30.9G    838.4G   4% /mnt/sda1

当它全部“锁定”时,我们注意到 USB 硬盘驱动器因为完全没有响应(ls什么都不做,只是冻结)。

在 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 硬盘驱动器是否需要更改?有人可以解释发生了什么吗?

filesystems linux-kernel embedded-linux
  • 2 个回答
  • 241 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve