2.2. 主要和次要页面错误


RHEL for Real Time 通过将物理内存拆分为称为页面的块来分配内存,然后将它们映射到虚拟内存。当进程需要没有映射或内存中不再提供的特定页面时,会实时发生故障。因此,故障实际上意味着 CPU 要求时页面不可用。当进程遇到页面错误时,所有线程都会冻结,直到内核处理这个错误为止。解决此问题的方法有多种,但最佳解决方案可以调整源代码以避免页面错误。

次要页面错误

当进程在初始化前试图访问一部分内存时,实时会出现次要页面错误。在这种情况下,系统会执行操作来填充内存映射或其他管理结构。次要页面错误的严重性取决于系统负载和其他因素,但它们通常很短,并会影响到不计。

主页错误

当系统必须与属于其他进程的磁盘、交换内存页面或执行任何其他输入输出(I/O)活动来释放内存时,会发生实时重大错误。当处理器引用没有为其分配物理页面的虚拟内存地址时会出现这种情况。对空页面的引用会导致处理器执行错误,并指示内核代码分配页面,这会显著增加延迟。

在实时,当应用程序显示性能丢弃时,检查 /proc/ 目录中页面错误的进程信息会很有帮助。对于使用 cat 命令的特定进程标识符(PID),您可以查看以下相关条目的 /proc/PID/stat 文件:

  • 字段 2:可执行文件文件名。
  • 字段 10:次要页面错误的数量。
  • 字段 12:主页面错误的数量。

以下示例演示了使用 cat 命令查看页面错误并使用 pipe 功能,只返回 /proc/PID/stat 文件的第二行、第十和第十二行:

# cat /proc/3366/stat | cut -d\ -f2,10,12
  (bash) 5389 0
Copy to Clipboard Toggle word wrap

在示例输出中,PID 3366 的进程是 bash,它有 5389 次要页面错误,且没有主要页面错误。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部