我看到 LOC 中断出现了巨大的峰值——大约每秒 400 万次,LOC 中断究竟是什么,什么会导致这些峰值,我该怎么办?
这是说明这些尖峰的穆宁图:
这是同一时期的 CPU 图表,显示了它是如何完全接管的。我喜欢这种颜色让服务器看起来在这些时期着火了......
这是一个运行 Ubuntu 8.04 的双四核 Xeon 服务器。报告的内核版本uname是 2.6.24-24-server。
这是 /proc/interrupts 的内容
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 0: 6930 6762 6633 6841 6760 6863 6692 6809 IO-APIC-edge timer 1: 0 0 0 0 0 1 1 0 IO-APIC-edge i8042 8: 3 2 4 3 7 5 6 3 IO-APIC-edge rtc 9: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi acpi 12: 1 0 0 1 0 …
在这个问题中,我想找出从单个服务器提供 40Gbps 的最佳配置/硬件。
情况
我们有一个视频共享代理服务器,可以从它后面的慢速存储服务器上卸载峰值。所有流量仅为 HTTP。服务器充当反向代理(未缓存在服务器上的文件)和网络服务器(存储在本地驱动器上的文件)。
目前有大约 100TB 的文件,并且在后端存储服务器上不断增长。
缓存机制是独立实现的,这个问题与缓存本身无关,因为它工作得很好——目前提供 14Gbps,传递给后端服务器的速度仅为 2Gbps。所以缓存使用很好。
目标
从单台机器实现 40Gbps 甚至更高的吞吐量。
硬件 1
硬件: Supermicro SC825, X11SSL-F, Xeon E3-1230v5 (4C/8T@3.4GHz), 16GB DDR4 RAM, 2x Supermicro 10G STGN-i1S (LACP L3+4)
固态硬盘:1x 512GB 三星,2x 500GB 三星,2x480GB Intel 535,1x 240GB Intel S3500
系统:
nginx:
如图所示,我们能够推动 12.5Gbps。不幸的是,服务器没有响应。
有两件事引起了我的注意。第一个是大量的 IRQ。在这种情况下,不幸的是我没有来自 /proc/interrupts 的图表。第二件事是高系统负载,我认为这是由于 kswapd0 仅使用 16G 内存时出现问题造成的。
硬件 2
硬件:Supermicro …
我想禁止某些 CPU 的中断。我听说过 IRQBALANCE_BANNED_CPUS 选项。我看到 irqbalance 在我机器的后台运行。我在哪里编辑以及如何配置该选项?例如,我想从中断中排除 cpus 2,3,4,5。参数描述符是:
提供 irqbalance 应该忽略的 CPU 掩码,并且永远不会将中断分配给
面具是什么意思?我在哪里使用该选项配置 irqbalance?
EDIT1:如何知道我的配置是否有效,换句话说,我的 CPU 没有收到中断?我正在检查 /proc/interrupts 但那里的一些数字正在增加。
EDIT2:现在我用 IRQBALANCE_BANNED_CPUS=3e 启动了我的机器,所以只有 CPU 0 不被禁止中断。所以我应该会看到 cpo0 收到很多中断,而其他 cpu 没有收到中断,对吗?这是我的 /proc/interrupts。所有 cpu 的粗体行都在变化。第 22、24、35 行和 LOC 正在更改。
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5
0: 26 0 0 0 0 0 IO-APIC-edge timer
1: 2 0 0 0 0 0 IO-APIC-edge i8042
6: 3 0 0 0 0 0 IO-APIC-edge floppy
8: 1 0 0 0 …Run Code Online (Sandbox Code Playgroud) 我的目标是为自定义低延迟网络程序配置我们的 CentOS(“免费”RHEL)5.x 服务器。我想尝试将以太网 NIC 中断处理绑定到程序运行的同一 CPU(希望提高缓存利用率)。此过程的第一步是确定 NIC 的 IRQ。
以下是一台服务器上 /proc/interrupts 的内容(请注意,为了简洁起见,我删除了 CPU 2 到 14):
CPU0 CPU1 CPU15
0: 600299726 0 0 IO-APIC-edge timer
1: 3 0 0 IO-APIC-edge i8042
8: 1 0 0 IO-APIC-edge rtc
9: 0 0 0 IO-APIC-level acpi
12: 4 0 0 IO-APIC-edge i8042
50: 0 0 0 IO-APIC-level uhci_hcd:usb6, uhci_hcd:usb8
58: 6644 25103 0 IO-APIC-level ioc0
66: 0 0 0 IO-APIC-level ata_piix
74: 221 533830 0 IO-APIC-level ata_piix
98: 35 0 2902361 PCI-MSI-X eth1-0 …Run Code Online (Sandbox Code Playgroud) 由于这个问题中概述的原因,我想更改 IRQ SMP 关联性:CPU0 is swamped with eth1 interrupts
但我不能——Input/output error当我尝试写信给/proc/irq/*/smp_affinity.
请向我指出有关此事的 HOWTO。(正式参考/proc/irq/*/也很酷。)
血腥细节:
请注意,这是基于 Ubuntu 的 Xen XCP 主机内的 VM (PV domU)。
$ uname -a Linux MYHOST 2.6.38-15-virtual #59-Ubuntu SMP Fri Apr 27 16:40:18 UTC 2012 i686 i686 i386 GNU/Linux $ lsb_release -a 没有可用的 LSB 模块。 分销商 ID: Ubuntu 描述:Ubuntu 11.04 发布:11.04 代号:natty $ sudo cat /proc/irq/*/smp_affinity 01 01 01 01 01 80 80 80 80 80 80 40 40 40 40 …