有一个简单的方法来确定是否中断是一个性能问题? 我有以下从猫/ proc /中断,但真的没有这台服务器的历史,所以我不知道这是否可能导致任何问题。 我在http://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-interrupts.htmlfind了每一列的定义,但是似乎没有find任何关于结果可以接受。 CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 0: 1408788887 0 0 0 0 0 0 0 IO-APIC-edge timer 1: 3 0 0 0 0 0 0 0 IO-APIC-edge i8042 8: 1 0 0 0 0 0 0 0 IO-APIC-edge rtc 9: 0 0 0 0 0 0 0 0 […]
一些上下文。 几个星期前,在一个盒子上更换了一个网卡,没有多less故障排除,以find明确的问题解决scheme。 一名高级pipe理员与一名入门级pipe理员进行了一场关于硬件中断和以太网卡的小型调查。 具体来说,他们如何工作。 入门级pipe理人员给出了一个模糊的答案,坚持认为他是对的,这件事情没有得到真正的结论。 理论上,我知道硬件中断是如何工作的,但是当NIC接收到信息包时它是如何工作的? 硬件层面发生了什么? 如何正确地诊断是否发生了物理损伤,以避免实际上导致零件出现问题?
有时候我们的一个应用程序因为维护而closures,我们希望在用户拨打电话给我们的服务台之前让我们的用户知道。 在networking上通知用户事件的最佳方式是什么? 一些用户在我们的内部网上,而其他用户则从网上login。 有没有可以安装我们可以发送通知消息的应用程序? 我很想听听其他人提出的解决scheme。
在Atom 450上的OpenBSD上,在BIOS中configuration了HPET而不是超线程/ ACPI开关,没有什么区别。 这是我的vmstat -iz # vmstat 2 procs memory page disk traps cpu rbw avm fre flt re pi po fr sr wd0 int sys cs us sy id 0 0 0 3488 981792 429 0 0 0 0 0 35 295771 906 89 1 51 48 0 0 0 3492 981788 12 0 […]
我的系统是Debian 6.0.3 x86_64,内核为2.6.32-5-openvz-amd64,它托pipe着许多OpenVZ容器。 我最近从LXC /更新的内核从backports repo迁移到稳定的OpenVZ内核来解决networking问题,但又遇到了另一个问题–CPU花了很多时间处理软件中断。 下面是CPU时间的Munin图: http : //prntscr.com/arjzl 。 我在内核命令行中添加了nohz=off和nohz=off ,但这并没有多大帮助。 而且,根据另一个Munin图: http : //prntscr.com/ark19 ,这个盒子中断的数目是相当低的,所以中断似乎不是这个问题的原因。 当我运行top , zabbix_server是最消费者的CPU,但我没有看到zabbix_server和软件中断之间的任何关系。 我不知道如何进行调查,这看起来像是一个内核错误或内核模块错误,但我不知道热的追踪这个有罪的过程/模块。 也许还有另一个内核命令行参数可以调整。 接下来我应该尝试什么?
我的目标是为自定义低延迟networking程序configuration我们的CentOS(“免费”RHEL)5.x服务器。 我想尝试绑定以太网NIC中断处理程序运行相同的CPU(希望提高caching利用率)。 此过程的第一步是确定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: […]
任何人都可以告诉我什么命令我运行,以确定如果我的10G网卡运行在单RX-TX队列模式或multiqueue? 它看起来像根据cat /proc/interrupts只有1个RX / TX队列 root@vwsl-sec-ids01:scripts]# cat /proc/interrupts | grep ens1f0 94: 360389979 0 0 0 184 0 330 0 0 0 0 0 0 0 0 0 0 169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge ens1f0-TxRx-0 95: 4 0 0 0 0 0 0 0 […]
我的服务器有24个CPU核心,96G内存,安装了CentOS 7.2 x86_64。 用大数据集启动我的程序后,我的程序将使用大约50G的内存,Linux系统将显示高速率的系统中断,但是上下文切换速率会很低。 dstat会在500k int / s和1000k int / s之间显示。 CPU使用率将接近100%,约40%,我们60%。 如果数据集小,程序将使用大约5G的内存,一切都会好的,CPU使用率100%,大约99%的我们,1%的sy。 这是预期的。 该程序是由我自己写的,这是一个multithreading程序。 它不做任何networkingIO,很less有磁盘IO,主要是内存操作和算术。 无论数据集大小如何,线程模型和algorithm都是相同的。 我的问题是,我怎样才能find我的程序使用哪些中断(并尽可能提高性能,摆脱它们)?
在较旧的Linux架构版本中,系统调用在执行期间总会产生一个中断。 通过将系统调用号码设置为%eax和参数设置为%ebx,%ecx等,然后发出特定的中断int 0x80来执行。 因此,系统调用可以说是系统中软件中断的常见原因。 但是,在x86_64的现代体系结构中,有一个特定的系统调用指令“syscall”,它绕过了使用中断0x80的需要,因此也就是中断描述符表。 虽然我相信先前为系统调用产生一个中断的方法仍然被支持,但系统调用指令似乎是在实践中完成的方式。 因此,我的问题是:说系统调用产生中断是不是正确的? 例如,系统调用仍会增加vmstat的“中断”列输出中看到的数字吗?
我有英特尔酷睿2GHz的Windows XP SP3。 根据Process Explorer,“中断”过程持续占用30-40%的CPU。 这是正常的吗?