`
xitong
  • 浏览: 6194569 次
文章分类
社区版块
存档分类
最新评论

如何充分利用CPU资源提高服务器的性能

 
阅读更多

基本思路是如何让CPU的超线程或者多核更加均衡和高效的利用起来,我们知道总是有一块cpu去专门响应网卡的中断请求,如果网络请求包非常大,很可能单个CPU就处理不过来,因此,需要激活多核或者超线程,把网卡中断请求分发到多个CPU去执行,从而提高整体服务器的接入性能,也是提高CPU资源利用率的好办法。下面分别进行讨论:

一,双CPU超线程的服务器

我们知道,在linux下,对于双CPU超线程的服务器而已,如果内核激活了CPU的超线程功能(HT), 则通过cat /proc/cpuinfo 可以识别到4块CPU: CPU0-3,其中CPU0和CPU1是同一真实CPU的本身和它的超线程出的CPU,CPU2和CPU3也是同理一对。

我们可以配置网卡的irq路由,来选择指定的一块CPU来处理对应网卡中断请求,从而使得多块网卡的中断处理分别分摊到2块真实的CPU上,达到充分发挥双CPU的性能。

1, 首先我们可以通过访问/proc/cpuinfo的信息查看到cpu的具体信息。

cat /proc/cpuinfo

cat /proc/cpuinfo | grep processor

cat /proc/cpuinfo | grep processor| wc –l

最后的命令可以得到当前cpu的个数。

2, 分别获取eth0和eth1网卡的中断irq号,并且赋值给shell变量

ETH0_IRQ_NUM =`cat /proc/interrupts | grep eth0 | awk -F ':' '{print $1}'`

ETH1_IRQ_NUM =`cat /proc/interrupts | grep eth1 | awk -F ':' '{print $1}'`

3, 指定CPU来处理对应网卡的中断请求

首先可以查看一下现有的cpu情况(需要root用户):

cat /proc/irq/$ETH0_IRQ_NUM/smp_affinity

cat /proc/irq/$ETH1_IRQ_NUM/smp_affinity

echo 8 > /proc/irq/$ETH0_IRQ_NUM/smp_affinity

(指定CPU3来处理网卡eth0的中断请求)

echo 2 >/proc/irq/$ETH1_IRQ_NUM/smp_affinity

(指定CPU1来处理网卡eth1的中断请求)

4, 查看切换后的效果

watch cat /proc/interrupts

可以看到每隔2s的时间间隔的中断处理效果

二,双CPU双核的服务器

在linux下,对双CPU双核的服务器来说,若内核没有开启超线程HT选项,则访问cat /proc/cpuinfo可以识别到4块CPU,分别是CPU0-3,其中CPU0和CPU1是同一真实CPU的两个核,同理,CPU2和CPU3是另外一个真实CPU的两个核。并且对同属于真实一个CPU的核共享4M的二级cache,因此,如果我们将一块网卡的中断请求对应到同一真实CPU的2个核上,可以在保证二级cache命中率的前提下,充分发挥双核心CPU的性能优势,从而提高整体服务器的性能。

具体的设置方法,如上说明。

三,附加说明

注意:对smp_affinity,一个字节(8个bit)本质上对应二进制位:xxxxxxxx,分别表示cpu7,cpu6,cpu5,cpu4,cpu3,cpu2,cpu1,cpu0,对应的位为1, 表示对应的cpu选中状态。

1, echo 8 > /proc/irq/$ETH0_NU/smp_affinity,由于8 = 1000,所以是指定cpu3来响应。

2, echo 2 > /proc/irq/$ETH1_NU/smp_affinity,由于2 = 0010,所以是指定cpu1来响应。

3, echo c > /proc/irq/$ETH0_NU/smp_affinity,由于c = 1100,所以是指定cpu2和cpu3来响应。

4, echo 3 > /proc/irq/$ETH1_NU/smp_affinity,由于3 = 0011,所以是指定cpu0和cpu1来响应。

分享到:
评论

相关推荐

    SWINGS Web服务器

    - 为充分利用多核CPU的性能,以多线程的形式实现服务器,并实现线程池避免线程频繁创建销毁造成的系统开销 - 实现基于小根堆的定时器,用于断开超时连接 - 实现可以自动增长的缓冲区,作为HTTP连接的输入和输出缓冲...

    X服务器虚拟化整合解决方案.pptx

    服务器的性能年年都在翻番的提高,应用和软件能充分利用上这些性能吗? 能否有一个行之有效的办法减少X86服务器整体拥有成本(TCO)? 如何降低硬件成本、宕机费用、管理成本以及运维成本? 对X86服务器上的应用...

    浪潮服务器介绍新.pptx

    提高数据中心资源利用率,降低能耗、减少成本。 浪潮服务器产品线介绍-- 增值类服务器 分类 浪潮服务器介绍新全文共21页,当前为第2页。 NP塔式系列 NF机架式系列 NX刀片式系列 浪潮服务器分类 TS高性能系列 SA存储...

    Xlight FTP Server

    它具有高效网络算法,在大量用户情况下,可以充分利用FTP服务器带宽,能够轻松处理数千用户的同时下载。 支持SSL加密和ODBC数据库,服务器运行时占用很少的CPU和内存资源. 用它独创的高效网络算法,它能够比其他...

    《服务器基础知识》.doc

    虚拟主机技术是互联网服务器采用的节省服务器硬体成本的技术,虚拟主机技术主要应 用于HTTP服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外 表现为多个服务器,从而充分利用服务器硬体资源。...

    Linux系统的性能评估和调优指南

    对服务器来说主要的角色是应用服务器或数据库服务器,CPU作为关键资源经常成为性能瓶颈的根源。CPU使用率高并不总是意味着CPU工作繁忙,它有可能是正在等待其他子系统。在进行性能分析时,将所有子系统当做一个整体...

    省级气象虚拟化建设方案设计.doc

    3 虚拟化方案描述 为了实现数据的集中存储、以及充分利用虚拟架构中虚拟机可动态在线从一台 物理服务器迁移到另一台物理服务器上的特性(VMotion)等,实现虚拟化业务系统的和 高可用(HA)。 配置2台高性能光纤...

    HP服务器双机热备方案.doc

    性 能调整就是根据应用要求和服务器具体运行环境和状态,改变各个用户和服务程序所分 配的系统资源,充分发挥系统能力,用尽量少的资源满足用户要求,达到为更多用户服 务的目的。 2. 可用性 实践证明,影响服务器...

    Java多线程编程的优点和缺点

    加快响应用户的时间:多线程允许并发执行多个任务,可以充分利用多核处理器,从而提高程序的性能和响应速度。比如我们经常用的迅雷下载,都喜欢多开几个线程去下载,谁都不愿意用一个线程去下载,为什么呢?答案很简单,...

    MYSQL 5.7.12.zip

    支持多线程,充分利用CPU资源 5.优化的SQL查询算法,有效地提高查询速度 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。 7.提供多语言...

    Linux mysql-5.7.12

    4.支持多线程,充分利用CPU资源 5.优化的SQL查询算法,有效地提高查询速度 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。 7.提供多语言支持,常见的编码...

    常见服务器储存类型.pptx

    NAS则充分利用系统原有的网络接口,对存储的访问是通过通用网络接口,访问通过高层接口实现,同时设备可专注与存储的管理,优点是系统简单、兼容现有系统、扩容方便,缺点则是效率相对比较低。 常见服务器储存类型...

    大数据运维解决方案.pdf

    基 于 蚁 巡 的 大 数 据 运 维 解 决 方 案 ... 通过蚁巡,蚁坊软件在设备的采购和维护从无序走 向了有序,今年在蚁巡的监控下让500个服务器节点得 到了充分利用,在IT建设上节省的投资达到了数百万 元。 总结 谢谢

    loadrunner测试资料

    这两个软件的功能虽然强大,并且可以自动生成测试报告,但其终究是一个工具,如果你想真正的定位服务器性能的好坏和性能的瓶颈所在,需要使用工具的人对于测试软件的方方面面都要有了解,比如软件体系构架,网络拓扑...

    教务系统设计数据库设计(1).doc

    支持多线程,充分利用CPU资源。 采用优化的SQL查询算法可以有效地提高查询速度。 既能够作为一个单独的应用程序应用在客户端/服务器网络环境中,也能够作为一 个库而嵌入到其他的软件中提供多语言支持,常见的编码...

    网络组建域管理课件2

    综合了分时共享模式和资源共享模式的优点,充分利用了服务器和客户机的性能。 客户机负责处理用户界面和用户交互。 可以优化服务器的共享资源 减小了网络的通信流量,提高了传输效率。 应用程序在客户机上运行,与...

    redhat as 5.3 bt

    消除经济约束通过使您的解决方案立足于随时随地可用的开源技术(从虚拟化管理程序到 SOA 中间件再到最终用户应用),我们能够保证您可以充分利用您的 IT 预算。无论各单一解决方案厂商向您宣称他们的产品的成本是...

    教务系统设计数据库设计.doc

    支持多线程,充分利用CPU资源。 采用优化的SQL查询算法可以有效地提高查询速度。 既能够作为一个单独的应用程序应用在客户端/服务器网络环境中,也能够作为一 个库而嵌入到其他的软件中提供多语言支持,常见的编码...

    浅谈数据库系统优化.docx

    充分利用临时数据表,及建立合理的索引、调整优化SQL语句,等可以减少客户访问数据库的次数,减小CPU的占用时间,提高内存的利用率,减小系统响应时间,缩短用户等待时间等都有很重要的意义。 3)调整内存分配。内存...

    Rosemirrorha

    RoseMirrorHA充分利用了服务器的内部存储和网络传输能力,实现了基于网络的实时数据镜像,提供了不需要共享存储的纯软高可用性解决方案。 RoseMirrorHA简介 RoseMirrorHA是在实时数据镜像基础上,实现了不需要共享...

Global site tag (gtag.js) - Google Analytics