范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

LVSNginx压测与性能调优(超详细)

  LVS和Nginx作为一个常用的负载均衡软件,充当集群流量入口的角色,需要承载的业务流量一般都比较大,这个时候对LVS/Nginx节点进行一些参数调优,对于发挥它们的性能有很大的帮助。一、 可能会负载均衡器性能的因素1. 硬件方面
  CPU、内存、网卡。
  其中最主要的是CPU和网卡,短连接业务场景下cpu软中断si可能成为性能瓶颈;网卡的最大流量值也可能限制负载均衡器性能的发挥,如常见的千兆网卡,理论最大数据传输速率为1000Mb/s,即125MB/S。LVS对于内存消耗并不多,Nginx相对会消耗内存一些,不过内存一般不会成为瓶颈。2. 系统方面
  Linux系统默认有许多限制,对于在业务流量较大的情况下发挥负载均衡器的性能有很大影响。常见的如: 服务端可接受的最大连接数、可接受的最大半连接数、本地可用端口范围、time-wait连接数、可打开的最大文件句柄数、网卡等待队列大小等。3. 软件方面
  LVS的hash table值,Nginx的nginx.conf调优等。4. 网络方面
  负载均衡器和真实服务器都是通过网络进行通信,如果条件允许,最好将它们置于同机房、同网段下,减小网络时延带来的影响。二、性能调优介绍1. 系统参数调优1.1 网卡多队列与CPU核绑定
  网卡多队列是一种硬件技术,即一个物理网卡可以有多个队列通道,需要多队列网卡驱动支持。默认情况下各个队列的请求都是由cpu0核处理,所以很容易因为cpu0核si满造成性能瓶颈。如下所示:
  cpu软中断集中在单个核上
  多队列网卡在系统中有多个中断号,通过CPU核绑定,将各个中断号对应的网卡队列绑定到指定的CPU核处理,这样可以发挥多核CPU的优势,将中断请求分摊到多个cpu核上,提升cpu处理性能。
  配置方法:
  a. 检查系统是否已开启irqbanlance服务,如果有,则关闭该服务,手动进行cpu核绑定。
  # ps -ef | grep irqbalance
  b. 检查网卡是否支持多队列
  #lspci -vvv | grep -A 30 "Ethernet controller"
  检查是否存在 MSI-X: Enable+ Count >0,如果存在,说明网卡支持多队列。
  c. 查询网卡各队列对应的中断号
  # cat /proc/interrupts | grep em3
  如下图,可以看到em3网卡有8个队列,分别对应中断号187~194。
  d. 将各队列绑定到指定的CPU核
  # echo 1 > /proc/irq/187/smp_affinity
  # echo 2 > /proc/irq/188/smp_affinity
  # echo 4 > /proc/irq/189/smp_affinity
  # echo 8 > /proc/irq/190/smp_affinity
  # echo 10 > /proc/irq/191/smp_affinity
  # echo 20 > /proc/irq/192/smp_affinity
  # echo 40 > /proc/irq/193/smp_affinity
  # echo 80 > /proc/irq/194/smp_affinity
  PS: 这里传入的值为16进制。转换为2进制后对应绑定的cpu核。
  如: echo 80 > cat /proc/irq/194/smp_affinity
  16进制80转换为2进制为1000 0000,表示将中断号194绑定到cpu7核上面。
  从下图可以看到做了网卡多队列与CPU核绑定后,中断处理分摊到了cpu0~7核,处理能力得到提升。
  做了网卡多队列与CPU核绑定后的效果1.2 关注系统链接跟踪表大小
  系统链接跟踪表记录了经过系统转发的连接信息,通过加载nf_conntrack模块启用, 对于iptables、SNAT/DNAT等功能是必须启用链接跟踪表的。
  但是如果链接跟踪表的值设置的太小,容易造成链接跟踪表满导致丢包的问题。所以需要关注系统的链接跟踪表最大值和当前值的大小,当二者相等时,说明表满,系统会drop新的连接请求。
  # sysctl -a | grep nf_conntrack_max (查询系统链接跟踪表最大值)
  # sysctl -a | grep nf_conntrack_count (查询系统链接跟踪表当前值)
  如下图中的链接跟踪表最大值为65536就太小了,很容易造成丢包。
  ps: 链接跟踪表设置大一些虽然不会造成丢包,但是在业务量很大的情况下,如果表过大(上百万的级别),系统查询链接跟踪表会消耗大量的cpu资源,可能会导致系统挂死。1.3 关闭网卡LRO、GRO特性
  现在大多数网卡都具有LRO/GRO功能,即 网卡收包时将同一流的小包合并成大包 (tcpdump抓包可以看到>MTU 1500bytes的数据包)交给 内核协议栈;LVS内核模块在处理>MTU的数据包时,会丢弃;
  因此,如果我们用LVS来传输大文件,很容易出现丢包,传输速度慢;
  解决方法,关闭LRO/GRO功能,命令:(注意查看命令是小k,修改命令是大K)
  ethtool -k eth0 查看LRO/GRO当前是否打开
  ethtool -K eth0 lro off 关闭GRO
  ethtool -K eth0 gro off 关闭GRO1.4 增大网卡的ring buffer值。
  # ethtool -G em4 rx 4096
  # ethtool -G em4 tx 4096
  1.5 增大网卡等待队列大小
  netdev_max_backlog参数表示每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。当网卡流量很大时,可以调大这个参数值。
  # sysctl -w net.core.netdev_max_backlog=2621441.6 增大服务端全连接队列大小
  somaxconn参数表示服务端已完成3次握手连接的队列大小,即单个服务可建立的tcp连接最大值。当需要增大服务端处理并发连接的能力时,需要调大该参数值。
  # sysctl -w net.core.somaxconn=2621441.7 增大服务端半连接队列大小
  tcp_max_syn_backlog参数表示服务端接收syn消息队列的大小。如果该队列未满,则响应(syn,ack)消息;否则将丢弃客户端的syn包。
  # sysctl -w net.ipv4.tcp_max_syn_backlog=2621441.8 增大系统可用的本地端口范围
  # sysctl -w net.ipv4.ip_local_port_range="1024 65535"1.9 增大系统time_wait状态连接数限制
  tcp_max_tw_buckets表示系统允许存在的time_wait状态连接数。Time wait状态是tcp断连中一个正常的状态,它存在的作用主要包括:确保tcp连接可靠的断开和旧连接的报文在网络中彻底消失。如果这个值过小,则客户端不会进入time_wait状态,而是直接从FIN_WAIT状态结束。这时候服务端最后一次挥手的FIN消息会以收到RST结束,可能会导致服务端断连异常。
  # sysctl -w net.ipv4.tcp_max_tw_buckets=2621441.10 启用time_wait状态连接复用
  增大tcp_max_tw_buckets值有一个负面影响,就是系统time_wait状态连接过多,将可用端口耗尽,导致没有足够的可用端口新建连接。这时候可以启用time_wait状态连接复用。注意需要同时启用时间戳tcp_timestamps。(注意开启tcp_timestamps后要确认关闭tcp_tw_recycle)
  # sysctl -w net.ipv4.tcp_timestamps=1
  # sysctl -w net.ipv4.tcp_tw_reuse=11.11 增大系统最大文件句柄数
  fs.file-max表示系统整体允许打开的最大文件句柄数。这个值一般只需关注一下,如果配置过小,可以增大。
  # sysctl -a | grep fs.file-max1.12 增大系统进程最大文件句柄数
  ulimit -n查询的结果表示单个进程允许打开的最大文件句柄数,可用ulimit -n xxx调大该参数值。
  # ulimit -n
  # ulimit -n xxx
  注意这只是在当前shell下生效的,系统重启后会丢失,需要同时修改/etc/security/limits.conf中的nofile值。其中,* 这行的配置表示对非root用户生效。
  * soft nofile 1024000
  * hard nofile 1024000
  root soft nofile 1024000
  root hard nofile 10240002. LVS参数调优2.1 增大ipvs模块hash table的大小
  ipvs模块hash table默认值为2^12=4096,改为2^20=1048576。
  可以用ipvsadm -l命令查询当前hash table的大小。
  修改方法:
  在/etc/modprobe.d/目录下添加文件ip_vs.conf,内容为:
  options ip_vs conn_tab_bits=20
  重新加载ipvs模块。
  3.Nginx参数调优
  Nginx的参数配置都在nginx.conf文件中。3.1 配置worker进程数等于系统cpu核数,并配置cpu核绑定。
  worker_processes auto;
  worker_cpu_affinity auto;
  这里比较方便的是配置为auto,但是根据实际的系统情况指定worker进程数和手动绑定cpu核可能性能会更高一些,比如避开中断irq处理的cpu核,将worker进程绑定到其它空闲的cpu核上。3.2 使用epoll模型
  use epoll;3.3 关闭TCP的Nagle算法
  tcp_nodelay on;
  Nagle算法规定了一个TCP连接中最多只能存在一个未被确认的小包,这可能会和系统的延迟ACK机制产生冲突,造成较为严重的时延。3.4 增大单个worker进程的文件句柄数限制
  worker_rlimit_nofile 1024000;3.5 增大单个worker进程的最大并发连接数限制
  worker_connections 1024000;
  这里的最大并发连接包括前后端的连接,且该参数值不能大于worker_rlimit_nofile。4. 硬件与网络配置调优4.1 对物理网卡做多网卡绑定
  采用mode 0或mode 4对多块物理网卡做绑定,提升网卡整体的传输速率。如将两块传输速率为1000MB/S的网卡做mode0绑定,则理论上bond网卡的传输速率为2000MB/S。4.2 将负载均衡器和真实服务器放在一个局域网内
  负载均衡器和真实服务器靠网络传输数据,如果条件允许,将它们放在一个局域网内,避免数据传输走路由器传输。三、性能分析工具1. 分析cpu性能
  top:按1可以看到每个cpu核的cpu使用情况,同时还能看到各个进程的情况。
  sar -u 1:每隔1秒打印出当前cpu的整体使用情况。
  mpstat -P ALL 1 :每隔1秒打印出所有cpu核的使用情况。
  ps:sar和mastat需要安装sysstat工具包。2. 分析网卡流量
  sar -n DEV 1:每隔1秒打印出所有网卡的流量传输情况。3. 查看网卡配置
  # ethtool xxx
  下图em3为千兆网卡,注意这里的单位是小b。
  4. 查看bond网卡绑定模式
  # cat /proc/net/bonding/xxx
  下面的bond0网卡的绑定模式为mode0,轮询。
  四、 性能压测工具
  这里介绍一个很好用的http压测工具:wrk。1. 安装方法
  #git clone https://github.com/wg/wrk
  # make
  # ln -s xxx/wrk /usr/sbin/wrk2. 使用方法
  使用方法: wrk <选项> <被测HTTP服务的URL>
  Options:
  -c, --connections 跟服务器建立并保持的TCP连接数量
  -d, --duration 压测时间
  -t, --threads 使用多少个线程进行压测
  -s, --script 指定Lua脚本路径
  -H, --header 为每一个HTTP请求添加HTTP头
  --latency 在压测结束后,打印延迟统计信息
  --timeout 超时时间
  -v, --version 打印正在使用的wrk的详细版本信息
  代表数字参数,支持国际单位 (1k, 1M, 1G)
  代表时间参数,支持时间单位 (2s, 2m, 2h)3. 示例
  wrk默认为http长连接。
  使用10个线程、1000个长连接对指定URL压测60s,并打印时延信息。
  # wrk -t10 -c1000 -d60s --latency "http://xxx/test.html"
  Requests/sec: 149863.60 # 每秒的请求数,即QPS
  Transfer/sec: 67.02MB # 每秒传输的字节数
  指定头域实现http短连接测试。
  # wrk -t10 -c1000 -d60s -H "Connection: Close" --latency "http://xxx/test.html"
  4. 注意压测客户端也会遇到性能问题,也需要对其进行性能调优。
  最主要的是给自己增加知识的储备,有备无患。最后给大家分享Spring系列的学习笔记和面试题,包含
  spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、
  最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主
  (666)领取,祝大家更上一层楼!!!

