Questions tagged «linux-kernel»

Linux内核是Linux类Unix操作系统家族使用的操作系统内核。它是自由和开源软件最突出的例子之一。

3
如果我有无滴答和高分辨率计时器,则需要1000 HZ linux内核吗?
我正在尝试提高服务器的性能。我有一些进程需要低抖动(方差小于10ms)。 我在i7-920(4个物理内核,8个HT)上平均有4个最大负载。大约有10个进程,占核心用户模式的40%到90%。系统使用率总计为3%。总CPU使用率最高为80%。 如果已经设置了无滴答和高分辨率计时器,将内核从100hz设置为1000hz会改善抖动吗? 此页面似乎表明它仍在执行某些操作。https://lkml.org/lkml/2009/4/28/401 从自愿(PREEMPT_VOLUNTARY)变为可抢占(PREEMPT)怎么样?

5
tc u32 —如何在最近的内核中匹配L2协议?
我有一个很好的成型器,带有哈希过滤,是在linux桥上构建的。简而言之,对于br0连接接口external和internal物理接口,VLAN标记的数据包是“透明”桥接的(我的意思是,那里没有VLAN接口)。 现在,不同的内核执行不同的操作。我可能对确切的内核版本范围有误,请原谅。谢谢。 2.6.26 因此,在debian中,2.6.26及更高版本(我相信最多为2.6.32)---可行: tc filter add dev internal protocol 802.1q parent 1:0 prio 100 \ u32 ht 1:64 match ip dst 192.168.1.100 flowid 1:200 在这里,“内核”将“协议”字段中的两个字节与0x8100匹配,但是将ip数据包的开头计为“零位置”(对不起,我的英语不好意思,如果我不太清楚的话)。 2.6.32 同样,在debian(我还没有构建香草内核)中,2.6.32-5 ---这可行: tc filter add dev internal protocol 802.1q parent 1:0 prio 100 \ u32 ht 1:64 match ip dst 192.168.1.100 at 20 …

3
什么是mdev?如何在Linux中创建/ dev / *节点?
我们的Linux内核是2.6.31,在带有busybox的嵌入式MIPS处理器上运行。 初始化脚本(rcS)使用以下命令启动mdev: echo "/sbin/stbhotplug" > /proc/sys/kernel/hotplug mdev -s 谁能告诉我Linux实用程序mdev做什么? 它看起来像自动热插拔,因为stbhotplug是处理以太网接口的脚本。 另外,我们给的rootfs仅具有一个控制台设备,即/dev/console是中的唯一文件/dev。 但是,当系统运行时,/dev目录中充满了设备文件(例如/dev/mtd)。 我问的原因是,有时我们会收到一条错误消息,/dev/ubi_ctrl即报告未找到或未/dev/ubi1找到。 Linux如何或何时创建这些设备? 谢谢。

2
无法在VPS上更新Linux内核
我最近开始从OVH使用VPS:http ://www.ovh.co.uk/vps/vps-classic.xml 这很可能是这一提供商所特有的问题。 我的目标是在其上安装和运行Docker,为此,我需要内核支持模块。默认情况下,OVH的VPS计算机使用的自定义内核不会,并且Docker崩溃。我几次尝试重新安装计算机,并使用Debian(6、7)和Ubuntu(12.04、13.10)的各种版本的VPS,每次uname -r向我展示 uname -r 2.6.32-042stab084.14 ... / boot目录为空,没有安装grub或lilo,没有安装linux-image软件包,尽管它们可用。 从存储库,grub安装Linux内核,更新grub(这是我用Google搜索出来的广泛建议)和重新引导计算机的效果不大。Grub找到一个系统映像,重新安装了一个,/ boot被填充,但是系统仍然运行上述内核。这个和以上症状使我感到非常困惑:这台机器首先如何启动?网络启动也许?如何检查,如何更改此行为? 根据netboot的想法,我再次检查了google,这告诉我OVH Web管理器版本3中有一个选项可以更改网络启动设置。我使用Manager v.6来修改我的VPS(他们说功能已移到那里),我在那里找不到这种选择,以前的Manager版本甚至都看不到我的VPS。 这是我到目前为止所走的路。我想在此VPS上运行标准存储库内核,也欢迎就此设置的工作原理以及为何如此麻烦提出任何解释,因为现在我感到相当困惑:)

3
内核崩溃后,如何查看服务器中的日志?
我正在运行生产型gentoo Linux机器,最近有一种情况,服务器挂在我的同位办公场所中,当我到达那里时,我注意到服务器挂在了内核恐慌挂起的位置。我以硬重启的方式重启了计算机,但失望地发现我找不到任何有关计算机挂起原因的证据。 是真的,当我执行硬重启时,消息本身会丢失或者是否存在可以在syslog-ng或sysctl中进行某些设置的设置,以至少保留错误日志,从而防止此类情况的发生。在将来 ?我正在运行2.6.x内核。 提前致谢。

