文档库 最新最全的文档下载
当前位置:文档库 › linux网卡中断调优

linux网卡中断调优

linux网卡中断调优
linux网卡中断调优

关闭irqbalance(和多队列网卡绑定cpu有冲突)

service irqbalance stop

service irqbalance status

查看中断

mpstat -I SUM -P ALL 1

多队列网卡绑定cpu

cat /proc/interrupts

echo 2 > /proc/irq/136/smp_affinity

echo 2 > /proc/irq/137/smp_affinity

echo 4 > /proc/irq/138/smp_affinity

echo 8 > /proc/irq/139/smp_affinity

rps/rfs(2.6.35版本以上)

echo fffffe > /sys/class/net/em1/queues/rx-0/rps_cpus

echo fffffe > /sys/class/net/em1/queues/rx-1/rps_cpus

echo fffffe > /sys/class/net/em1/queues/rx-2/rps_cpus

echo fffffe > /sys/class/net/em1/queues/rx-3/rps_cpus

echo 4096 > /sys/class/net/em1/queues/rx-0/rps_flow_cnt

echo 4096 > /sys/class/net/em1/queues/rx-1/rps_flow_cnt

echo 4096 > /sys/class/net/em1/queues/rx-2/rps_flow_cnt

echo 4096 > /sys/class/net/em1/queues/rx-3/rps_flow_cnt

echo 4096 > /sys/class/net/em1/queues/rx-4/rps_flow_cnt

echo 20480 > /proc/sys/net/core/rps_sock_flow_entries

对于2个物理cpu,8核的机器为ff,具体计算方法是第一颗cpu是00000001,第二个cpu是00000010,第3个cpu是00000100,依次类推,由于是所有的cpu都负担,所以所有的cpu数值相加,得到的数值为11111111,十六进制就刚好是ff。而对于/proc/sys/net/core/rps_sock_flow_entries的数值是根据你的

网卡多少个通道,计算得出的数据,例如你是8通道的网卡,那么1个网卡,每个通道设置4096的数值,8*4096就是/proc/sys/net/core/rps_sock_flow_entries的数值

中断合并

ethtool -c em1

设置

ethtool -C em1 rx-usecs-irq 10

10us内5个中断合并

网卡驱动选项——'IRQ coalescing',中断请求合并。这个选项有着强大的功能,允许网卡在调用中断请求前缓存数个数据包,从而为系统节约大量的时间和负载。举个例子:如果网卡缓存10个包,那么cpu负载将大约降低90%。这个功能通常用ethtool工具来控制,使用'-c/-C'参数,但是有些驱动要求在驱动初次加载时就做好相关设置。如何设置需要查看本机文档。举个例子,有些网卡,譬如我们使用的Intel网卡,就有automatic模式可以根据负载自动做到最优化。

linux双网卡做成bond

l i n u x双网卡做成b o n d 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

双网卡做成b o n d0的方法说明 所谓bond,就是把多个物理网卡绑定成一个逻辑上的网卡 好处:增加带宽接入,还可以实现主备功能,当其中一个网卡挂掉,不会影响网络连接。并且节约IP。 实施案例讲解 我们的测试服务器 双网卡 E 我们需要将这2个网卡做成一个bond0网卡 1.编辑eth1. vi/etc/sysconfig/network-scripts/ifcfg-eth1 修改为 我们去掉了IP,MAC,掩码网关,bootproto设置为none 2.编辑eth2 同样这样更改eth2,如下图所示 3.创建并且编辑bond0网卡 vi/etc/sysconfig/network-scripts/ifcfg-bond0 增加如下参数

可以看到,和我们平时用的eth1网卡配置差不多,只是少了MAC地址。。。 编辑vi/etc/modprobe.conf文件 添加如下参数 编辑好了之后重启网卡,会发现eth1eth2无IP,依然通了外网 至此,我们的bond0已经创建成功 接下来我们需要去编辑启动文件添加一行 vi/etc/rc.local 添加ifenslavebond0eth1eth2 重启服务器,测试是否能成功 多个bond 如果是创建多个bond的时候,我们修改vi/etc/modprobe.conf配置文件的时候依照下图添加,依次增加 Eth2eth3….等修改方式同上。 如果bond的模式(请查看参数讲解)不同,那么修改为 这种情况遇到较少,我们了解就好 参数讲解 Bond有7种模式,我们常用的是 mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。七种bond模式说明:

Linux性能监控、调优(CPU篇)

