作为我们在Linux机器上运行以优化应用程序性能的实验的一部分,我们试图将所有networking中断分配给单个CPU核心。 不幸的是,它似乎没有按照它应该的方式工作。 例如我们在这里有一个中断: [root@shou18librh05 ~]# cat /proc/interrupts | grep 107 107: 0 0 0 0 0 0 0 0 PCI-MSI-X eth-mlx4-0 它目前在哪里处理? [root@shou18librh05 ~]# cat /proc/irq/107/smp_affinity 7fffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff 试图将其转移到第一个核心: [root@shou18librh05 ~]# echo 1 > /proc/irq/107/smp_affinity 它移动了吗? [root@shou18librh05 ~]# cat /proc/irq/107/smp_affinity 7fffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff 没有… 有没有人有一个想法,为什么这可能发生? 谷歌search没有给出任何明显的解决scheme/提示… Linux是: [root@shou18librh05 ~]# uname -a Linux shou18librh05 2.6.18-308.el5 #1 SMP Fri Jan […]
我有服务器处理大量的networking数据包。 我已经看到证据表明CPU0上运行的用户空间进程在networking负载很高时会影响性能。 我很确定这涉及到中断处理,特别是对于networking设备。 因此,我正在尝试改变networking(eth)设备的亲和力,以testing我的假设,看看我能否提高性能。 我明白,为了改变IRQ亲和力,我必须改变/proc/irq/XXX/smp_affinity 。 当我改变该文件中的值时,我只能将中断处理从一个CPU移动到另一个CPU。 例如,在一个4核心系统中,我可以将该值设置为1,2,4或8,并且我看到中断分别从核心0,1,2和3(通过监视/proc/interrupts )移动。 但是,如果我将亲和力值设置为任意核心组合,那么在所有核心中都看不到中断。 他们始终坚持一个核心。 例如, 设置ff :使用CPU0 设置12 :使用CPU4 (因此,似乎只有使用最低指定核心) 我已经停止irqbalance守护进程的情况下,这是影响的事情(虽然我怀疑不是我的理解是, irqbalance会改变smp_affinity文件的值,我不明白这一点)。 我的问题是: 我如何在内核之间平衡中断? 这样做甚至有可能吗? NB我已经在2台机器上试了这个:在VBox中运行的2个虚拟机,2个内核,eth设备使用IO-APIC ; 具有4个内核(8个超线程)和使用PCI-MSI eth设备的Ubuntu真机。 作为一个奖励问题: 是否有可能平衡PCI中断? 从我所了解的情况来看, IO-APIC中断肯定是可能的。
NetXtreme II BCM5709千兆以太网卡支持MSIfunction(消息信号中断),并有8个队列。 每个队列在/ proc / interrupts中都有自己的中断处理程序。 我试图完成的是告诉NIC哪些数据包应该进入哪个队列。 问题: 是否可以通过封装的协议types手动指定哪些IP数据包应该进入哪个队列(例如IPsec数据包进入一个队列,而TCP数据包进入另一个队列)? 如果可能的话 – 我怎样才能在Linux下做到这一点? 如果这是不可能的 – 我应该看一下支持MSI-X的网卡来解决这个问题吗? 更多细节: 我们有一个接口正在终止IPSec和转发/终止TCP连接。 IPSec数据包解密是内联的(这意味着解密在相同的ksoftirqd / X上下文中完成)。 我们试图找出如果IPSec数据包在另一个CPU上被调度而不是TCP数据包,我们是否能够提高总体性能。 另一个限制是IPSec代码不是MP安全的,因此我不能在多个ksoftirqd / X下运行它。 默认情况下,数据包似乎是通过8个NIC队列上的源IP分发/散列的。 瓶颈在于IPSec,它在遏制/encryption处于ksoftirqd / X上下文中的100%CPU的IPSec数据包时扼杀TCPstream量。 OS是Ubuntu 10.10(2.6.32-27-服务器),NIC是Broadcom BCM5709。
为什么中断仅限于CPU0,而不是使用其他可用的内核? 只有LOC:我可以看到中断被分配给其他内核,为什么eth0和eth1没有发生? CPU0 CPU1 CPU2 CPU3 0: 3860081907 0 0 0 IO-APIC-edge timer 1: 20 0 0 0 IO-APIC-edge i8042 6: 5 0 0 0 IO-APIC-edge floppy 7: 0 0 0 0 IO-APIC-edge parport0 8: 0 0 0 0 IO-APIC-edge rtc 9: 0 0 0 0 IO-APIC-level acpi 12: 240 0 0 0 IO-APIC-edge i8042 […]
所以我有一台运行Debian Jessie的Dell PowerEdge R610服务器,根据一些文档有一个错误的芯片组: https : Intel 5500 rev 13 =7014344 ( Intel 5500 rev 13 )。 提供的shelltesting证实了此芯片组的存在: lspci -nn | grep -qE '8086:(340[36].*rev 13|3405.*rev (12|13|22))' && echo "Interrupt remapping is broken" lspci -nn | grep -qE '8086:(340[36].*rev 13|3405.*rev (12|13|22))' && echo "Interrupt remapping is broken" 它在BIOS中禁用VT-d ,并将GRUB_CMDLINE_LINUX_DEFAULT="quiet intremap=off"添加到/etc/grub/default 。 我的问题是,这是否会影响NIC卡的MSI-Xfunction(它应该在内核之间传播中断)? 在这个特定的服务器上,实际上只有一个内核正在处理中断,但我不确定这是否是禁用的BIOS和内核设置的结果。 还是别的什么可以在玩? (不幸的是,我没有访问BIOS来更改设置,并打开functiontesting的东西)。 谢谢。 […]
我们正在更换我们的服务器机房的搁架,我发现一张已经被覆盖的纸张,列出了在停电期间/之后采取的各种动作: ADSL调制解调器closures和打开 启动所有服务器 开始生产订单轮询过程 检查:电子邮件服务已启动 检查:SQL代理服务已启动 检查:恢复了互联网连接 复印机:closures和打开 其中的一些步骤是有道理的,但我不确定是否closures电源。 我们所有的调制解调器,路由器,交换机和服务器都使用备用电池。 PowerChute Business Edition安装在服务器上,它们被configuration为在最后一分钟自动closures(因为我们有很多短暂的中断)。 我知道从过去的中断,自动关机正在工作,服务器正在恢复电源时,自动重新启动。 复印机没有备用电池,考虑到每个人都希望他们死亡,我对保护他们并不感兴趣。 检查一切正常,再次运行是有道理的,我已经configuration了很多自动电子邮件来处理这个问题(使用第三方监控服务)。 那么在停电期间,我真的需要做些什么呢? 我认为,记下时间,并呼吁电力公司应该是足够的。 我已经在这个网站上的其他地方看过一些人推荐手动closures所有的东西,但是我们不会停留在现场直到权力恢复,所以我们希望事情自己回来。 为了给出一些关于环境的内容,我们的电子邮件服务器位于内部,还有一个运行我们的在线订购系统和zip定位器服务的web服务器。 这些需要起来,虽然订单不是真的失去了,当我们失望; 我们是一家拥有分销networking的制造公司,所以我们不直接销售给最终消费者。 当系统恢复时,我们的分销商将会input他们的订单。
起初,我不能正确地命名我的问题,所以这将被调整 我最近经历了一个国际networking的差距。 意味着全球networking的某些部分不可用。 我能够find使用ping , traceroute , nmap工具哪里发生的差距和我的请求扔掉或丢弃。 最近差距的例子: traceroute to 46.249.37.143 (46.249.37.143), 64 hops max, 52 byte packets 1 comtrend.home (10.0.0.1) 3.934 ms 0.860 ms 0.775 ms 2 88.103.200.48 (88.103.200.48) 24.264 ms 24.790 ms 23.823 ms 3 88.103.203.1 (88.103.203.1) 25.447 ms 25.848 ms 26.754 ms 4 194.228.190.1 (194.228.190.1) 34.816 ms 27.087 ms 27.312 ms […]
运行Server 2008 R2系统上的Windows dcdiag.exe命令行工具是否会干扰该计算机上的所有服务? less量的CPU和networkingstream量使用是可以接受的,但是系统是活动的,机器上的应用程序必须保持运行而不中断。
我试图让我的Xen Dom0在smp环境下分发irqs。 据我所知有2个选项: 使用irqbalance configuration没有CPU热插拔支持的内核 我的系统是Debian Squeeze,Xen 4.0.4,内核3.2.31。 我的问题是: irqbalance由于更改了/ proc / irq *布局或irq0而导致的segfaults(这似乎是Lenny以来存在的一个非常古老的bug) 要configuration没有CPU hotplug支持的内核,必须禁用通过标准的wys(make config / make menuconfig)看起来不可能的cpu powermanagement – 选项CONFIG_PM只是默认为“Y”。 任何人都知道如何得到一个适当的IRQ分配debian dom0内核?
对于计划中断,我们需要input时间,以便这段时间不会被视为停机时间。 到现在为止还挺好。 但是,如果有人没有定义一个中断窗口,我们需要调整后的病房,这是可能的opennms? 如果是的话,我们该怎么做呢? 谢谢