AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[irq](server)

Martin Hope
Joseph
Asked: 2021-09-23 22:37:55 +0800 CST

使用 proxmox 容器上的 NetData 监控 softirqs RCU 上的峰值

  • 2

我有一个具有以下特点的服务器:https ://www.soyoustart.com/it/offerte/1801sysgame05.xml

处理器 Intel i7-4790K

内存 32GB DDR3 1333MHz

包括流量无限的Anti-DDoS

磁盘 1x240GB SSD

带宽 250 Mbps

我已经安装了 Proxmox Linux 发行版,它运行基于 Ubuntu 服务器的容器来处理用 C++ 编写的实时 TCP 游戏服务器,目前该服务器拥有大约 1000 名在线用户,我们将很快将当前人口翻一番.

问题是,一旦在线用户数量达到约 850,我们就会遇到一个奇怪的性能“瓶颈”。一旦它回到约 800 或更少,瓶颈就会消失。实际上发生的情况是玩家必须等待大约 30 秒才能连接到服务器,而已经连接的玩家没有遇到任何问题(没有延迟、没有冻结等)。似乎网络拥塞、上限或类似情况会拒绝与同一进程的进一步连接并对我们的 CPU 造成压力(从下面的屏幕截图中可以看到)

在这里,我从我们的 NetData 中收集了一些图表,其中我注意到了相同的“模式”。我猜softirqs RCU特别有意义,但我不知道它到底是什么意思。

软中断 RCU: 图片

cpu使用/压力: 图片

处理器频率 图片

处理器温度

图片

我不认为问题出在我们的 CPU 本身,但如上所述,似乎与进程限制或类似问题有关。

你知道发生了什么吗?

更新:

另一个相关图表

图片

tcp proxmox cpu-usage irq netdata
  • 1 个回答
  • 125 Views
Martin Hope
Hubro
Asked: 2021-02-05 15:13:58 +0800 CST

如何覆盖 NVME 设备的 IRQ 关联

  • 4

我正在尝试将所有中断移至核心 0-3,以保持其余核心空闲,以实现高速、低延迟的虚拟化。

我写了一个快速脚本来将 IRQ 亲和性设置为 0-3:

#!/bin/bash

while IFS= read -r LINE; do
    echo "0-3 -> \"$LINE\""
    sudo bash -c "echo 0-3 > \"$LINE\""
done <<< "$(find /proc/irq/ -name smp_affinity_list)"

这似乎适用于 USB 设备和网络设备,但不适用于 NVME 设备。他们都产生这个错误:

bash: line 1: echo: write error: Input/output error

他们顽固地继续在我几乎所有的核心上均匀地产生中断。

如果我检查这些设备的当前亲和力:

$ cat /proc/irq/81/smp_affinity_list 
0-1,16-17
$ cat /proc/irq/82/smp_affinity_list
2-3,18-19
$ cat /proc/irq/83/smp_affinity_list
4-5,20-21
$ cat /proc/irq/84/smp_affinity_list
6-7,22-23
...

似乎“某事”正在完全控制跨核心传播 IRQ,而不是让我改变它。

将这些移到其他内核是完全关键的,因为我在这些内核上的虚拟机中执行大量 IO,并且 NVME 驱动器正在产生大量的中断负载。这不是 Windows,我应该能够决定我的机器做什么。

什么是控制这些设备的 IRQ 亲和性以及如何覆盖它?


我在 Gigabyte Auros X570 Master 主板上使用 Ryzen 3950X CPU,3 个 NVME 驱动器连接到主板上的 M.2 端口。

(更新:我现在使用的是 5950X,仍然有完全相同的问题)

内核:5.12.2-arch1-1

lspci -v与 NVME 相关的输出:

