标签: linux-kernel

通过 BIOS 或内核关闭超线程?

这些禁用的超线程方案之间是否存在性能差异?哪个最好,为什么?

  • 在 BIOS 中禁用 HT
  • 使用noht内核参数

高度优化的并行应用程序在启用 HT 的情况下运行速度较慢。
https://www.percona.com/blog/2015/01/15/hyper-threading-double-cpu-throughput/
我们的应用程序在 4 核上的运行速度比 4 核 + 4 HT 快 13%。

硬件:

  • 主板:Supermicro X9SPU-F
  • CPU:Intel(R) Xeon(R) CPU E3-1275 V2

bios hyperthreading linux-kernel

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

将一个容器 FS 树绑定挂载到另一个容器以用于调试或临时容器?

我正在测试 k8s 调试功能,包括调试 pod 和临时容器,但我无法弄清楚如何将“目标”pod 的文件系统正确映射到调试容器中。

我想使用递归绑定挂载 * 链接两个不相交的挂载命名空间,以便容器 A 将容器 B 的根视为容器 B 的根,/containerB反之亦然。包括所有卷和其他安装。

目标:同时访问调试和目标容器文件系统

目标是让目标 pod 的完整文件系统树,包括映射到调试容器的子目录(例如 )的卷和其他挂载/run/target。如果目标容器挂载持久卷,则应映射这些挂载点,因此,例如,如果目标容器具有,/data则调试容器应具有已安装的/run/target/data.

或者,可以将调试容器文件系统树“注入”到目标容器中,因此可以在调试容器/run/debug时公开可用的调试容器根。nsenter包括它的像 procfs 这样的挂载,所以它的功能齐全。

我希望能够例如调试容器提供的gdb -p $target_pid位置。为此,必须能够从目标容器中找到进程可执行文件。gdbgdb

我探索了一些解决方法。但我真正想做的是将mount --rbind目标容器 FS 树转移到来宾上,反之亦然。给定一个定制的特权调试容器,例如:

apiVersion: v1
kind: Pod
metadata:
  name: debugcontainer
  namespace: default
spec:
  nodeName: TARGET_NODE_NAME_HERE
  enableServiceLinks: true
  hostIPC: true
  hostNetwork: true
  hostPID: true
  restartPolicy: Never
  containers: …
Run Code Online (Sandbox Code Playgroud)

mount namespaces linux-kernel docker kubernetes

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

未能创建 fsnotify 观察程序:打开的文件太多

我在尝试跟踪 Kubernetes Pod 的日志时收到此错误。

failed to create fsnotify watcher: too many open files

linux linux-kernel kubernetes

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

重新启动后,通过 insmod 命令安装的模块会保留吗?

我正在阅读的这本书是如何描述该insmod实用程序的:

该程序将模块代码和数据加载到内核中,内核又执行类似于 ld 的功能,因为它将模块中任何未解析的符号链接到内核的符号表。然而,与链接器不同的是,内核不会修改模块的磁盘文件,而是修改内存中的副本。

看起来它不会持续存在,因为它在内存中,但我不确定。

linux-kernel

3
推荐指数
1
解决办法
8228
查看次数

如何实时查看linux内核日志?

当我使用它时,我有一个内核模块记录某个传感器的输入。我想看看是否有一个命令输出 /var/log/messages(例如)但等待更多日志的到来。也就是说,一些程序就像dmesg除了它保持打开并不断打印新来的日志之外。

logging linux-kernel

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

如何在启动时为非 root 用户设置硬文件和软文件限制?

我有一个 xen HVM vps,我试图在启动时为任何人提高硬文件和软文件限制。我正在使用 Ubuntu 10.04.3 并且在 /etc/security/limits.conf 里面我有:

nobody       soft    nofile   10000
nobody       hard    nofile  30000
Run Code Online (Sandbox Code Playgroud)

但是当我检查文件限制时仍然是默认的 1024:

su nobody -c 'ulimit -Hn'
1024
su nobody -c 'ulimit -Sn'
1024
Run Code Online (Sandbox Code Playgroud)

提高 Ubuntu 文件限制的正确方法是什么?

linux linux-kernel limits

3
推荐指数
1
解决办法
7388
查看次数

如何告诉内核在内存分配请求期间释放缓存内存而不是 OOM 终止程序终止应用程序

我正在使用以下内核版本运行 Ubuntu 10.04

Linux ip-10-0-1-119 2.6.32-343-ec2 #45-Ubuntu SMP 周二 2 月 14 日 18:18:17 UTC 2012 x86_64 GNU/Linux

内存状态显示缓存正在使用 RAM 的最大份额。

ubuntu@ip-10-0-1-12:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          7702       7657         44          0         24       6137
-/+ buffers/cache:       1494       6207
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

我知道操作系统会自动管理它并在缓存中保留最大的 RAM 份额以最小化 I/O 的成本。

问题是在重负载期间,当我们的应用程序需要内存时,如果物理 RAM 中没有相同数量的可用内存,OOM 杀手会终止应用程序。

我如何调整我的内核,以便如果我的应用程序有任何内存请求,内核应该释放一些缓存内存以为我的应用程序腾出空间,而不是 OOM 杀手终止它?

linux-kernel

3
推荐指数
1
解决办法
329
查看次数

Hyper-V 上的 Debian

我在 Hyper-V 虚拟机上安装了内核为 2.6.32-5-686 的 Debian。我不得不添加一个旧网卡。我按照本教程http://www.yusufozturk.info/linux-server/debian-2-6-36-kernel-upgrade-for-hyper-v-client-drivers.html添加 Hyper-V 驱动程序,但是当我使用新内核重新启动我收到此错误:

BLKVSC_DRV: blkvsc_probe() 错误!!register_blkdev() 失败!退 -16

在第一个引导日志(我无法复制,因为我没有在 dmesg 或引导日志中找到它)时,我看到一个 mount /dev 错误。

谢谢你。

debian hyper-v legacy linux-kernel

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

Centos 内核 .config 文件。我在哪里可以找到它?

我正在重建自定义内核。我在 Windows 上,获取.configCentOS RHEL linux 内核文件的最快方法是什么(对于make oldconfig)。我找不到它预装在 Linux 系统中(例如没有 /proc/config.gz)我假设它在某个地方的源 RPM 中。你有链接吗?

configuration centos linux-kernel

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

/proc/config.gz 的目的是什么

请问这个/proc/config.gz文件在我的 Linux 服务器文件系统中的用途是什么?

是一些备份文件,还是Linux系统更新的文件?我可以改变它吗?

kernel linux-kernel

3
推荐指数
1
解决办法
2347
查看次数