在双插槽 Xeon X5650 六核板上运行的 Linux 3.11.0-13-generic 上,htop显示不同的 kworker 线程。按名称排序(我稍微调整了此处显示的结果,使内核 2 上的线程先于内核 10 上的线程),结果如下:
kworker/0:0H
kworker/0:1
kworker/0:2
kworker/1:0
kworker/1:0H
kworker/1:1
kworker/2:0
kworker/2:0H
kworker/2:1
.....
kworker/11:0
kworker/11:0H
kworker/11:1
kworker/u48:0
kworker/u49:4
kworker/u49:5
kworker/u50:1
kworker/u50:2
.......
Run Code Online (Sandbox Code Playgroud)
名称以数字开头的线程被固定到具有相同数字的核心。所以第一个数字是运行线程的核心,我想知道:(0或0H或1)后面的符号是什么?
我也想知道这些uXX:Y符号的含义是什么?
我对 kworker 线程的作用只有模糊的了解:它们处理由执行 I/O 的系统调用引起的异步事件。他们在某处记录了吗?
在嵌入式设备中引导内核时,您需要向 Linux 内核提供设备树,而在常规 x86 pc 上引导内核不需要设备树——为什么?
据我了解,在 x86 pc 上,内核“探测”硬件(如果我错了,请纠正我),那么为什么内核不能探测嵌入式系统中的硬件?
我发现如果我选择jffs或sd作为文件系统(而不是initramfs),内核大小将非常小(1.4 MB 与initramfs3.4 MB 相比)。这意味着initramfs需要相当大的空间。所以如果可以的话,我会完全删除它,因此内核会非常小,这正是我想要的。
我脑海中浮现的基本问题是:为什么我需要initramfs?没有任何初始文件系统,Linux 内核不能启动吗?
我的最终应用程序只会进行计算和通信 - 根本没有存储。所以没有文件系统的操作系统是有意义的——至少对我的应用程序来说是这样。
我可能会遇到由于 CentOS 7 中的内核竞争而导致的奇怪症状。那么我如何安全地删除旧内核?我怎么知道哪个内核是最新的?
以下是我在相关服务器上研究时得到的终端输出。请注意,我尝试了 package-cleanup 但它留下了相同的 2 个内核:
本教程中的说明说以下两个命令的输出应该匹配,但您可以看到它们不匹配,即使在重新启动后:
[root@localhost ~]# rpm -qa kernel |sort -V |tail -n 1
kernel-3.10.0-229.el7.x86_64
[root@localhost ~]# uname -r
3.10.0-229.14.1.el7.x86_64
Run Code Online (Sandbox Code Playgroud)
其余命令确认有两个内核,并说明了删除旧内核的尝试。
[root@localhost ~]# cd /usr/src/kernels
[root@localhost kernels]# ls -al
total 16
drwxr-xr-x. 4 root root 4096 Oct 2 12:55 .
drwxr-xr-x. 4 root root 4096 Oct 2 13:15 ..
drwxr-xr-x. 22 root root 4096 Oct 2 12:55 3.10.0-229.14.1.el7.x86_64
drwxr-xr-x. 22 root root 4096 Oct 2 12:35 3.10.0-229.el7.x86_64
[root@localhost kernels]# rpm -q kernel
kernel-3.10.0-229.el7.x86_64 …Run Code Online (Sandbox Code Playgroud) 我发现 nvram 用于 BIOS 刷新/备份的信息,并且它包含一些与 bios 相关的数据。会cat /dev/random > /dev/nvram永久砖电脑吗?我很想输入这个命令,但不知何故,我觉得这对我的机器来说不会很好,所以我想我想知道玩这个设备有多危险。
当我为 java 进程 grep 时,我得到低于输出,但它限制为 4096 个字符,这导致实际进程名称(即 kafka.Kafka)未显示在grep输出中。
这是grep的限制吗?有没有办法打印超过 4096 个限制的字符?
ps -ef | grep java
Run Code Online (Sandbox Code Playgroud)
java -Xmx6G -Xms6G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+DisableExplicitGC -Djava.awt.headless=true -Xloggc:/x/kafka/data01/kafka-app -logs/kafkaServer-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom. sun.management.jmxremote.ssl=false -Dkafka.logs.dir=/x/kafka/data01/kafka-app-logs -Dlog4j.configuration=file:./../config/log4j.properties -cp :/x /home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/aopalliance-repackaged-2.4.0-b34.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10 -0.10.1.1/bin/../libs/argparse4j-0.5.0.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/connect-api- 0.10.1.1.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/connect-file-0.10.1.1.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/connect-json-0.10.1.1.jar:/ x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/connect-runtime-0.10.1.1.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10- 0.10.1.1/bin/../libs/guava-18.0.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/hk2-api-2.4.0 -b34.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/hk2-locator-2.4.0-b34.jar:/x/home/bmcuser/ kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/hk2-utils-2.4.0-b34.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/ bin/../libs/jackson-annotations-2.6.0.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jackson-core-2.6.3 .jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jackson-databind-2.6.3.jar:/x/home/bmcuser/kafka-paypal/ kafka_2.10-0.10.1.1/bin/../libs/jackson-jaxrs-base-2.6.3.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jackson-jaxrs-json-provider-2.6 .3.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jackson-module-jaxb-annotations-2.6.3.jar:/x/home/ bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/javassist-3.18.2-GA.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/ bin/../libs/javax.annotation-api-1.2.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/javax.inject-1.jar :/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/javax.inject-2.4.0-b34.jar:/x/home/bmcuser/kafka-paypal/ kafka_2.10-0.10.1.1/bin/../libs/javax.servlet-api-3.1.0.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/.. /libs/javax.ws.rs-api-2.0.1.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jersey-client-2.22.2 。罐:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jersey-common-2.22.2.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10 -0.10.1.1/bin/../libs/jersey-container-servlet-2.22.2.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/ jersey-container-servlet-core-2.22.2.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jersey-guava-2.22.2.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jersey-media-jaxb-2.22.2.jar:/x/home/bmcuser/kafka-paypal/kafka_2 .10-0.10.1.1/bin/../libs/jersey-server-2.22.2.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/ jetty-continuation-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-http-9.2.15.v20160210.jar: /x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-io-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-security-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2 .10-0.10.1.1/bin/../libs/jetty-server-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../ libs/jetty-servlet-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-servlets-9.2.15.v20160210。 jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-util-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal /kafka_2.10-0.10.1.1/bin/../libs/jopt-simple-4.9.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/ kafka_2.10-0.10.1.1.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1-so/libs/jetty-server-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-servlet-9.2.15.v20160210 .jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-servlets-9.2.15.v20160210.jar:/x/home/bmcuser/kafka- paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-util-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/ ../libs/jopt-simple-4.9.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1.jar:/ x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1-so/libs/jetty-server-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-servlet-9.2.15.v20160210 .jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-servlets-9.2.15.v20160210.jar:/x/home/bmcuser/kafka- paypal/kafka_2.10-0.10.1.1/bin/../libs/jetty-util-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/ ../libs/jopt-simple-4.9.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1.jar:/ x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1-so/libs/jetty-util-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jopt-simple-4.9.jar:/ x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10- 0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1-so/libs/jetty-util-9.2.15.v20160210.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/jopt-simple-4.9.jar:/ x/home/bmcuser/kafka-paypal/kafka_2.10-0.10.1.1/bin/../libs/kafka_2.10-0.10.1.1.jar:/x/home/bmcuser/kafka-paypal/kafka_2.10- …
根据我的信息,升级 linux 内核需要重新启动。重新启动家用计算机不是问题,但我认为这对服务器来说不是一回事。
那么使用 Linux 发行版的服务器是在升级内核后重新启动,还是使用某种技巧来避免启动?
我刚刚使用 ukuu(Ubuntu 内核更新实用程序https://doc.ubuntu-fr.org/ubuntu_kernel_upgrade_utility)在 Ubuntu 17.04 上安装了 Linux 内核版本 4.12 。
问题是,当我检查可用的 I/O 调度程序时,我似乎找不到 BFQ 和 Kyber I/O 调度程序:
cat /sys/class/block/sda/queue/scheduler
> noop deadline [cfq]
Run Code Online (Sandbox Code Playgroud)
那么如何使用这个 Linux 版本中的新调度程序之一呢?
如何更改 Linux(linaro、ubuntu、debian)上下文切换频率?
我可以用一个响应较慢的系统来换取一个更高效的系统。
EDIT1:我有一个主进程,我想尽可能快地运行(每秒最大时钟周期),所以我想降低上下文切换频率(=增加时间片)。问题是怎么做,会不会有显着的效果。我可以计算上下文切换的成本吗?意思是,如果我将时间片增加两个,我可以估计我关心的主进程的性能增益是多少?
是否有网站列出/proc每个条目的内容和含义?
linux-kernel ×10
linux ×5
kernel ×2
process ×2
bios ×1
boot-loader ×1
centos ×1
device-tree ×1
devices ×1
embedded ×1
initramfs ×1
proc ×1
procfs ×1
scheduling ×1
startup ×1
upgrade ×1