【问题标题】:Impact of kernel on system call内核对系统调用的影响
【发布时间】:2020-09-29 22:04:27
【问题描述】:

我有两台不同的机器:

机器 1:

#uname

Linux

# uname -r

2.6.34.15-WR4.3.fp_x86_64_standard-00239-g7934205

机器 2:

#uname

Linux

# uname -r

4.4.217-pc64-distro.git-v2.102-3-rc

进程“X”在机器 2 中的 CPU 比在机器 1 中更高。

进程 X 在这两台机器上的代码完全相同。进程的负载也是一样的。

这里的问题是这里使用的系统调用可能会对 CPU 产生不同的影响,因为这两台机器的内核不同?

P.S:Machine 2 也在操作系统中进行了一些自定义。

有没有办法通过系统调用来检查 CPU 使用率?
Oprofile 没有在这台机器上运行.. 可能没有安装。没有安装相同的权限。

还有其他可以提供帮助的工具吗?

另外请任何人帮助让我知道 TCP SEND AND RECV buff 是否对进程的 CPU 有任何影响?

【问题讨论】:

  • “CPU 影响”是什么意思?在任何地方,在不同的内核版本中,系统调用(很可能)都有不同的代码。所以执行这段代码肯定会让 CPU 处于不同的状态。
  • CPU 影响是指 CPU 的负载。

标签: linux operating-system kernel system-calls cpu-usage


【解决方案1】:

简短的回答是,是的。进程的 CPU 负载由其用户空间处理(即进程代码)和内核空间(也称为“系统”,即系统调用所花费的时间)组成。因为系统调用实现可能在内核之间发生了变化,这可能导致内核空间中的处理更多。

但还有一个更长的答案,这取决于这些是哪些系统调用,是直接系统调用实现,还是内核子系统(例如 I/O 调度程序?)的更改,以及那些自定义你提到过。

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 2014-04-23
    • 2015-05-26
    • 1970-01-01
    • 2010-09-20
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多