小编Mar*_*ata的帖子

如何强制 Linux 内核“冻结”(或几乎冻结)几百毫秒

我们在非实时内核 (CentOS 6) 上运行实时进程,这可能不会改变。

我们有一个流视频应用程序,它需要来自定制 FPGA 的大约 500 MB/s 的 PCIe 流量,每次持续 1.5 小时。该应用程序运行良好 - 大多数情况下。但是,我们曾遇到过这样的情况,内核似乎一次停止响应 PCIe 或内存请求最多 500 毫秒。这似乎发生在来自另一个线程的突发文件 IO 期间。我发现无法通过在主应用程序运行时从用户空间执行大量虚拟文件 IO 来尝试复制此问题。

有没有办法强制(模拟)Linux 内核的全局“冻结”(特别是停止 PCIe 或所有 DDR3 内存访问或类似的东西),以便我们可以重现这个问题?

我们现在在内部 FPGA 存储器中实现了长达 10 毫秒的缓冲,但这还不够。我们可以缓冲到 FPGA DDR3,然后转储到主机,但是我们需要一种方法来在胁迫下测试这个新功能。

我们不希望内核永久冻结或锁定。我们希望能够设置时间间隔。

我正在寻找一些类似于写入魔法值的东西,/proc/sys/vm暂时使系统几乎爬行,然后在几百毫秒后恢复,但是查看可能的破坏方法的数量并不适合像我这样的新手(https://www.kernel.org/doc/Documentation/sysctl/vm.txt)。也许有什么numactl魔法?

linux kernel memory testing freeze

17
推荐指数
2
解决办法
4300
查看次数

如何监控每个进程的大页面使用情况

我正在尝试确定哪个进程正在使用大量的大页面,但我找不到一个简单的 Linux 命令(如top)来查看大页面的使用情况。我能找到的最好的是

$ cat /sys/devices/system/node/node*/meminfo | fgrep Huge
Node 0 HugePages_Total:   512
Node 0 HugePages_Free:    159
Node 0 HugePages_Surp:      0
Node 1 HugePages_Total:   512
Node 1 HugePages_Free:      0
Node 1 HugePages_Surp:      0
Run Code Online (Sandbox Code Playgroud)

它告诉我使用巨型页面的节点的粒度,但我想查看每个进程的巨型页面使用情况。我不介意遍历所有进程并使用cat一些/sys特殊设备来获取此信息。

一个类似的问题在这里没有得到回应:https : //stackoverflow.com/q/25731343/364818

顺便说一句,我没有运行 Oracle。

linux process memory

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

linux ×2

memory ×2

freeze ×1

kernel ×1

process ×1

testing ×1