Questions tagged «kernel»

有关UNIX内核的所有内容:开发,配置,编译,设计等。

3
Linux内核线程真的是内核进程吗?
我在许多地方都读到Linux在Java VM中为每个用户线程创建一个内核线程。(我看到术语“内核线程”以两种不同的方式使用: 创建用于执行核心OS工作的线程,以及 操作系统知道的线程,并计划执行用户工作。 我说的是后一种。) 内核线程是否与内核进程相同,因为Linux进程支持父级和子级之间的共享内存空间,或者它确实是一个不同的实体?

4
为什么kworker在Linux 3.0.0-12服务器上消耗了这么多资源?
上周五,我将Ubuntu服务器升级到11.10,该服务器现在运行3.0.0-12服务器内核。从那以后,整体性能急剧下降。升级之前,系统负载约为0.3,但在8核CPU系统上,它的负载为22-30(16 GB RAM)(10GB可用空间,不使用交换空间)。 我要怪BTRFS文件系统驱动程序和底层MD阵列,因为[md1_raid1]和[btrfs-transacti]消耗了很多资源。但是所有的[kworker / *:*]消耗更多。 sar 自周五以来一直不断输出类似的结果: 11:25:01 CPU %user %nice %system %iowait %steal %idle 11:35:01 all 1,55 0,00 70,98 8,99 0,00 18,48 11:45:01 all 1,51 0,00 68,29 10,67 0,00 19,53 11:55:01 all 1,40 0,00 65,52 13,53 0,00 19,55 12:05:01 all 0,95 0,00 66,23 10,73 0,00 22,10 并iostat确认写入速度非常差: sda …
19 kernel  performance  cpu  load 

3
PKCS#7签名未使用可信密钥签名
在MacBook 2017上禁用SIP的情况下安装Ubuntu-0问题,在几秒钟内启动。 我一直在构建它,并在尝试使WiFi工作时出现了问题。在某个时候(很晚),发生了三件事的组合: 我启用了SIP 我试图安装Broadcom 4360x驱动程序 我从GitHub存储库重新安装了触摸板驱动程序 这些是项目: [ +0.001007] input: Apple Inc. iBridge as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.2/0003:05AC:8600.0001/input/input7 [ +0.057765] hid-generic 0003:05AC:8600.0001: input,hidraw0: USB HID v1.01 Keyboard [Apple Inc. iBridge] on usb-0000:00:14.0-3/input2 [ +0.000196] hid-generic 0003:05AC:8600.0002: hiddev0,hidraw1: USB HID v1.01 Device [Apple Inc. iBridge] on usb-0000:00:14.0-3/input3 [ +0.000230] PKCS#7 signature not signed …

1
禁用在内核中编译的内核模块(未加载)
我的服务器有两个1 Gb和两个10 Gb板载网卡。 我需要完全禁用1-Gbit网卡,以便ifconfig -a不显示它们。 网卡使用不同的内核模块。10 Gb使用ixgbe和1 Gb使用igb。 01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) Subsystem: Dell Ethernet 10G 4P X520/I350 rNDC Kernel driver in use: ixgbe 05:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01) Subsystem: Dell I350 Gigabit Network Connection Kernel …


3
“参数列表太长”:如何在不更改命令的情况下处理它?
当我运行类似的命令时ls */*/*/*/*.jpg,出现错误 -bash: /bin/ls: Argument list too long 我知道为什么会这样:这是因为对命令参数的空间大小存在内核限制。标准建议是更改我使用的命令,以避免为参数(例如use find和xargs)占用太多空间。 如果我不想更改命令怎么办?如果我想继续使用相同的命令怎么办?我如何才能使事情“正常运行”,而不会出现此错误?有哪些解决方案?


3
重写现有文件,以便原子地将其替换为新版本,只有完全写入一次
我隐约记得在某些地方阅读某处曾经有一种打开现有文件进行写入的方式,它带有一个标志,要求内核使用旧版本(供其他进程访问以进行读取),直到“新版本已完全写入(fd已关闭),此后文件将显示为新版本。 换句话说,其他进程要么看到的是旧版本,要么看到的是新版本,而从来没有看到不完整的版本。 有知识的人可以为我提供参考吗?

2
新glibc版本可以与旧内核一起使用吗?
显然,可以使用glibc进行编译--enable-kernel以支持较早的内核版本。但是,我无法找到有关特定glibc版本支持哪些内核版本的信息。理想情况下,我想查看每个glibc(2.x)和内核(2.6.x)版本的兼容性列表。是否存在? 如果它不存在,也许是因为每个glibc版本(最近5年左右)都支持2.6.0以来的所有内核? (Arch = x86-64,如果重要的话)


1
如何挂载大于4KB的文件系统?
我从WD Mybook Live NAS中拉出了3TB硬盘。分区表如下: Model: ATA WDC WD30EZRS-11J (scsi) Disk /dev/sdb: 3001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Number Start End Size File system Name Flags 3 15.7MB 528MB 513MB primary 1 528MB 2576MB 2048MB ext3 primary raid 2 2576MB 4624MB 2048MB ext3 primary raid 4 4624MB 3001GB 2996GB …
18 linux  kernel  ext4  nas 


2
如何检查Linux内核是否启用了“ Retpoline”?
对于“ Spectre”安全漏洞,引入“ Retpoline”是减轻风险的解决方案。但是,我读了一篇提到的文章: 如果您构建内核而没有 CONFIG_RETPOLINE,则无法使用retpoline来构建模块,然后再期望它们加载—因为不会导出thunk符号。 如果您使用retpoline构建内核,则可以成功加载不是使用retpoline构建的模块。(来源) 有没有一种简单且通用/通用/统一的方法来检查内核是否启用了“ Retpoline”?我想要这样做,以便安装程序可以使用要安装的内核模块的正确构建。


4
如何强制Linux内核“冻结”(或几乎冻结)几百毫秒
我们正在非实时内核(CentOS 6)上运行实时进程,并且这种情况可能不会改变。 我们有一个流媒体视频应用程序,它需要一个定制的FPGA每次连续1.5小时连续提供约500 MB / s的PCIe流量。该应用程序运行良好-大多数时候。但是,在某些情况下,内核似乎一次最多只能停止响应对PCIe或内存请求的服务,最长可达500毫秒。这似乎是在来自另一个线程的突发文件IO期间发生的。我发现无法通过在主应用程序运行时仅从用户空间进行大量虚拟文件IO来尝试复制此问题。 有没有一种方法可以强制(模拟)Linux内核的全局“冻结”(特别是停止PCIe或所有DDR3内存访问等操作),以便我们可以重现此问题? 目前,我们已将最多10毫秒的缓冲实现到内部FPGA存储器中,但这还不够。我们可以缓冲到FPGA DDR3,然后转储到主机,但是我们需要一种在胁迫下测试此新功能的方法。 我们不希望内核永久冻结或锁定。我们希望能够设置时间间隔。 我正在寻找一些方法来/proc/sys/vm临时编写魔术值,这些临时值会使系统虚拟爬网,然后在几百毫秒后恢复原状,但是寻找打破它的可能方法的数量并不适合像我这样的新手(https://www.kernel.org/doc/Documentation/sysctl/vm.txt)。也许有些numactl魔术?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.