引子 使用qlogic QL45000网卡测试业务性能,发现cpu软中断分布不均衡,而且很有规律,导致cpu空闲也不是很均衡, 会影响业务稳定性. 设备使用3张网卡Qlogic网卡,配置为4*25G模式,也就是12个25G网口.三张网卡中其中两张接在物理cpu0上, 另一张接在物理cpu1上.笔者以为是由于三张网卡在物理架构上不均衡导致的cpu软中断不均衡,但是屏蔽了物理 cpu0上的其中一张网卡的四个网口后,cpu软中断仍然不均衡.所以,可能是其他原因导致的这个问题. 问题背景 我们的设备主要…
Linux 服务器下多网卡负载均衡的实现   一.引言    现今几乎各行各业内部都建立了自己的服务器,由于服务器的特殊地位,它的可靠性.可用性及其 I/O 速度就显得非常的重要, 保持服务器的高可用性和安全性是企业级IT 环境的重要指标,其中最重要的一点是服务器网络连接的高可用性,为实现这些要求,现在服务器大都采用多网卡配置,系统大都采用现在非常流行的 linux 作为服务器工作的环境.现在带宽已经不是服务质量提高的瓶颈了,相对的网络设备和服务器的处理能力就渐渐成为新的瓶颈.为提高服务器的网络…
nginx 是优秀的反向代理服务器,这里主要讲它的健康检查和负载均衡机制,以及这种机制带来的问题.所谓健康检查,就是当后端出现问题(具体什么叫出现问题,依赖 于具体实现,各个实现定义不一样),不再往这个后端分发请求,并且做后续的检查,直到这个后端恢复正常.所谓负载均衡,就是选择后端的方式,如何(根据后 端的能力)将请求均衡的分发到后端.此外,当请求某个后端失败时,要将该请求分发到其它后端(redispatch).这里以 ngx_http_upstream_round_robin(简称RR)做为负…
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 一文掌握 Linux 性能分析之 CPU 篇 一文掌握 Linux 性能分析之内存篇 这是 Linux 性能分析系列的第三篇,前两篇分别讲了 CPU 和 内存,本篇来看 IO. IO 和 存储密切相关,存储可以概括为磁盘,内存,缓存,三者读写的性能差距非常大,磁盘读写是毫秒级的(一般 0.1-10ms),内存读写…
Linux网络设备结构 首先看一下Linux网络设备的结构,如下图: 网络协议接口层向网络层协议提供提供统一的数据包收发接口,不论上层协议为ARP还是IP,都通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据.这一层的存在使得上层协议独立于具体的设备. 网络设备接口层向协议接口层提供统一的用于描述具体网络设备属性和操作的结构体net_device,该结构体是设备驱动功能层中各函数的容器.实际上,网络设备接口层从宏观上规划了具体操作硬件的设备驱动功能层的结构.…
网卡只有rx硬中断,外设通过中断控制器向CPU发出有数据包来临的通知, 而没有tx硬中断,因为发送数据包是cpu向外设发出的命令. ixgbe驱动的rx软中断和tx软中断在同一个CPU上处理. http://abcdxyzk.github.io/blog/2014/12/16/kernel-net-softirq-rx/ static void net_rx_action(struct softirq_action *h) { /*取得本地cpu 的softnet_data 的poll_list…
近期在万兆网卡上測试,出现了之前千兆网卡没有出现的一个现象,tasklet版本号的netback下,vm进行发包測试,发现vif的interrupt默认绑定在cpu0上,可是vm发包执行时发现host上面cpu1, cpu2的ksoftirqd非常高. 从之前的理解上来说,包从netfront出来通过eventchannel notify触发vif的irq处理函数,然后tasklet_schedule调用tx_action,通过一系列处理流程把包发给网卡.所以vif的interrupt绑在哪个c…
一.网络设备驱动的结构 网卡设备不同于字符设备和块设备, 网络设备并不对应于/dev目录下的文件,它存放在/sys/class/net目录下. Linux系统对网络设备驱动定义了四个层次: 1. 网络协议接口层:用于实现统一的数据包收发的协议,通过dev_queue_xmit()函数发送数据, 通过netif_rx()函数接收数据 2. 网络设备接口层:通过struct net_device来描述一个具体的网络设备的信息 3. 设备驱动功能层:同于驱动网络设备实现各个功能,通过hard_star…
ubuntu14.04部署ELK+redis日志分析系统 [环境] host1:172.17.0.4 搭建ELK+redis服务 host2:172.17.0.3 搭建logstash+nginx服务 注:安装开发编译包: #apt-get install build-essential -y (ubuntu) #yum groupinstall "Development Tools" -y (CentOS) 一.ELK的运行环境需要java支持,ubuntu14.04安装java8.…
简介:在oracle数据库中,有两个非常实用的自带监控工具EM(Enterprise Manager)和AWR(Automatic Workload Repository).其中,通过AWR报告可以生成易于阅读的监控报告,可协助进行性能问题的诊断和分析.本期将介绍一些AWR报告的基本使用和在性能问题诊断中的应用. 什么是AWR:      从oracle 10g开始,使用名为GATHER_STATS_JOB的计划任务来收集AWR的统计数据,AWR报告中收集了许多不同的统计数据,包括等待事件.各种…