Linux性能监控、调优(CPU篇) 前言: 网上其实有很多关于这方面的文章,那为什么还会有此篇呢,有这么几个原因,是我翻 译的动力,第一,概念和内容虽然老套,但都讲得很透彻,而且还很全面.第二,理论结合实际,其中案例分析都不错.第三,不花哨,采用的工具及命令都是最基本的,有助于实际操作.但本人才疏学浅,译文大多数都是立足于自己对原文的理解,大家也可以自己去OSCAN上找原文,如果有什么较大出入,还望留言回复,甚是感激! 1.0 性能监控介绍 性能优化就是找到系统处理中的瓶颈以及去除这些的过程,多数管理员相信看一些相关的"cook book"就可以实现性能优化,通常通过对内核的一些配置是可以简单的解决问题,但并不适合每个环境,性能优化其实是对OS 各子系统达到一种平衡的定义,这些子系统包括了: CPU Memory IO Network 这些子系统之间关系是相互彼此依赖的,任何一个高负载都会导致其他子系统出现问题.比如: 大量的页调入请求导致内存队列的拥塞 网卡的大吞吐量可能导致更多的CPU开销 大量的CPU开销又会尝试更多的内存使用请求 大量来自内存的磁盘写请求可能导致更多的CPU 以及IO问题 所以要对一个系统进行优化,查找瓶颈来自哪个方面是关键,虽然看似是某一个子系统 出现问题,其实有可能是别的子系统导致的. 1.1 确定应用类型 基于需要理解该从什么地方来入手优化瓶颈,首先重要的一点,就是理解并分析当前系 统的特点,多数系统所跑的应用类型,主要为2种: IO Bound(译注:IO 范畴): 在这个范畴中的应用,一般都是高负荷的内存使用以及存储系统,这实际上表示IO 范畴的应用,就是一个大量数据处理的过程.IO 范畴的应用不对CPU 以及网络发起更多请求(除非类似NAS这样的网络存储硬件).IO 范畴的应用通常使用CPU 资源都是为了产生IO 请求以及进入到内核调度的sleep 状态.通常数据库软件(译 注:mysql,oracle等)被认为是IO 范畴的应用类型.

linux_操作系统优化方案

按照传统,Linux不同的发行版本和不同的内核对各项参数及设置均做了改动,从而使得系统能够获得更好的性能。下边将分四部分介绍在Red Hat Enterprise Linux AS和SUSE LINUX Enterprise Server系统下,如何用以下几种技巧进行性能的优化: 1、Disabling daemons (关闭daemons) 2、Shutting down the GUI (关闭GUI) 3、C hanging kernel parameters (改变内核参数) 4、Kernel parameters (内核参数) 5、Tuning the processor subsystem(处理器子系统调优) 6、Tuning the memory subsystem (内存子系统调优) 7、Tuning the file system(文件系统子系统调优) 8、Tuning the network subsystem(网络子系统调优) 1 关闭daemons 有些运行在服务器中的daemons (后台服务),并不是完全必要的。关闭这些daemons可释放更多的内存、减少启动时间并减少C PU处理的进程数。减少daemons数量的同时也增强了服务器的安全性。缺省情况下,多数服务器都可以安全地停掉几个daemons。 Table 10-1列出了Red Hat Enterprise Linux AS下的可调整进程. Table 10-2列出了SUSE LINUX Enterprise Server下的可调整进程

注意:关闭xfs daemon将导致不能启动X,因此只有在不需要启动GUI图形的时候才可以关闭xfs daemon。使用startx 命令前,开启xfs daemon,恢复正常启动X。 可以根据需要停止某个进程,如要停止sendmail 进程,输入如下命令: Red Hat: /sbin/service sendmail stop SUSE LINUX: /etc/init.d/sendmail stop 也可以配置在下次启动的时候不自动启动某个进程,还是send mail: Red Hat: /sbin/chkconfig sendmail off SUSE LINUX: /sbin/chkconfig -s sendmail off 除此之外,LINUX还提供了图形方式下的进程管理功能。对于Red Hat,启动GUI,使用如下命令:/usr/bin/redhat-config-serv ices 或者鼠标点击M ain M enu -> System Settings -> Serv er Settings -> Serv ices.

windows XP及Linux下双网卡配置方案

Windows XP下双网卡配置方案一、软硬件需求 ●硬件: 一台带有双网卡的PC,其中一个连接internet;另一个接局域网hub。 其中节局域网地址为:192.168.0.1/255.255.255.0 ●软件: 操作系统:windows XP 代理软件:CCProxy 二、设置CCProxy: 1、服务器的安装 运行下载后的Ccproxysetup.exe 安装本软件 (注:现在的最新版本为CCProxy-v6.6,推荐下载网站:霏凡) 安装完成后,桌面有一个CCProxy的绿色图标:双击即可启动CCProxy了(如附图)。绿色的网格坐标将会出现,黄色的曲线表示网络数据流量。 2、客户端设置前的准备工作 1)确认客户端与服务器是连通的,能够互相访问。