2
nic:邪恶的事发生了!ffff
我正在用Debian Stretch(9.7)配置一个GNU / Linux路由器,并且在重新启动服务器之前,从一个接口到另一个接口的所有流量都正常,但是在那之后,我收到了这样的消息(tty): enp1s6: Something Wicked happened! ffff. 为了测试目的,我在同一台交换机和同一网络上有一台主机,并且基本上,路由器的LAN不能响应回声请求。 这是有关服务器的一些信息。 内核日志 Jan 25 08:58:02 server001 kernel: [25060.494127] enp1s6: Link changed: Jan 25 08:58:02 server001 kernel: [25060.494127] 100Mbps, half duplex Jan 25 08:58:02 server001 kernel: [25060.494254] enp1s6: Something Wicked happened! ffff. Jan 25 08:58:02 server001 kernel: [25060.497338] enp1s6: Link up …

1
如何在Linux上实现每个数据包的多路径路由?
3.6之前的Linux内核使用路由缓存进行IPv4多路径路由,这意味着在两个单独的线路/ ISP之间进行路由非常容易。从3.6版开始,算法改为按数据包分组,这意味着需要一些路由表/规则/ iptables标记技巧才能实现两条线路/ ISP。 但是,如果您有两条使用同一ISP的线路,并且可以以平衡/故障转移的方式在每个数据包的基础上沿着一条线路将单个IP路由到两条线路,那么从3.6版开始,您可以轻松实现线路绑定(在IP级别),因为每个数据包在两个方向上的路由。 从4.4开始,内核再次基于基于源地址和目标地址的哈希值更改为基于流的负载平衡。 我当前正在运行内核4.4.36,并且正在通过PPPoE连接使用多路径路由。来自ISP的我的下游流量以每个数据包为基础通过两条单独的线路进行路由(一条IP沿着两条线路进行路由)。这使我的下载速度快于单个线路的速度。两条线的速度几乎相加。它确实运行良好,Skype视频,VoIP(UDP),YouTube等都很好。 由于具有良好的下游体验,我想在上游尝试,但上游的流量是根据较新的基于流的算法在两个ppp设备(具有相同IP地址)之间进行路由的。这意味着我无法实现比单行更快的上传速度。 有没有一种方法可以配置当前内核以使用每包算法?还是采用其他方法来实现每个数据包的多路径路由?我是否需要恢复到较旧的内核(出于各种其他原因,我不想这样做)? 我的ISP不支持多链接ppp。 如果相关,我目前正在Raspberry Pi 3上运行Arch Linux ARMv7。

1
如果Linux缓存太大,为什么QEMU无法分配内存?
如果我使用我的机器[Ubuntu 16.04 64位,内核4.4]一段时间,QEMU需要删除内核缓存,否则,它将无法分配RAM。 为什么会发生? 这是一个示例运行: ~$ free -m total used free shared buff/cache available Mem: 15050 5427 3690 56 5931 4803 Swap: 0 0 0 ~$ sudo qemu-system-x86_64 -m 10240 # and other options qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory ~$ echo 3 | sudo tee …

2
如何在CentOS中为所有现有和将来的内核设置默认内核参数?
我想删除在CentOS 6中启动内核时默认使用的rhgb和quiet内核参数,但是我希望它适用于所有当前安装的内核以及将来安装的所有内核。我需要通过脚本执行此操作,因此手动编辑文件不是一种选择,任何文件更改都应尽可能干净。 在是Debian / Ubuntu的我会改变GRUB_CMDLINE_LINUX_DEFAULT的/etc/default/grub,然后运行update-grub。我无法找到这样的设置/etc/sysconfig/grub或/etc/sysconfig/kernel然而,也没有一个update-grub脚本。

2
Linux内核版本控制:Debian Sid vs Ubuntu Precise
我安装了两台机器: 我在一台计算机上已经安装了Ubuntu Precise 12.04 beta,并将dist升级到最新软件包。 在另一台机器上,我已经安装了Debian Sid Unstable,并已dist升级到最新的软件包。 在Ubuntu计算机上,uname -a读取: Linux 3.2.0-20-通用#32-Ubuntu SMP 3月22日星期四02:22:46 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux 在Debian机器上,uname -a读取: Linux 3.2.0-2-amd64#1 SMP 3月28日星期三13:28:04 UTC 2012 x86_64 GNU / Linux 我的问题是关于内核版本的: Ubuntu: 3.2.0-20-generic Debian: 3.2.0-2-amd64 Linux的3.2版发布于: linux-3.2.tar.gz 05-Jan-2012 00:40 94M 从那时起,已经发布了13个发行点,来自kernel.org的3.2.1 .. 3.2.13和3.3版本。 我的问题是关于两台机器上两个内核的源树的历史: 那两个版本的内核从哪个正式的kernel.org内核发行? Debian …