01:00.0 Non-Volatile memory controller: Phison Electronics Corporation E12 NVMe Controller (rev 01) (prog-if 02 [NVM Express])
    Subsystem: Phison Electronics Corporation E12 NVMe Controller
    Flags: bus master, fast devsel, latency 0, IRQ 45, NUMA node 0, IOMMU group 14
    Memory at fc100000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [80] Express Endpoint, MSI 00
    Capabilities: [d0] MSI-X: Enable+ Count=9 Masked-
    Capabilities: [e0] MSI: Enable- Count=1/8 Maskable- 64bit+
    Capabilities: [f8] Power Management version 3
    Capabilities: [100] Latency Tolerance Reporting
    Capabilities: [110] L1 PM Substates
    Capabilities: [128] Alternative Routing-ID Interpretation (ARI)
    Capabilities: [200] Advanced Error Reporting
    Capabilities: [300] Secondary PCI Express
    Kernel driver in use: nvme

04:00.0 Non-Volatile memory controller: Phison Electronics Corporation E12 NVMe Controller (rev 01) (prog-if 02 [NVM Express])
    Subsystem: Phison Electronics Corporation E12 NVMe Controller
    Flags: bus master, fast devsel, latency 0, IRQ 24, NUMA node 0, IOMMU group 25
    Memory at fbd00000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [80] Express Endpoint, MSI 00
    Capabilities: [d0] MSI-X: Enable+ Count=9 Masked-
    Capabilities: [e0] MSI: Enable- Count=1/8 Maskable- 64bit+
    Capabilities: [f8] Power Management version 3
    Capabilities: [100] Latency Tolerance Reporting
    Capabilities: [110] L1 PM Substates
    Capabilities: [128] Alternative Routing-ID Interpretation (ARI)
    Capabilities: [200] Advanced Error Reporting
    Capabilities: [300] Secondary PCI Express
    Kernel driver in use: nvme

05:00.0 Non-Volatile memory controller: Phison Electronics Corporation E12 NVMe Controller (rev 01) (prog-if 02 [NVM Express])
    Subsystem: Phison Electronics Corporation E12 NVMe Controller
    Flags: bus master, fast devsel, latency 0, IRQ 40, NUMA node 0, IOMMU group 26
    Memory at fbc00000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [80] Express Endpoint, MSI 00
    Capabilities: [d0] MSI-X: Enable+ Count=9 Masked-
    Capabilities: [e0] MSI: Enable- Count=1/8 Maskable- 64bit+
    Capabilities: [f8] Power Management version 3
    Capabilities: [100] Latency Tolerance Reporting
    Capabilities: [110] L1 PM Substates
    Capabilities: [128] Alternative Routing-ID Interpretation (ARI)
    Capabilities: [200] Advanced Error Reporting
    Capabilities: [300] Secondary PCI Express
    Kernel driver in use: nvme
$ dmesg | grep -i nvme
[    2.042888] nvme nvme0: pci function 0000:01:00.0
[    2.042912] nvme nvme1: pci function 0000:04:00.0
[    2.042941] nvme nvme2: pci function 0000:05:00.0
[    2.048103] nvme nvme0: missing or invalid SUBNQN field.
[    2.048109] nvme nvme2: missing or invalid SUBNQN field.
[    2.048109] nvme nvme1: missing or invalid SUBNQN field.
[    2.048112] nvme nvme0: Shutdown timeout set to 10 seconds
[    2.048120] nvme nvme1: Shutdown timeout set to 10 seconds
[    2.048127] nvme nvme2: Shutdown timeout set to 10 seconds
[    2.049578] nvme nvme0: 8/0/0 default/read/poll queues
[    2.049668] nvme nvme1: 8/0/0 default/read/poll queues
[    2.049716] nvme nvme2: 8/0/0 default/read/poll queues
[    2.051211]  nvme1n1: p1
[    2.051260]  nvme2n1: p1
[    2.051577]  nvme0n1: p1 p2
linux linux-kernel smp nvme irq
  • 3 个回答
  • 2512 Views
Martin Hope
kalyan
Asked: 2017-01-11 09:31:17 +0800 CST

irqbalance 的工作原理

  • 2

