Solaris:什么是内核陷阱?

Solaris:什么是内核陷阱?

我想知道 Solaris 10 上的 top 报告的高陷阱计数是否

内核:1659 ctxsw,1069 陷阱, 4433 intr, 3837 syscall, 5 fork 内存:8192M 物理内存,299M 可用内存,4103M 总交换空间,3236M 可用交换空间

是不是一个问题。

使用 Google 搜索内核陷阱主要会返回有关内核架构的大量文档;如果能提供一些 Cliff Notes 就更好了。

谢谢

PS. 别介意交换

答案1

这可能是来自 CPU 的一种中断,但现在这并不重要。您可以man trapstat随意查看和阅读您收集的链接。

您说不用担心交换是错误的,因为(尤其是您的服务器尚未崩溃)陷阱可能与内存有关并且是由于 TLB 未命中造成的。使用trapstat -T大页面看看您是否可以从中受益(也许可以购买更多 RAM)。

这到底是不是一个问题,谁又能说得准呢?

顺便说一句,通常使用 prstat 来代替 top。

答案2

我认为我应该发布答案而不是评论。我试图找出删除它的方法,但不知道如何删除,然后我超过了五分钟的限制。无论如何......这里有一个更好的以答案形式出现的评论:

陷阱是 CPU 内置的一种机制,允许程序在另一个明确定义的位置继续执行(在这种情况下,它也从用户上下文切换到内核上下文,因此得名核心陷阱)。陷阱的一个用途是当硬件遇到错误并需要 CPU 继续执行错误处理代码(除以零、内存访问错误等)时。在 UNIX 系统中,陷阱还用于执行系统调用(请参阅 McDougall 和 Mauro 的优秀著作《Solaris Internals》,具体见第 2.8 章)。在您的案例中,内核在特定时间内进入了 1069 次。

不幸的是,如果您对您的系统、当前正在运行的进程以及运行的硬件了解不够多,就无法判断您的系统状态是良好还是不良。

相关内容