我使用的是 Debian 9(延伸版)内核 4.9,具有 32 个 cpu 核心的 hp dl385 g7 服务器。NIC 队列与处理器核心相关联。服务器正在调整流量(iproute2和htb纪律+skbinfo+ipset+ifb)并通过iptables过滤一些规则。
此时,当流量增加约 1gbit/s 时,CPU 负载非常高。Perf 工具告诉我内核模块native_queued_spin_lock_slowpath负载 cpu 大约为 40%。
谁知道如何找到问题所在?
在Linux中,可执行的ELF文件分别是什么
其中哪些被调用
execve()dlopen()?他们如何援引execve()或者dlopen(),解决了鸡-蛋的问题,execve()或dlopen()用于调用可执行文件?
谢谢。
我发现当负载高于 4.0(有 4 个内核)时,我的“PCI 适配器”会过热。当负载低于 4.0 时它不会过热(但我有一个超频的内存,正如我在最后解释的那样导致了问题),所以我的重点是降低系统负载。过热只是k10temp-pci-00c3 PCI Adapter(根据传感器)。
错误:
我试图跟踪构成该值的应用程序,以及每个应用程序做了多少。
从这个问题,我发现atop,但阅读它的输出,不清楚哪些应用程序组成了系统负载......就像一个“简单”的列显示缺少SYSLOAD。似乎我可以使用所有显示的信息来计算可以显示此类列的内容,但我只是不知道如何。
我发现的关于系统负载的解释似乎过于笼统(我可能是错的..),所以我无法理解它们以产生算法;我想我应该混合一些数据,如 cpu 使用情况、io 使用情况、mem 使用情况等,即使它有点模糊地猜测,也可以获取系统负载...
关于系统负载如何工作的精确信息:
在这个问题上有一个对解释它的pdf的参考。负载似乎与特定应用程序并不完全相关...
仍然需要一个解决方法:
无论如何,我仍然想知道关于系统负载的应用程序方法有多大可能,可能有某种方法可以将整个系统利用率优先考虑到某些特定应用程序,而其他所有应用程序都会阻塞它,甚至当他们不使用太多 CPU(少于 3%)时,冷静下来?
正在进行的测试:
我将所有进程设置为nice -n 19,但我正在积极使用一个窗口/进程;我看到 psensor 对温度图的改进(该图不那么模糊了);温度保持更长时间,现在低于极限;所有进程似乎都按预期运行;系统负载仍然很高,但我看到它曾经到6.0并且温度仍然很好;没有突然关机,因为……需要更多的测试……
终于找到罪魁祸首:
我的内存应该接受2000MHz。很久以前,我将它设置为 1600MHz,因为否则机器将无法启动。现在我将它设置为自动,是什么让它在 1333MHz 下工作。当我运行繁重的应用程序时,现在过热(达到80 摄氏度以上)的k10temp-pci-00c3温度始终保持在60 摄氏度左右!此外,平均负载约为 3.5 到 4.0,不会导致任何硬件问题!在漂亮19中的进程帮助推迟的确是过热,但wasnt能够完全阻止它!
$ file /lib/ld-linux.so.2
/lib/ld-linux.so.2: symbolic link to i386-linux-gnu/ld-2.27.so
$ readlink -f /lib/ld-linux.so.2
/lib/i386-linux-gnu/ld-2.27.so
$ file /lib/i386-linux-gnu/ld-2.27.so
/lib/i386-linux-gnu/ld-2.27.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=7a59ed1836f27b66ffd391d656da6435055f02f8, stripped
Run Code Online (Sandbox Code Playgroud)
那么是ld-2.27.so 共享库吗?
据说它是一个动态链接器/加载器,在 man 的第 8 节中提到过。那么它是一个可执行文件吗?
如果是,为什么它像共享库一样命名为*.so?
如果不是,我该如何理解它就像一个可执行文件,因为它是一个动态链接器/加载器,并且在 man 的第 8 节中提到过?
谢谢。
如何在特定内存地址加载内核驱动程序?
如何使用以下方法完成?
insmod或modprobe链接器(用于在编译后执行链接)和加载器(用于执行可执行文件)的存在是否不依赖于诸如 Linux 之类的操作系统?(我曾想到 Linux 中的链接器和加载器,它们要么由操作系统提供,要么像其他应用程序一样由软件提供。现在我认为它们非常特殊且不同。无论安装哪个操作系统,它们都可能相同。)
链接器和加载器是否存在于机器语言即 ISA 级别?(在那个级别,没有操作系统。)还是汇编语言级别?
从编程软件的角度来看,将操作系统视为编程库(库)是否正确?
谢谢。
我想知道在哪里将链接器和加载器安装到计算机系统的级别/层中。
有关计算机系统的层/级别,请参阅 Nisan 的 The Elements of Computer Systems:
有关链接和加载,请参阅计算机系统:程序员的观点
load ×6
linker ×3
cpu ×2
linux ×2
application ×1
assembly ×1
debian ×1
drivers ×1
htop ×1
kernel ×1
linux-kernel ×1
memory ×1
networking ×1
top ×1