irqbalance 添加内核模块吗?用户空间守护进程如何将中断分配给不同的处理器?如果是用户空间进程正在执行此操作,内核到用户空间上下文切换不会延迟中断处理吗?

linux-kernel irq interrupts
  • 1 个回答
  • 2279 Views
Martin Hope
JMeterX
Asked: 2012-06-14 06:55:02 +0800 CST

IRQ 中断 ESXi

  • 4

我们正在尝试确定将不同数量的 CPU 分配给 VM (VMware) 的利弊。我们希望了解 VMware 内核如何划分核心/线程总数,并确定满足我们特定软件配置需求的最佳架构。有人知道如何查看 ESXi 内核中的 IRQ 中断吗?

vmware-esxi irq
  • 1 个回答
  • 1415 Views
Martin Hope
Jon Topper
Asked: 2010-03-31 02:27:59 +0800 CST

两个 SIL RAID 卡的 SATA 驱动器问题

  • 4

我刚刚在我的家庭服务器中放置了第二张 SiI 3114 SATARaid 卡,这样我就可以添加另一对 SATA 驱动器并增加我的存储空间。令人讨厌的是,它似乎不起作用:

[32.816030]ata5:丢失中断(状态0x0)
[32.816072]ata5.00:异常Emask 0x0 SAct 0x0 SErr 0x0动作0x6冻结
[32.816091] ata5.00: cmd c8/00:08:00:00:00/00:00:00:00:00/e0 标签 0 dma 4096
在
[32.816094] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4
(暂停)
[32.816101]ata5.00:状态:{ DRDY }
[32.816117]ata5:硬重置链接
[33.136082] ata5:SATA 链接断开(SStatus 0 SControl 0)
[36.060940] irq 18:没人关心(尝试使用“irqpoll”选项启动)
[36.060949] Pid:0,comm:swapper 未污染 2.6.31-20-generic #58-Ubuntu
[36.060954]呼叫跟踪:
[ 36.060977] [] ?printk+0x18/0x1c
[36.060997][]__report_bad_irq+0x27/0x90
[36.061005][]note_interrupt+0x150/0x190
[36.061011][]handle_fasteoi_irq+0xac/0xd0
[36.061023][]handle_irq+0x18/0x30
[36.061029][]do_IRQ+0x47/0xc0
[36.061042] []?irq_exit+0x50/0x70
[36.061058] []?smp_apic_timer_interrupt+0x57/0x90
[36.061065][]common_interrupt+0x30/0x40
[36.061075] []?native_safe_halt+0x5/0x10
[36.061082][]default_idle+0x46/0xd0
[36.061088][]cpu_idle+0x8c/0xd0
[36.061103][]rest_init+0x55/0x60
[36.061111][]start_kernel+0x2e6/0x2ec
[ 36.061117] [] ?unknown_bootoption+0x0/0x19e
[36.061133][]i386_start_kernel+0x7c/0x83
[36.061137] 处理程序:
[36.061139][](sil_interrupt+0x0/0xb0)
[36.061151]禁用 IRQ #18
[38.136014]ata5:硬重置链接
[38.456022] ata5:SATA 链接断开(SStatus 0 SControl 0)
[43.456013]ata5:硬重置链接
[43.776022] ata5:SATA 链接断开(SStatus 0 SControl 0)
[43.776035]ata5.00:禁用
[43.776055]ata5.00:设备报告无效的 CHS 扇区 0
[43.776074] sd 4:0:0:0: [sde] 结果:hostbyte=DID_OK
driverbyte=DRIVER_SENSE
[43.776082] sd 4:0:0:0: [sde] 感应键:中止命令 [当前]
[描述符]
[43.776092]带有感知描述符的描述符感知数据(十六进制):
[43.776097]72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00
[43.776112]00 00 00 00
[43.776118] sd 4:0:0:0: [sde] 添加。感觉:没有额外的感觉信息
[43.776127] end_request:I/O 错误,dev sde,扇区 0
[43.776136]设备 sde 上的缓冲区 I/O 错误,逻辑块 0
[43.776170]ata5:EH完成
[43.776187]ata5.00:分离(SCSI 4:0:0:0)