1
刷新进程消耗过多的CPU
服务器是EC2实例,它代表将文件从HTTPD保存到NAS(NFS)。 诸如flush-0:32之类的进程消耗了%90以上的CPU,平均负载为:65.50、64.02、66.59。 根据该图,它每天都在增加,而4个核的初始平均负载分别为〜1.01、2.02和1.80。我在负载均衡器下添加了另一个类似的实例,它的CPU使用率仅为%6 ATM。 这些冲洗过程到底能做什么? 如果客户端仅需要写入数据,也许我们应该关闭NFS属性缓存? 可能是因为数据包碎片造成的吗? 以下是一些统计信息nfsstat -s -4: ================================================================= Server 0: Server rpc stats: calls badcalls badauth badclnt xdrcall 715054137 0 0 0 0 Server nfs v4: null compound 993 0% 715053143 99% Server nfs v4 operations: op0-unused op1-unused op2-future access close commit 0 0% 0 0% 0 …

1
/ proc / sys / fs / file-max的默认值
我知道/ proc / sys / fs / file-max定义了打开文件描述符的最大数量,可以在运行时或引导期间进行设置。 但是:它的默认值是多少?检查我公司的10台服务器会给我7个不同的值,这些值似乎都是随机的。 内核文档只提到了可以更改的值,但是没有更改默认值的计算方式。 谁知道默认值是如何确定的?

1
如何使用systemd在Linux中适当地永久启用IP转发?
我尝试启用IP转发(间enp0s3和tun0接口),并写net.ipv4.ip_forward = 1在/etc/sysctl.conf。重新启动后,我有 $ cat /proc/sys/net/ipv4/ip_forward 1 但是转发仍然无法正常工作。我尝试添加net.ipv4.conf.default.forwarding=1在/etc/sysctl.conf。现在重启后 $ cat /proc/sys/net/ipv4/ip_forward 1 $ cat /proc/sys/net/ipv4/conf/default/forwarding 1 $ cat /proc/sys/net/ipv4/conf/all/forwarding 1 $ cat /proc/sys/net/ipv4/conf/enp0s3/forwarding 0 $ cat /proc/sys/net/ipv4/conf/tun0/forwarding 0 我不能启用/proc/sys/net/ipv4/conf/enp0s3/forwarding,并/proc/sys/net/ipv4/conf/tun0/forwarding在sysctl.conf因为这些文件不存在于这样的早期启动时间: systemd-sysctl[85]: Couldn't write '1' to 'net/ipv4/conf/enp0s3/forwarding', ignoring: No such file or directory systemd-sysctl[85]: Couldn't write '1' to 'net/ipv4/conf/tun0/forwarding', ignoring: No such …

3
Linux:为什么使用性能调节器时CPU频率会波动?
我正在使用Debian 8 amd64机器进行基准测试。在实验期间,我希望CPU以固定频率(最好是最大频率)运行。这将排除CPU时钟速度成为结果变化的来源。 经过一番阅读之后,似乎正确的做法是将CPU调节器更改为performance,这在Linux内核文档中进行了介绍: CPUfreq调节器“性能”将CPU静态设置为scale_min_freq和scale_max_freq边界内的最高频率。 遗憾的是,有关进一步的细节scaling_min_freq,并scaling_max_freq没有提供。希望不要紧,因为使用的CPU频率是间隔的最大值。 因此,我已使用cpufreq-set启用了此调控器: $ cat / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor 性能 性能 性能 性能 而且,出于良好的考虑,我还在BIOS中禁用了涡轮增压模式: $ cat / sys / devices / system / cpu / intel_pstate / no_turbo 1个 根据性能调节器的上述说明,我希望CPU时钟速度不会波动。但是,如果我反复跑步cpufreq-info,我会看到时钟速度在波动: $ cpufreq-info | grep'当前CPU fr' …

2
在OOM Killer日志中查看完整的程序命令行参数
是否可以在OOM Killler日志中查看完整的程序命令行参数?我现在在/ var / log / syslog中看到的是 Memory cgroup out of memory: Kill process 29187 (beam.smp) score 998 or sacrifice child Killed process 29302 (cpu_sup) total-vm:4300kB, anon-rss:76kB, file-rss:272kB beam.smp invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0 beam.smp cpuset=/ mems_allowed=0-3 我的机器上有很多beam.smp进程,要找出被OOM杀手杀死的特定进程不是很方便。

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.