2)确定代理服务器地址。代理服务器地址就是安装代理服务器的机器的 网络地址。 这个地址,是指服务器在局域网中的本地IP地址。本地IP地址可以从CCProxy的设置对话框中得到。设置对话框中 的本地IP地址一般情况下可以用"自动检测"得到。如果服务器安装了双 网卡,则需要手工选取:取消"自动检测", 从列表中选取。如果不能确认服务器的IP地址,也可以用服务器的机器 名作为代理服务器地址。 3、局域网机器设置: ※对TCP/IP协议的属性进行设置: 方法:右击“网上邻居”,选择“属性”,双击网卡对应的“TCP/IP协议”,选择“DNS”标签。设置如下:选中“启用DNS”;“主机”中填入服务器名称;并在下面的“DNS服务器搜索顺序”中填入服务器的IP地址,本例为“192.168.0.1”,然后单击[填加];单击[确定]结束DNS设置;再次单击[确定],结束对网络属性的设置。这时需要重新启动计算机。 ※重新启动后,设置IE浏览器代理上网 1)流程: IE浏览器->菜单"工具"->"Internet选项"->"连接"->"局域网设置"->选中"使用代理服务器"->"高级"->"代理服务器设置"。取消"对所有协议均使用相同的代理服务器"。 在"HTTP"中填上代理服务器地址,端口为808; 在"Secure"中填上代理服务器地址,端口为808; 在"FTP"中填上代理服务器地址,端口为808; 在"Gopher"中填上代理服务器地址,端口为808; 在"Socks"中填上代理服务器地址,端口为1080。 2)图示: IE菜单“工具”->“Internet 选项”: “代理设置”选择

LINUX性能调优方法总结

LINUX性能调优方法总结 大多数 Linux 发布版都定义了适当的缓冲区和其他 Transmission Control Protocol(TCP)参数。可以修改这些参数来分配更多的内存,从而改进网络 性能。设置内核参数的方法是通过 proc 接口,也就是通过读写 /proc 中的值。幸运的是,sysctl 可以读取 /etc/sysctl.conf 中的值并根据需要填充 /proc,这样就能够更轻松地管理这些参数。清单 2 展示在互联网服务器上应用于 Internet 服务器的一些比较激进的网络设置。 # Use TCP syncookies when needed net.ipv4.tcp_syncookies = 1 # Enable TCP window scaling net.ipv4.tcp_window_scaling: = 1 # Increase TCP max buffer size net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 # Increase Linux autotuning TCP buffer limits net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 # Increase number of ports available net.ipv4.ip_local_port_range = 1024 65000 将这些设置添加到 /etc/sysctl.conf 的现有内容中。第一个设置启用TCP SYN cookie。当从客户机发来新的 TCP 连接时,数据包设置了 SYN 位,服务 器就为这个半开的连接创建一个条目,并用一个 SYN-ACK 数据包进行响应。在正常操作中,远程客户机用一个 ACK 数据包进行响应,这会使半开的连接 转换为全开的。有一种称为 SYN 泛滥(SYN flood)的网络攻击,它使 ACK 数据包无法返回,导致服务器用光内存空间,无法处理到来的连接。SYN cookie 特性可以识别出这种情况,并使用一种优雅的方法保留队列中的空间(细节参见参考资料一节)。大多数系统都默认启用这个特性,但是确保配 置这个特性更可靠。 启用 TCP 窗口伸缩使客户机能够以更高的速度下载数据。TCP 允许在未从远程端收到确认的情况下发送多个数据包,默认设置是最多 64 KB,在与延迟比 较大的远程客户机进行通信时这个设置可能不够。窗口伸缩会在头中启用更多的位,从而增加窗口大小。 后面四个配置项增加 TCP 发送和接收缓冲区。这使应用程序可以更快地丢掉它的数据,从而为另一个请求服务。还可以强化远程客户机在服务器繁忙时发

Linux双网卡搭建NAT服务器

Eth0的IP 地址,GW和DNS 都是自动获取的。当然,如果是手动分配IP 、GW 和DNS 也是没问题的。我的eth0 配置如下: IP: 192.168.79.129/24 GW: 192.168.79.1 DNS:192.168.79.2 Linux 主机的eth1 指向内网,IP 地址为:10.50.10 .1/24 。内网主机的内网主机的IP 地址就是10.50.10.0/24 段的IP ,eth1 的IP 是所有内网主机的网关。这里,我的内网主机设置如下: IP: 10.50.10.46/24 GW: 10.50.10.1 DNS:192.168.79.2 这里,所有内网主机的网关都设置为eth1 的IP 地址,而DNS 设置为eth1 所在的Linux 系统主机的DNS ,即192.168.79.2 。 (二)启用转发功能 以上配置完成后,Host A应该可以ping通Linux系统主机的eth1的IP,因为他们是通过交换机链接的。但是,Host A应该可以ping不通Linux系统主机的eth0的IP,应为并未开启Linux系统主机的转发功能。 开启Linux的转发功能,执行如下命令: # echo 1 > /proc/sys/net/ipv4/ip_forward 查看系统是否启用了转发功能,可以执行如下命令: # cat /proc/sys/net/ipv4/ip_forward 如果结果为1,代表已启用,0代表未启用。 此时,执行ping 192.168.72.129 以及其网关和DNS都可ping通了。 (三)配置NAT规则 经过第二部分配置后,虽然可以ping相关的IP地址,但是内网主机还是无法上网。问题在于内网主机的IP地址是无法在公网上路由的。因此,需要转换成Linux系统主机可以上网的IP(注:这里我们只说不说是公网IP,是因为Linux系统可以直接上外网的IP同样是内网IP。但是该内网IP(192.168.79.129)已经通过一些机制,实际上同样是NAT的方式,可以访问外网了,因此我们只需将Host A的IP转换成Linux系统eth0接口的IP即可)。 我们配置的NAT NAT 转换: #iptables -t nat -A POSTROUTING -s 10.50.10.0/24 -o eth0 -j MASQUERADE 也可以通过使用 SNAT target 实现: #iptables -t nat -A POSTROUTING -s 10.50.10.0/24 -o eth0 -j SNAT --to-source 192.168.79.129 至于 MASQUERADE 和 SNAT 的区别,可以网上搜索,有相关的解释。 同时,还要在 FORWARD 点出配置规则如下: #iptables -A FORWARD -i eth1 -j ACCEPT 保证所有进入 eth1 的包都被 FORWARD 点 ACCEPT 。 经过以上的配置之后, Host A 就可以正常的访问外网了。

Linux双网卡路由设置

为了Linux双网卡路由设置 如题。为了Linux可以上网,加了网关。如下: 1。所修改得关键文件: /etc/sysconfig/hwconf 检查网卡是否被检测到。 /etc/modules.conf 检查每个网卡分配得别名。 /etc/sysconfig/network-stripts/ifcfg-eth0 配置网卡一 /etc/sysconfig/network-stripts/ifcfg-eth1 配置网卡二 /etc/sysconfig/networking/* 有部分关于主机名称等得配置文件。 2。使用如下命令可以让配置生效: /etc/init.d/network restart 3。静态路由添加方法: (1)将添加静态路由的命令加入到rc.local中 /etc/rc.d/rc.local 格式如下(与route命令格式一致): route add -net 219.223.216.0 netmask 255.255.255.0 gw 219.223.215.129 dev eth1 加后,需重启系统后生效。 注:另有说法可将静态路由加入/etc/sysconfig/static-routes文件中(此文件中加入试用无效) (2)将添加静态路由的命令加入到/etc/sysconfig/network-scripts/route-eth1文件中 格式如下: 219.223.214.0/24 via 219.223.215.129 dev eth1 219.223.215.0/24 via 219.223.215.129 加后,需service network restart后生效

linux中的weblogic性能调优

Linux中的Weblogic性能测试调整 一.操作系统参数调整 1.linux TCP连接数调整 通过命令:ulimit –n 查看当前最大TCP连接数,这表示当前用户的每个 进程最多允许同时打开多少个文件。一般系统默认为1024,在并发量大 的情况下肯定不够用。 修改此限制的最简单办法:ulimit –n 设置单一进程允许打开 的最大文件数。如果系统回显类似于“Operation not permitted”之类的话,说明修改失败,需要修改系统对该用户打开文件数的软限制或硬限制。 修改软限制或硬限制: 修改/etc/security/limits.conf文件,在文件中添加如下行: * soft nofile 10240 * hard nofile 10240 表示修改所有用户的限制,也可以用指定用户名替代。 修改/etc/pam.d/login文件,在文件中添加如下行: session required /lib/security/pam_limits.so 查看Linux系统级的最大打开文件数限制:cat /proc/sys/fs/file-max 2.修改网络内核对TCP连接的有关限制 端口范围: 修改/etc/sysctl.conf文件,在文件中添加如下行: net.ipv4.ip_local_port_range = 1024 65535 另外,有时无法建立TCP连接的原因可能是因为Linux网络内核的IP_TABLE防火 墙对最大跟踪的TCP连接数有限制 修改/etc/sysctl.conf文件,在文件中添加如下行:net.ipv4.ip_conntrack_max = 10240 这表明将系统对最大跟踪的TCP连接数限制设置为10240。请注意,此限制值要尽 量小,以节省对内核内存的占用。 3.其他参数调整 在/etc/sysctl.conf文件中增加如下参数,进行系统参数调整 net.core.rmem_default=128388607 默认的TCP数据接收缓冲 net.core.wmem_default=128388607 默认的TCP数据发送缓冲 net.core.rmem_max=128388607 net.core.wmem_max=128388607

Linux-2.6.31内核优化指南

Linux 2.6.31内核优化指南 作者:Ken Wu Email: ken.wug@https://www.wendangku.net/doc/964240274.html, 介绍 本文档是一篇关于Linux Kernel 2.6.31的最简优化指南。作者旨在编译一份性 能最佳且适合普通Application/Server开发用的内核。(非生产环境) 本文提及的内核调优,主要是通过选择最佳编译选项,删除无用驱动,减少内核尺寸,关闭部分安全特性等方式来进行的。 优化后的效果,主要体现在OS启动时间,启动后的内存占用以及应用程序运行性能。 由于作者水平有限,如果描述错误,还请不吝指教。 运行环境 虚拟机Virtualbox 3.1.4 CPU Core 2 Duo P9500 2.53G双核开启vt-x, APIC 磁盘 虚拟10G的SATA磁盘 内存 分了1G物理内存 网卡 虚拟AMD PCNet32 100M 其他USB,串口,显卡,声卡全关 作者是在虚拟机中编译的内核,如果你与作者的运行环境不同,则本文档中的部分描述可能会与你的实际情况有一定出入。 不过,相信大部分用户在看到选项释义时,能做出适合自己的选择。 说明 下列选项中,通过"// "注释的行,代表金国步写的内核选项简介中未提及的选项释义。 通过红色"<==="注释的行,代表内核默认开启,本文档推荐关闭的选项,释

义部分会给出关闭的理由。 参考资料 金国步写的内核选项简介 Linux Kernel Database Linuxsir BBS 优化前后性能对比 项目优化前优化后 内核尺寸 4.1M 1.6M 启动时间(含dhcp+默认init service)22s14s 启动后的内存占用25M22M APP SPEC测试成绩待测待测 General setup ---> [ ] Prompt for development and/or incomplete code/drivers <===显示尚在开发中或尚未完成的代码和驱动.我不是内核或驱动开发人员。 () Local version - append to kernel release [ ] Automatically append version information to the version string Kernel compression mode (Bzip2) ---> <===对比默认的Gzip,Bzip2拥有更高的压缩比 [*] Support for paging of anonymous memory (swap) [*] System V IPC [*] BSD Process Accounting

Linux 性能测试与分析报告

Linux 性能测试与分析 Linux 性能测试与分析 Revision History 1 性能测试简介 l 性能测试的过程就是找到系统瓶颈的过程。 l 性能测试(包括分析和调优)的过程就是在操作系统的各个子系统之间取得平衡的过程。l 操作系统的各个子系统包括: ?CPU

?Memory ?IO ?Network 他们之间高度依赖,互相影响。比如: 1. 频繁的磁盘读写会增加对存的使用 2. 大量的网络吞吐,一定意味着非常可观的CPU利用率 3. 可用存的减少可能增加大量的swapping,从而使系统负载上升甚至崩溃 2 应用程序类型 性能测试之前,你首先需要判断你的应用程序是属于那种类型的,这可以帮助你判断哪个子系统可能会成为瓶颈。 通常可分为如下两种: CPU bound –这类程序,cpu往往会处于很高的负载,当系统压力上升时,相对于磁盘和存,往往CPU首先到达瓶颈。Web server,mail server以及大部分服务类程序都属于这一类。 I/O bound –这类程序,往往会频繁的访问磁盘,从而发送大量的IO请求。IO类应用程序往往利用cpu发送IO请求之后,便进入sleep状态,从而造成很高的IOWAIT。数据库类程序,cache服务器往往属于这种类型。 3 CPU

3.1 性能瓶颈 3.1.1 运算性能瓶颈 作为计算机的计算单元,其运算能力方面,可能出现如下瓶颈: 1. 用户态进程CPU占用率很高 2. 系统态(核态)CPU占用率很高 测试CPU的运算性能,通常是通过计算圆周率来测试CPU的浮点运算能力和稳定性。据说Pentium CPU的一个运算bug就是通过计算圆周率来发现的。圆周率的计算方法,通常是计算小数点后104万位,通过比较运算时间来评测CPU的运算能力。 常用工具: 1. SUPER PI(π) 2. Wprime 与SuperPI不同的是,可以支持多核CPU的运算速度测试 3. FritzChess 一款国际象棋测试软件,测试每秒钟可运算的步数 突破CPU的运算瓶颈,一般只能靠花钱。比如提高时钟频率,提高L1,L2 cache容量或不断追求新一代的CPU架构: Core -> Nehalem(E55x,如r710,dsc1100) -> Westmere –> Sandy Bridge 3.1.2 调度性能瓶颈 CPU除了负责计算之外,另一个非常重要的功能就是调度。在调度方面,CPU可能会出现如下性能瓶颈: 1. Load平均值超过了系统可承受的程度 2. IOWait占比过高,导致Load上升或是引入新的磁盘瓶颈 3. Context Switch过高,导致CPU就像个搬运工一样,频繁在寄存器(CPU Register)和运行队列(run queue)之间奔波 4. 硬中断CPU占比接近于100% 5. 软中断CPU占比接近于100% 超线程 超线程芯片可以使得当前线程在访问存的间隙,处理器可以使用它的机器周期去执行另外一个线程。一个超线程的物理CPU可以被kernel看作是两个独立的CPU。 3.2 典型监控参数 图1:top

linux系统性能优化及瓶颈分析

linux系统性能优化及瓶颈分析 一,用vmstat分析系统I/O情况 [root@localhost ~]# vmstat -n 3 (每个3秒刷新一次) procs-----------memory--------------------swap--- ---io---- --system---- ------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 144 186164 105252 2386848 0 0 18 166 83 2 48 21 31 0 2 0 144 189620 105252 2386848 0 0 0 177 1039 1210 34 10 56 0 0 0 144 214324 105252 2386848 0 0 0 10 1071 670 32 5 63 0 0 0 144 202212 105252 2386848 0 0 0 189 1035 558 20 3 77 0 2 0 144 158772 105252 2386848 0 0 0 203 1065 2832 70 14 15 0 IO -bi:从块设备读入的数据总量(读磁盘)(KB/S) -bo:写入到块设备的数据总量(写磁盘)(KB/S) 随机磁盘读写的时候,这2个值越大(如超出1M),能看到CPU在IO等待的值也会越大 二,用iostat分析I/O子系统情况 如果你的系统没有iostat,sar,mpstat等命令,安装sysstat- 7.0.2-1.el5.i386.rpm包,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU 使用情况。同vmstat

Linux下配置双网卡聚合

一、背景 CentOS6.6 Ethernet: em1 em2 em3 em4 bond0 192.168.51.134/24 bond1 192.168.52.135、24 GW 192.168.51.1 GW 192.168.52.1 VLAN 51 52 前提:查看8021q模块有没有挂载,如果没有的话就进行手动挂载 # lsmsg |grep 8021q # modprobe 8021q 二、配置: 1.配置em1、em2配置文件并将这两块网卡绑定为bond0 # cd /etc/sysconfig/network-scripts/ # vim ifcfg-em1 DEVICE=em1 TYPE=Ethernet UUID=bcf7fa28-5807-4126-a7e6-d16bb5ddd32b ONBOOT=yes BOOTPROTO=none #HWADDR=18:66:DA:4C:FC:E6 DEFROUTE=yes #IPV4_FAILURE_FATAL=yes #IPV6INIT=no MASTER=bond0 SLAVE=yes USERCTL=yes PS:这里HWA DDR、UUID一行可以注释掉,因为后面重启network服务的时候可能会提示MA C地址重复,当然如果不提示最好 2.配置em2、em3、em4如上配置参数,其中em3、em4的MASTER=bond1 3.复制或创建ifcfg-bond0、ifcfg-bond1,并修改文件内容如下 # cp ifcfg-em1 ifcfg-bond0 # vim ifcfg-bond0 DEVICE=bond0 BOOTPROTO=none ONBOOT=yes TYPE=Ethernet BONDING_OPTS="mode=2 miimon=100" VLAN=yes

Linux 性能调优的几种方法

Linux 性能调优的几种方法 按照传统,Linux不同的发行版本和不同的内核对各项参数及设置均做了改动,从而使得系统能够获得更好的性能。下边将分四部分介绍在Red Hat Enterprise Linux AS和SUSE LINUX Enterprise Server系统下,如何用以下几种技巧进行性能的优化: 1、Disabling daemons (关闭daemons) 2、Shutting down the GUI (关闭GUI) 3、Changing kernel parameters (改变内核参数) 4、Kernel parameters (内核参数) 5、Tuning the processor subsystem(处理器子系统调优) 6、Tuning the memory subsystem (内存子系统调优) 7、Tuning the file system(文件系统子系统调优) 8、Tuning the network subsystem(网络子系统调优) 1 关闭daemons 有些运行在服务器中的daemons (后台服务),并不是完全必要的。关闭这些daemons可释放更多的内存、减少启动时间并减少CPU处理的进程数。减少daemons数量的同时也增强了服务器的安全性。缺省情况下,多数服务器都可以安全地停掉几个daemons。 Table 10-1列出了Red Hat Enterprise Linux AS下的可调整进程. Table 10-2列出了SUSE LINUX Enterprise Server下的可调整进程

注意:关闭xfs daemon将导致不能启动X,因此只有在不需要启动GUI图形的时候才可以关闭xfs daemon。使用startx命令前,开启xfs daemon,恢复正常启动X。

SUSE Linux双网卡绑定设置详解

suse linux双网卡绑定设置详解 双网卡的绑定可以实现冗余和高可用性,在suse linux 10中和redhat linux 5中设置双网卡绑定是不太一样的,下面详解一下suse linux 下的双网卡绑定: 步骤1:进入到网络配置目录 # cd /etc/sysconfig/network 步骤2:创建ifcfg-bond0配置文件 Vi ifcfg-bond0 输入如下内容保存 BOOTPROTO='static' BROADCAST='' IPADDR='172.27.120.21 #要绑定的ip地址 NETMASK='255.255.255.0 '#网段的掩码 NETWORK='' STARTMODE='onboot' BONDING_MASTER='yes' BONDING_MODULE_OPTS='mode=1 miimon=100 ' # mode=1是主备模式(active-backup) mode=0是平衡模式(balance_rr) BONDING_SLAVE0='eth0' #第一块网卡的mac地址 BONDING_SLAVE1='eth1' #第二块网卡的mac地址 ETHTOOL_OPTIONS='' MTU='' NAME='' REMOTE_IPADDR='' USERCONTROL='no' 步骤3:使用yast进入网卡的配置界面,把原有的两块网卡设置为没有ip,网卡模式改为自动获取地址模式,删除/etc/sysconfig/network下的已经绑定的网卡的配置文件 步骤4:注意默认网关的配置,使用yast管理工具进入路由设置界面,或者通过修改配置文件的方式并运行命令进行配置 配置默认网关。 # vi routes 插入如下内容 default 172.27.120.254 - - # route add default gw 172.27.120.254 步骤5:重启网络服务,使配置生效 # rcnetwork restart 步骤6:验证 (1) 输入ifconfig可以看到bond0已经运行了,bond0、eth1、eth0的MAC地址都是一样 JSBC-SIHUA-DB02:/etc/sysconfig/network # ifconfig bond0 Link encap:Ethernet HWaddr 78:2B:CB:4B:54:D5

linux性能调优学习笔记

Linux 性能调优 1.Profiling几种工具 profiling 包括几种:cpu profiling,即提到的性能分析。memory profiling,即分析程序性能。network profiling,即网络流量的分析。 另外,profiling又分两种:1, sampling。即采样方式。2, instruments,即插装代码技术。(包含: 编译期间,链接期间,运行期间)。 oprofile ---- 属于sampling 方式,即不影响程序行为,也不需要重启程序,它是对cpu进行采样分析。 gprof ---- 属于插装技术,需在编译期间增加-pg 选项,属于GNU 部分,不需安装,随着gcc附带。 valgrind--- 属于插装技术,需要在运行期间增加valgrind选项。(其中massif工具用于内存分析,callgrind用于性能分析) google-perftools ---- 属于插装技术,需要在链接期间增加-L/usr/lib -lprofiler 选项。 2.gprof 分析linux程序性能瓶颈 gcc -pg -o test test.c test运行的时候会把搜集的信息保存在gmoun.out中 fedora 不能使用-lc_p选项的问题 一般gprof只能查看用户函数信息。如果想查看库函数的信息,需要在编译是再加入“-lc_p”编译参数代替“-lc”编译参数,这样程序会链接libc_p.a库,才可以产生库函数的profiling信息。 需要安装glibc-profile,下载地址 http://ftp.riken.jp/Linux/fedora/core/updates/2/i386/glibc-profile-2.3.3-27.1.i386.rp。 gprof hello gmon.out -p 得到每个函数占用的执行时间 gprof hello gmon.out -q 得到call graph,包含了每个函数的调用关系,调用次数,执行时间等信息。 gprof hello gmon.out -A 得到一个带注释的“源代码清单”,它会注释源码,指出每个函数的执行次数。这需要在编译的时候增加-g选项。 3.Oprofile性能调优 https://www.wendangku.net/doc/964240274.html,/news/ 要使用oprofile 首先得采用打开oprofile支持的内核启动。 Oprofile需要重新编译内核,请确认: .config 文件中设置: CONFIG_PROFILING=y CONFIG_OPROFILE=y 另外,还要在Processor type and features 菜单中启用Local APIC 和IO-APIC: CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y 查看处理起本身没有集成APIC oprofile.ko内核模块已经被集成到linux 2.6内核中,所以只需要安装前端工具,可以从

在linux(redhat)下双网卡负载均衡(lacp)

(一)linux配置 #cat /boot/config-kernel-version |grep -i bonding CONFIG_BONDING=m 返回CONFIG_BONDING=m表示支持,否则需要编译内核使它支持bonding 也可以用:查看一下内核是否已经支持bonding:modinfo bonding 第一步:创建一个ifcfg-bondX # touch /etc/sysconfig/network-scripts/ifcfg-bond0 新建一个bond0配置文件 # cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static IPADDR=1.1.1.2 NETMASK=255.255.255.0 BROADCAST=1.1.1.255 NETWORK=1.1.1.0 GATEWAY=1.1.1.1 ONBOOT=yes TYPE=Ethernet 编辑ifcfg-bond0如上 第二步:修改/etc/sysconfig/network-scripts/ifcfg-ethX 这个实验中把网卡1和2绑定,修改/etc/sysconfig/network-scripts/ifcfg-ethX相应网卡配置如下: # cat /etc/sysconfig/network-scripts/ifcfg-eth1 TYPE=Ethernet DEVICE=eth1 HWADDR=00:d0:f8:40:f1:a0 网卡1mac BOOTPROTO=none ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes # cat /etc/sysconfig/network-scripts/ifcfg-eth2 TYPE=Ethernet DEVICE=eth2 HWADDR=00:d0:f8:00:0c:0c 网卡2mac BOOTPROTO=none ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes

嵌入式linux内存使用与性能优化

嵌入式linux内存使用与性能优化 https://www.wendangku.net/doc/964240274.html,/bird67/article/details/199686592014本文摘自: https://www.wendangku.net/doc/964240274.html,/liuchao1986105/article/details/66776631、内核分配物理内存的最小单位为一个物理页面,一个物理页面为4kb。无论虚拟内存分配了多少字节,比如malloc(400),内核仍然分配4kb物理内存页面。 2、malloc语句执行时,只是给进程分配了虚拟内存,虚拟内存此时不占用物理内存。当使用此处内存时,比如变量赋值*p = ??或memcpy或strcpy时,内核会产生一个页故障,从而为进程分配一个物理页面。 3、进程状态可以在/proc中根据pid值找到进程的目录。 目录中statm信息(cat statm)中的7个数,以页为单位。 从左至右依次为size:任务虚拟地址空间大小。 resident:应用程序正在使用的物理内存大小。shared:共享页数。 trs:程序所拥有的可执行虚拟内存大小。lrs:被映像到任务的虚拟内存空间的库的大小。drs:程序数据段和用户态的栈的大小。dt:脏页数量。 4、目录中maps信息(cat maps)中,表示进程使用的虚拟地址(栈,堆,代码等)。内存使用权限信息r=读,

w=写,x=执行,s=共享,p=私有。r-xp通常表示代码段,只读,可执行。Rw-p通常表示数据段,可读写,不能执行。rwxp通常表示栈段,读写,可执行。栈不仅可以保存数据,也可以保存代码。 5、32位操作系统中,进程虚拟内存为4g,分为两部分,内核空间(高1g),用户空间(低3g)。 6、堆段:每个进程有一个,不论是主进程、动态库还是不同的线程里申请的堆内存,都反映在进程的堆段。栈段:每个线程有一个,如果进程中有多个线程,则包含多个栈段。代码段:由于其只读,不会被修改,故其在整个系统中共享。比如说一个执行文件,在系统中同时存在多个进程,那么这些进程将共享其代码段所占用的内存。 数据段:由于它是可写的,其内容与其所在的进程高度相关,所以在程序运行时会为每个进程创建一个数据段副本,故每个进程有一个数据段。 7、p = malloc(xxx); 分配给p的大小存放于*(p - 4)位置。 8、readelf、size、strip命令的使用。Nm ???.out检查???.out 执行文件的符号表。 9、检查当前内核配置的进程栈大小,使用ulimit -a命令查看stack size:。如需设置栈大小,使用ulimit -s 16384,栈大小为16k。 10、线程栈空间未设置时,通常为2m。2m的栈空间略微显

Linux双网卡绑定实现

Linux双网卡绑定实现.txt*一篇一篇的翻着以前的的签名,那时候的签名有多幼稚就有多么的幼稚。你连让我报复的资格都没有-〞好想某天来电显示是你的号码。好想某天你的状态是为我而写。有些人,我们明知道是爱的,也要去放弃,因为没结局Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux 的2.4.x的内核中也采用这这种技术,被称为bonding。bonding技术的最早应用是在集群——beowulf上,为了提高集群节点间的数据传输而设计的。下面我们讨论一下bonding 的原理,什么是bonding需要从网卡的混杂(promisc)模式说起。我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。 说了半天理论,其实配置很简单,一共四个步骤: 实验的操作系统是Redhat Linux Enterprise 3.0 绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片。 1.编辑虚拟网络接口配置文件,指定网卡IP vi /etc/sysconfig/ network-scripts/ ifcfg-bond0 [root@redflag root]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0 2 #vi ifcfg-bond0 将第一行改成 DEVICE=bond0 # cat ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static IPADDR=172.31.0.13 NETMASK=255.255.252.0 BROADCAST=172.31.3.254 ONBOOT=yes TYPE=Ethernet 这里要主意,不要指定单个网卡的IP 地址、子网掩码或网卡 ID。将上述信息指定到虚拟适配器(bonding)中即可。 [root@redflag network-scripts]# cat ifcfg-eth0 DEVICE=eth0 USERCTL=no BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes [root@redflag network-scripts]# cat ifcfg-eth1 DEVICE=eth1

相关文档
相关文档 最新文档