中国风水墨视频特效哪里有?4K水墨视频素材56组中国风水墨滴落泼洒视频转场4K视频素材,包含镜像飞溅水墨,纸上水墨,飞溅水墨,泼洒水墨,喷洒水墨等。泼洒水墨7个MP4飞溅水墨32个MP4纸上水墨7个MP4镜像飞溅水墨10个Mac上哪款文本编辑器好用?TyporaforMac值得推荐的四大优势Mac上哪款Markdown文本编辑器好用?Typora中文版是一款好用极简免费的跨平台Markdown编辑器,是一款不可多得的优质markdown编辑器。你知道为什么Typora如何使用GeoGebra考试模式?GeoGebraClassic6Mac版是一款适用于Mac电脑的免费数学应用软件,提供各级教育使用,包含了几何代数表格图形统计和微积分,那么教师该如何使用GeoGebra考试模式?数据库云化有哪些优势?新网云资讯关于数据库,很多企业和个人开发者仍习惯于使用自建开源数据库,但自建开源数据库却十分依赖专业DBA和数据库技术人员等手工下载版本补丁分析Bug情况,然后人工安装部署,面临各云游戏背后,强大的云服务在工作新网云资讯5G时代,云游戏成为行业热词。云游戏,顾名思义就是利用部署在数据中心里的强大的云服务来进行游戏画面的渲染,在云端生成的游戏画面,再以视频流的形式借助高速网络实时地传递到用工作疲惫之余用DesktopGoose来缓解一下吧DesktopGoose,一只捣乱的桌面宠物鹅桌面宠物软件哪款好?桌面宠物软件推荐DesktopGoose抖音桌面宠物鸭,DesktopGoosemac破解版可以给你的桌面添加一只注册中文域名,有哪些优势?新网域名科普自互联网诞生以来,英文域名一直占据着统治地位,2000年起,在中国互联网络信息中心(CNNIC)中文域名协调联合会(CDNC)等机构的共同努力下,中文标识逐渐出现在域名企业员工收到工资补贴邮件请注意新网企业邮箱资讯近日,某公司陈女士收到了以财务为名义发送的邮件,内容为工资补贴通知。陈女士点开邮件后,里面是一个关于工资补贴的通知,并附带一个二维码,称要扫描二维码进行登记才能领取和所有家长共勉不要抱怨陪孩子写作业累人。用不了几年,你看着孩子房间熄灭的台灯,一片漆黑。会怀念那个小小的背影,坐在那里,一会儿写字,一会业摸摸脑袋,一会儿玩玩笔,一会喊妈妈来一下看着孩子空空的卧家里人多买车还是空间越大越好,这3款车实力不俗,有你喜欢的吗随着全面开放三胎,很多家庭如今面临着换车,新生命的降临可不止于家里多了一副碗筷这么简单。首先在出行上,由于新的成员加入,原本的轿车和SUV不够满足乘坐,虽然五座刚好适合,但父母怎么如何在Mac上隐藏红色通知标记你有没有被Mac上应用程序图标上的红色通知标记(通常表示您有未读消息或电子邮件)所困扰呢?其实您可以轻松关闭它们。下面,小编向您展示如何在Mac上快速隐藏红色通知标记。您可以通过单
一加9RT和小米11之间,买哪款性价比更高?根据买新不买旧的原则,小芳个人是更加倾向于一加9RT这款手机会更多一些的。不过大家在实际购买手机的过程当中还是要将自身的需求以及两款手机的各自优缺点相结合,才能够做出最合理的选择。realmex7pro和OPPOReno5k相比较,该如何选择?如果非要在这两款手机中选择一款手机进行购买,小芳个人是会更加倾向于realmex7pro这款手机会更多一些的。不过大家在购买手机的过程当中还是要将自身的需求以及两款手机的对比优点相苏宁双十一母婴悟空榜爱他美诺优能跌出前三,澳贝逆袭夺冠一年一度的维密大秀刚刚落幕,11月10日,苏宁红孩子X新丝路少儿型秀大赛晋级赛,即将于北京上海南京等7座城市拉开序幕。与此同时,母婴市场也将迎来双十一的最后冲刺,家长们都在加足马力双十一苏宁电视悟空榜小米力挫创维雷布斯没有注意线下吗?要提到双十一,相信大家都不会陌生。每年临近双十一,各大厂商品牌的促销是一波跟着一波,表面上大家是一团和气,其实私下都铆足了劲,从苏宁双十一期间的悟空榜单排名就能看出来。在这场没有硝苏宁双十一母婴悟空榜美赞臣登顶?惠氏美素佳儿表示不服!今天,正式进入了苏宁全民嘉年华的第三天。经过前两天的激烈竞争,悟空榜母婴自营品牌榜单慢慢趋于稳定,最受消费者青睐的品牌似乎已经初见端倪,但是也不排除有些榜单出现黑马逆袭的情况。奶粉假日海滩一道美的风景线一道美丽的风景文黄晓峰记住今日匆忙的邂逅美丽闪耀了游客的眼这时光蓝天散发的幽光悄悄地唤醒我在这浅夏两旁的繁花含蓄的低着头偏偏偶遇你的身旁你的芬芳堪比海边那花香暖阳浅夏海滩近观的海鸟神奇了太灵了!人挪活树挪死,灵验的个人风水人挪活树挪死,不得不佩服古人的真言,人在一个一漂死水中呆久了,要学会注入活水,让新水源注入,也就是换个环境,你象个笼中的鸟重返森林,全身心都舒畅,我辞职下海来深圳后,生活居然是我自惨不忍睹,老乡炒股巨亏老婆走了,结局更不敢想股市巨亏老乡老婆走了,首付后的房也打水漂了。股市有风险,炒股需谨慎,不是余钱靠借的钱或硬性急着用的钱最好不要进入股市,否则鳄鱼进去,壁虎出来蟒蛇进去,蚯蚓出来老虎进去,小猫出来老板张国立的累与小区捡荒阿姨的累之本质区别张国立的累与小区捡荒阿姨的累的本质区别之所思。今年的娱乐圈可谓是一波未平一波又起,不少明星艺人的大瓜被一一爆了出来,这些明星艺人还因为被爆料的这些大瓜断送了事业方面的发展。最引人注不止高颜值,这些手机还有震撼摄影表现高颜值手机是人们一直以来的追求,而全面屏手机恰恰就是潮流风向标。正面几乎全是屏幕,深邃的视觉观感体验无比精彩,精湛的外观设计带来艺术的享受。vivoNEX这款全面屏手机,就凭借升降华为nova3系列亮相苏宁818超燃星城引追捧8月17日,苏宁超燃星城在上海火热开城。上海受过境台风天气影响,天空一直飘着蒙蒙细雨。天气不好却丝毫没影响上海人民探秘星城的热情。超燃星城开城之后便立刻游人如织,即使五角场的广场出