root@core:~# cat /proc/interrupts
           CPU0       
  0:47 IO-APIC-边沿定时器
  1:8 IO-APIC-edge i8042
  6:3 IO-APIC-edge软盘
  7:0 IO-APIC-edge parport0
  8:0 IO-APIC-edge rtc0
  9:0 IO-APIC-fasteoi acpi
 14: 53069 IO-APIC-edge pata_sis
 15: 53004 IO-APIC-edge pata_sis
 17:112265 IO-APIC-fasteoi sata_sil
 18: 200002 IO-APIC-fasteoi sata_sil, SiS SI7012
 19:111140 IO-APIC-fasteoi eth0
 20:0 IO-APIC-fasteoi ohci_hcd:usb2
 21:0 IO-APIC-fasteoi ohci_hcd:usb3
 23:0 IO-APIC-fasteoi ehci_hcd:usb1
NMI: 0 不可屏蔽中断
LOC:6650492 本地定时器中断
SPU:0 虚假中断
CNT: 0 性能计数器中断
PND: 0 性能待定工作
RES: 0 重新安排中断
CAL: 0 函数调用中断
TLB:0 次 TLB 击落
TRM: 0 热事件中断
THR:0 阈值 APIC 中断
MCE: 0 机器检查异常
MCP:160 次机器检查轮询
错误:0
管理信息系统:0
root@core:~# lspci | grep 突袭
00:09.0 RAID 总线控制器:Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] 串行 ATA 控制器(版本 02)
00:0a.0 RAID 总线控制器:Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] 串行 ATA 控制器(版本 02)
root@core:~# lsb_release -a
没有可用的 LSB 模块。
经销商编号:Ubuntu
说明:Ubuntu 9.10
发布:9.10
代号:业力
root@core:~# uname -a
Linux core.topper.me.uk 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux

我尝试了不同内核选项(irqpoll、noapic、noacpi、pci=noapic)的组合,但都无济于事。有没有人对我如何进行这项工作有任何好的想法?

交换 PCI 卡不是一种选择,因为该主板上只有两个插槽(华擎 K7S41GX)。BIOS 看起来并没有太多关于 IRQ 使用的配置选项。

B 计划是完全放弃这台服务器并为这些驱动器购买新的 QNAP,但我希望现在避免这样做。

linux raid sata irq
  • 3 个回答
  • 1151 Views
Martin Hope
Silas Snider
Asked: 2010-02-26 13:00:58 +0800 CST

munin 中的 irqstat 图代表什么?

  • 1

每周 irqstat 的munin 图表突然像现在这样疯狂,这意味着什么- 是不是很糟糕?什么是本地定时器中断?

performance-monitoring munin irq
  • 1 个回答
  • 727 Views
Martin Hope
Garrett
Asked: 2009-07-23 13:04:23 +0800 CST

记录使用 10-25% CPU 的硬件中断 (IRQ)

  • 3

根据 Process Explorer,我有一台服务器在硬件中断上使用 10-25% 的 CPU 时间。

我将如何记录/诊断所有这些 IRQ 调用的原因?

这台机器是虚拟的,所以我知道物理硬件不是问题(尽管可能是驱动程序等)。

更新:尝试了这篇文章中的信息:http: //msdn.microsoft.com/en-us/library/ms797921.aspx

关于使用 tracelog.exe 和 tracerpt.exe 捕获 DPC 和 ISR 事件,但是当我运行跟踪时,它没有任何信息,即使使用 -dpcisr 开关也是如此。我在报告中获得磁盘和进程信息,但没有中断...我知道中断正在发生,因为 Process Explorer 仍在使用 6-15% CPU 显示它们

windows performance performance-monitoring process-explorer irq
  • 3 个回答
  • 7335 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve