??xml version="1.0" encoding="utf-8" standalone="yes"?>
市场前景qK
中国l计局数据昄,截至2018q_我国0-14岁的儿童数量已经辑ֈ2.5亿h?018 q儿童消费市模突?.5 万亿Qƈ以每q?0%的速度增长,其中儿童׃消费市场的规模突?600亿元?/p>
当前Q?0?0后成Z安体中的d军时。他们有较好的经基已经Ҏ费升U的q求Q这使得育儿支出水涨舚w?nbsp;目前我国14岁以下的儿童数量较大Q儿童消费已占到家庭L出的3 0 %左右Q其中玩P童装又占据着较高的比例?/p>
Ҏ行业研发报告昄Q我国儿童消费规模已l接q?.5万亿元,其中儿童׃消费市场的规模突?600亿元?/p>
中共中央政治局5?1日召开会议Q会议指出,q一步优化生育政{,实施一对夫d以生育三个子x{及配套支持措施。我国正处于人口大国向h力资本强国{变的重大战略机遇期,立国情Q?#8220;三孩”政策能够最大限度发挥h口对l济C会发展的能动作用?/p>
?a target="_blank" style="outline: none; color: #ff0000; text-decoration-line: none; font-weight: bold;">二胎政策以来Q在人口增长以及产业提升斚wQ开始有显著的效果的。二孩政{的开放,促ɞ儿人口数量的逐渐增加Q也会ؓ一些儿童业经带来相当可观的市场。更别说三孩政策的开放,更会l儿童经市场带来一个巨大的飞跃?/p>
新风?/p>
嗨心兔共享童车智能柜Q作为新型共享经的新模式,新风口,大大增加了儿童R的用选择、节U了购买成本Q还大便利了安带娃Q更可以增加孩子公^意识Q提升社交乐,同时也解军_多用L痛点Q?/p>
市场和痛?
儿童电动车是孩子最不可~失的用品之一Q也是孩子成长过E中最重要?#8220;玩伴”。但是买一台放在家里是非常占地方的Q现在的gh那么高,一台童车占据的面积差不多一个^方了。按照一二线城市的楼h计算Q家里买一台童车的场地“U金”是相当高的。孩?#8220;喜新厌旧”,玩具车很快就?#8220;失宠”。买q儿童电动R的家镉K会反馈,安买回来的儿童电动车,只玩了两ơ就不完了, 然后放在那里了。然后想玩第三的时候,发现因ؓ甉|长期没有充电的, 甉|报废了Q已l不能再玩了。现在的安对品的品质要求都比较高Q小孩子也是安的宝贝,l小孩子买的电动儿童车,而且要买一台质量比较好的电动儿童RQh׃不低的。现在家庭都是居住在区内,对于宝妈来说Q儿童电动R搬上搬下也是个特别麻烦的事情?/p>
产品优势和特点:
q东品墨U技U技有限自主研发生的一ƾ智能共享童车,通过物联|和微信+支付宝小E序实行操作Q可实现无h值守、智能消毒、自动计贏V自动扣费完解决了q些问题Q项目具备下面几点优势:
优势一:无h值守免h?/p>
传统童R玩乐需要,人工监管Qh工收费,场地大了q得多个人看守,而嗨心兔讑֤无需专h值守,自动计费,自动扣费,一个h可管理几十个炏V由于传l童车是都是采用定时断电的方式进行计费,q样限制了儿童消费的冲动Q媄响营业收入?/p>
优势二:占地租金少
传统童R玩乐有多R需要多大的I地存放, 而嗨心兔׃n童R柜的方式存放Q立体空?一套设备占地还不到1q米。一套设备可以存?个童车,极大节省了存攄I间?/p>
优势三:qR自动充电
传统童R玩乐专h负责充电,每天随时随地得记着Q而嗨心兔采用自助充电Q还车和充电一气呵成。不会因为忘C充电Q然后媄响了日常的运营?/p>
优势四:防水防盗防嗮
传统童R玩乐不防雨不防盗Q要是在户外q得专门找个安全的地方存放,而嗨心兔不但防水Q而且防晒Q还有设计了安全警报功能,防偷防盗Q智能科技呉|你的“摇钱?#8221;。让你轻杄赚取睡后的收入?/p>
优势五:ȝU卫生保?/p>
传统童R玩乐轮流使用,基本没有消毒,交叉感染可能性大,而嗨心兔采用ȝU消毒灯,—车一消毒,一ơ一消毒,为儿童健h供强大保障?/p>
优势六:车型多正版授?/p>
传统童R玩乐只能坐着到处逛, 体验感一般,而嗨心兔全是正版授权的超拉风车辆Q包括但是不限于Q兰博基|法拉利,保时P宑ֈQ劳斯莱斯这些,朋友自驾体验自己操控的乐趣Q家镉K控着都感觉有面子?/p>
关键是选址
公园
公园人流多,而且地方宽敞Q也是家里留守老h带孩子爱ȝ地方。所以对于嗨心兔׃n童R来说Q公园也是投攑֜地的重点推荐之一?/p>
商场
商场在共享童车行业中毫无疑问是个优质的投攑֜地。商Zh大Q儿童业态在购物中心的一般占比达?9%或以上,是家庭休闲娱乐的好地斏V?/p>
区
在住房压力普遍的现在Q特别是在城市,城镇生活的打工hQ尺土寸金,很多家庭室内几乎没有孩子骑上童R玩乐的空间。出行的话,又很难放在后备箱中携带,搬来搬去也很是不方便。因此小Z为家庭日常生zȝ场所Q在q里投放׃n童R是好地方
q场
q场Q是孩游玩的集中地。广场地域宽阔、无车流Q备受群众喜爱,特别是夜晚时有许多父母会带孩子一h步,人流量越大,生意的机会就多,q也是嗨心兔׃n童R投放区域的一大好选择?/p>
合作伙伴Q?/p>
选择合作伙伴Q如同选择伴G般重要?首先Qh格和成本相对来说Q越低越好,q样你就可以快偿还成本。第二,要考虑讑֤的稳定性。要选址产品比较E_的公司?/p>
最l要是源头厂家合作,要认真调研他们是不是招商公司Q假如是招商公司的话Q他们只是赚一W就CQ真正能l提供服务的源头q是厂家Q但是你{v合同的是招商公司的话Q中间有服务的话Q必然也隔了一层,效率必然低下。假如是源头厂家的话Q至如果遇到问题,可以W一旉扑ֈ设计制作q个产品的h。他比Q何h都清楚哪里容易出现问题,以及如何解决问题。万一找个不专业的公司合作Q特别是贴牌的招商公司,售后问题pl过几层才能解决。不然到时候,你遇到问题一定是疯了?/p>
而广东品墨科技有限公司,是一家以物联|?大数?人工技术ؓ依托的技术和q营推广公司Q技术团队由来自汇丰,中国电信,华ؓ,q点通等尖企业的资q发和营销q营团队l成Q同Ӟ公司q是腾讯q告的授权的q告服务商,对全国各地的加盟商的q告支持是十分到位的?/p>
q东品墨U技有限公司,是一家专注于专注于智能设备的研发、生产、推q于一体的企业,我公司自ȝ发和生成׃n童R的控制主?软gpȝQ运营后台。旗下的嗨心兔品牌专注于儿童业态的无h怹讑֤领域Q通过整合讑֤和物联网Q大数据分析技术,自主研发和设计国内更适应市场需求、更受小朋友喜爱的共享童车智能柜?/p>
全国招商加盟热线:400-6151-556
׃n童R源头厂家Q品质保证,支持各种物联|系lOEM定制开?/p>
wireshark安装
#yum install wireshark wireshark-gnome
wireshark使用
#wireshark
2.tcpdump
tcpdump采用命o行方式,它的命o格式为:
tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文g?]
[ -i |络接口 ] [ -r 文g名] [ -s snaplen ]
[ -T cd ] [ -w 文g?] [表达?]
http://anheng.com.cn/news/24/586.html
(1). tcpdump的选项介绍
http://anheng.com.cn/news/24/586.html
-a 网l地址和广播地址转变成名字;
-d 匹配信息包的代码以Z能够理解的汇~格式给出;
-dd 匹配信息包的代码以c语言E序D늚格式l出Q?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> -ddd 匹配信息包的代码以十进制的形式l出Q?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> -e 在输打印出数据链路层的头部信息;
-f 外部的Internet地址以数字的形式打印出来Q?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> -l 使标准输出变为缓冲行形式Q?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> -n 不把|络地址转换成名字;
-t 在输出的每一行不打印旉戻I
-v 输出一个稍微详l的信息Q例如在ip包中可以包括ttl和服务类型的信息Q?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> -vv 输出详细的报文信息;
-c 在收到指定的包的数目后,tcpdump׃停止Q?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> -F 从指定的文g中读取表辑ּ,忽略其它的表辑ּQ?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> -i 指定监听的网l接口;
-r 从指定的文g中读取包(q些包一般通过-w选项产生)Q?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> -w 直接包写入文g中,q不分析和打印出来;
-T 监听到的包直接解释为指定的cd的报文,常见的类型有rpc Q远E过E调用)和snmpQ简单网l管理协议;Q?/p>
Ethereal和Sniffit两个|络分析工具
PSQ?a style="border-bottom: rgb(0,102,0) 1px dashed; padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,102,0); text-decoration: none; padding-top: 0px" title="tcpdump" >tcpdump是一个用于截取网l分l,q输出分l内容的工具Q简单说是数据包抓包工兗tcpdump凭借强大的功能和灵zȝ截取{略Q其成?a style="border-bottom: rgb(0,102,0) 1px dashed; padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,102,0); text-decoration: none; padding-top: 0px" title="Linux" >Linuxpȝ下用于网l分析和问题排查的首选工兗?/strong>
tcpdump提供了源代码Q公开了接口,因此具备很强的可扩展性,对于|络l护和入侵者都是非常有用的工具。tcpdump存在于基本的Linuxpȝ中,׃它需要将|络界面讄为杂模式,普通用户不能正常执行,但具?a style="border-bottom: rgb(0,102,0) 1px dashed; padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,102,0); text-decoration: none; padding-top: 0px" title="root" >root权限的用户可以直接执行它来获取网l上的信息。因此系l中存在|络分析工具主要不是Ҏ机安全的威胁Q而是对网l上的其他计机的安全存在威胁?/p>
一、概q?/strong> 不带参数的tcpdump会收集网l中所有的信息包头Q数据量巨大Q必过滤?/p>
二、选项介绍
-A 以ASCII格式打印出所有分l,q将链\层的头最化?/p>
-c 在收到指定的数量的分l后Qtcpdump׃停止?/p>
-C 在将一个原始分l写入文件之前,查文件当前的大小是否过了参数file_size 中指定的大小。如果超q了指定大小Q则关闭当前文gQ然后在打开一个新的文件。参?file_size 的单位是兆字节(?,000,000字节Q而不?,048,576字节Q?/p>
-d 匹配信息包的代码以Z能够理解的汇~格式给出?/p>
-dd 匹配信息包的代码以c语言E序D늚格式l出?/p>
-ddd 匹配信息包的代码以十进制的形式l出?/p>
-D 打印出系l中所有可以用tcpdump截包的网l接口?/p>
-e 在输打印出数据链路层的头部信息?/p>
-E 用spi@ipaddr algo:secret解密那些以addr作ؓ地址Qƈ且包含了安全参数索引值spi?a style="border-bottom: rgb(0,102,0) 1px dashed; padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,102,0); text-decoration: none; padding-top: 0px" title="IPsec" >IPsec ESP分组?/p>
-f 外部的Internet地址以数字的形式打印出来?/p>
-F 从指定的文g中读取表辑ּQ忽略命令行中给出的表达式?/p>
-i 指定监听的网l接口?/p>
-l 使标准输出变为缓冲行形式Q可以把数据导出到文件?/p>
-L 列出|络接口的已知数据链路?/p>
-m 从文件module中导入SMI MIB模块定义。该参数可以被用多ơ,以导入多个MIB模块?/p>
-M 如果tcp报文中存在TCP-MD5选项Q则需要用secret作ؓ׃n的验证码用于验证TCP-MD5选选项摘要Q详情可参考RFC 2385Q?/p>
-b 在数?链\层上选择协议Q包括ip、arp、rarp、ipx都是q一层的?/p>
-n 不把|络地址转换成名字?/p>
-nn 不进行端口名U的转换?/p>
-N 不输Z机名中的域名部分。例如,‘nic.ddn.mil‘只输?#8217;nic‘?/p>
-t 在输出的每一行不打印旉戟?/p>
-O 不运行分l分l匹配(packet-matchingQ代码优化程序?/p>
-P 不将|络接口讄成杂模式?/p>
-q 快速输出。只输出较少的协议信息?/p>
-r 从指定的文g中读取包(q些包一般通过-w选项产生)?/p>
-S tcp的序列号以绝对值Ş式输出,而不是相对倹{?/p>
-s 从每个分l中d最开始的snaplen个字节,而不是默认的68个字节?/p>
-T 监听到的包直接解释为指定的cd的报文,常见的类型有rpcq程q程调用Q和snmpQ简单网l管理协议;Q?/p>
-t 不在每一行中输出旉戟?/p>
-tt 在每一行中输出非格式化的时间戳?/p>
-ttt 输出本行和前面一行之间的旉差?/p>
-tttt 在每一行中输出由date处理的默认格式的旉戟?/p>
-u 输出未解码的NFS句柄?/p>
-v 输出一个稍微详l的信息Q例如在ip包中可以包括ttl和服务类型的信息?/p>
-vv 输出详细的报文信息?/p>
-w 直接分l写入文件中Q而不是不分析q打印出来?/p> 三、tcpdump的表辑ּ介绍 表达式是一个正则表辑ּQtcpdump利用它作滤报文的条gQ如果一个报文满 辑ּ的条Ӟ则这个报文将会被捕获。如果没有给ZQ何条Ӟ则网l上所有的信息?会被截莗?/p>
在表辑ּ中一般如下几U类型的关键字: W一U?/strong>是关于类型的关键字,主要包括hostQnetQportQ例?host 210.27.48.2Q?指明 210.27.48.2是一C机,net 202.0.0.0指明202.0.0.0是一个网l地址Qport 23 指明端口h23。如果没有指定类型,~省的类型是host?/p>
W二U?/strong>是确定传输方向的关键字,主要包括srcQdstQdst or srcQdst and srcQ?q些关键字指明了传输的方向。D例说明,src 210.27.48.2 Q指明ip包中源地址?210.27.48.2 Q?dst net 202.0.0.0 指明目的|络地址?02.0.0.0。如果没有指?方向关键字,则缺省是src or dst关键字?/p>
W三U?/strong>是协议的关键字,主要包括fddiQipQarpQrarpQtcpQudp{类型。Fddi指明是在FDDI (分布式光U数据接口网l?上的特定的网l协议,实际上它?#8221;ether”的别名,fddi和ether hcM的源地址和目的地址Q所以可以将fddi协议包当作ether的包q行处理和分析?其他的几个关键字是指明了监听的包的协议内容。如果没有指定Q何协议,则tcpdump 会 监听所有协议的信息包?/p>
除了q三U类型的关键字之外,其他重要的关键字如下QgatewayQ?broadcastQlessQ?greaterQ?q有三种逻辑q算Q取非运是 ‘not ‘ ‘! ‘Q?与运是’and’Q?#8217;&&’;或运是’or’ Q?#8217;||’Q?q些关键字可以组合v来构成强大的l合条g来满h们的需要?/p>
四、输出结果介l?/strong> 下面我们介绍几种典型的tcpdump命o的输Z?/p>
(1) 数据链\层头信息 21Q?0Q?2是显C的旉Q?847509是IDPeth0 <表示从网l接口eth0接收该分l, eth0 >表示从网l接口设备发送分l, 8:0:20:79:5b:46是主机H219的MAC地址Q?它表明是从源地址H219发来的分l? 0:90:27:58:af:1a是主机ICE的MAC地址Q?表示该分l的目的地址是ICE?ip 是表明该分组是IP分组Q?0 是分l的长度Q?h219.33357 > ICE. telnet 表明该分l是从主机H219?3357端口发往LICE?TELNET(23)端口?ack 22535 表明对序列号?22535的包q行响应?win 8760表明?送窗口的大小?760?/p>
(2) ARP包的tcpdump输出信息 使用命oQ?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> 得到的输出结果是Q?/p>
22:32:42是时间戳Q?802509是IDP eth0 >表明从主机发分组Qarp表明是ARPh包, who-has route tell ICE表明是主机ICEhLroute的MAC地址?0:90:27:58:af:1a是主?ICE的MAC地址?/p>
(3) TCP包的输出信息 用tcpdump捕获的TCP包的一般输Z息是Q?/p>
src > dst:表明从源地址到目的地址Q?flags是TCP报文中的标志信息QS 是SYN标志Q?F (FIN)Q?P (PUSH) Q?R (RST) “.” (没有标记); data-seqno是报文中的数?的顺序号Q?ack是下ơ期望的序P window是接收缓存的H口大小Q?urgent表明 报文中是否有紧急指针?Options是选项?/p>
(4) UDP包的输出信息 用tcpdump捕获的UDP包的一般输Z息是Q?/p>
UDP十分单,上面的输表明从主机route的port1端口发出的一个UDP报文 C机ICE的port2端口Q类型是UDPQ?包的长度是lenth?/p>
五、D?/strong> (1) 惌截获所?10.27.48.1 的主机收到的和发出的所有的分组Q?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> (2) 惌截获L210.27.48.1 和主?10.27.48.2?10.27.48.3的通信Q用命令(注意Q括号前的反斜杠是必ȝQ: (3) 如果惌获取L210.27.48.1除了和主?10.27.48.2之外所有主机通信的ip包,使用命oQ?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> (4) 如果惌获取L192.168.228.246接收或发出的ssh包,q且不{换主机名使用如下命oQ?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /> (5) 获取L192.168.228.246接收或发出的ssh包,q把mac地址也一同显C: (6) qo的是源主Zؓ192.168.0.1与目的网lؓ192.168.0.0的报_ (7) qo源主机物理地址为XXX的报_ (8) qo源主?92.168.0.1和目的端口不是telnet的报_q导入到tes.t.txt文g中: ip icmp arp rarp ?tcp、udp、icmpq些选项{都要放到第一个参数的位置Q用来过滤数据报的类型?/strong> 例题Q如何用tcpdump监听来自eth0适配卡且通信协议为port 22Q目标来源ؓ192.168.1.100的数据包资料Q?/strong> {:tcpdump -i eth0 -nn port 22 and src host 192.168.1.100 例题Q如何用tcpdump抓取讉Keth0适配卡且讉K端口为tcp 9080Q?/strong> {?tcpdump -i eth0 dst 172.168.70.35 and tcp port 9080 例题Q如何用tcpdump抓取与主?92.168.43.23或着与主?92.168.43.24通信报文Qƈ且显C在控制C tcpdump -X -s 1024 -i eth0 host (192.168.43.23 or 192.168.43.24) and host 172.16.70.35
思义Qtcpdump可以网l中传送的数据包的“?#8221;完全截获下来提供分析。它支持针对|络层、协议、主机、网l或端口的过滤,q提供and、or、not{逻辑语句来帮助你L无用的信息?/p>
# tcpdump -vv
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:53:21.444591 IP (tos 0x10, ttl 64, id 19324, offset 0, flags [DF], proto 6, length: 92) asptest.localdomain.ssh > 192.168.228.244.1858: P 3962132600:3962132652(52) ack 2726525936 win 1266
asptest.localdomain.1077 > 192.168.228.153.domain: [bad udp cksum 166e!] 325+ PTR? 244.228.168.192.in-addr.arpa. (46)
11:53:21.446929 IP (tos 0x0, ttl 64, id 42911, offset 0, flags [DF], proto 17, length: 151) 192.168.228.153.domain > asptest.localdomain.1077: 325 NXDomain q: PTR? 244.228.168.192.in-addr.arpa. 0/1/0 ns: 168.192.in-addr.arpa. (123)
11:53:21.447408 IP (tos 0x10, ttl 64, id 19328, offset 0, flags [DF], proto 6, length: 172) asptest.localdomain.ssh > 192.168.228.244.1858: P 168:300(132) ack 1 win 1266
347 packets captured
1474 packets received by filter
745 packets dropped by kernel
使用命oQ?br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />#tcpdump --e host ICE
ICE 是一台装有linux的主机。它的MAC地址?Q?0Q?7Q?8QAFQ?A H219是一台装?a style="border-bottom: rgb(0,102,0) 1px dashed; padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,102,0); text-decoration: none; padding-top: 0px" title="Solaris" >Solaris的SUN工作站。它的MAC地址?Q?Q?0Q?9Q?BQ?6Q?上一条命令的输出l果如下所C:21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ICE. telne t 0:0(0) ack 22535 win 8760 (DF)
#tcpdump arp
22:32:42.802509 eth0 > arp who-has route tell ICE (0:90:27:58:af:1a)
22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af:1a)src > dst: flags data-seqno ack window urgent options
route.port1 > ICE.port2: udp lenth
#tcpdump host 210.27.48.1
#tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3 )
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
#tcpdump -nn -n src host 192.168.228.246 and port 22 and tcp
# tcpdump -e src host 192.168.228.246 and port 22 and tcp -n -nn
tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24
tcpdump ether src 00:50:04:BA:9B and dst……
Qؓ什么ether src后面没有host或者netQ物理地址当然不可能有|络喽)?/p>
Tcpdump src host 192.168.0.1 and dst port not telnet -l > test.txt
1. 基本使用
$iostat -d -k 1 10
参数 -d 表示Q显C备(盘Q用状态;-k某些使用block为单位的列强制用Kilobytes为单位;1 10表示Q数据显C每?U刷Cơ,共显C?0ơ?span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; padding-top: 0px" id="more-1228">
$iostat -d -k 1 10 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 39.29 21.14 1.44 441339807 29990031 sda1 0.00 0.00 0.00 1623 523 sda2 1.32 1.43 4.54 29834273 94827104 sda3 6.30 0.85 24.95 17816289 520725244 sda5 0.85 0.46 3.40 9543503 70970116 sda6 0.00 0.00 0.00 550 236 sda7 0.00 0.00 0.00 406 0 sda8 0.00 0.00 0.00 406 0 sda9 0.00 0.00 0.00 406 0 sda10 60.68 18.35 71.43 383002263 1490928140 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 327.55 5159.18 102.04 5056 100 sda1 0.00 0.00 0.00 0 0
tpsQ该讑֤每秒的传输次敎ͼIndicate the number of transfers per second that were issued to the device.Q?#8220;一ơ传?#8221;意思是“一ơI/Oh”。多个逻辑h可能会被合ƈ?#8220;一ơI/Oh”?#8220;一ơ传?#8221;h的大是未知的?/p>
kB_read/sQ每U从讑֤Qdrive expressedQ读取的数据量;kB_wrtn/sQ每U向讑֤Qdrive expressedQ写入的数据量;kB_readQ读取的L据量Q?font style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; padding-top: 0px" color="blue">kB_wrtnQ写入的L量数据量Q这些单位都为Kilobytes?/p>
上面的例子中Q我们可以看到磁盘sda以及它的各个分区的统计数据,当时l计的磁盘总TPS?9.29Q下面是各个分区的TPS。(因ؓ是瞬间|所以总TPSq不严格{于各个分区TPS的dQ?/p>
2. -x 参数
使用-x参数我们可以获得更多l计信息?/p>
iostat -d -x -k 1 10 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 1.56 28.31 7.80 31.49 42.51 2.92 21.26 1.46 1.16 0.03 0.79 2.62 10.28 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 2.00 20.00 381.00 7.00 12320.00 216.00 6160.00 108.00 32.31 1.75 4.50 2.17 84.20
rrqm/sQ每U这个设备相关的dh有多被Merge了(当系l调用需要读取数据的时候,VFS请求发到各个FSQ如果FS发现不同的读取请求读取的是相同Block的数据,FS会将q个h合ƈMergeQ;wrqm/sQ每U这个设备相关的写入h有多被Merge了?/p>
rsec/sQ每U读取的扇区敎ͼwsec/Q每U写入的扇区数?font style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; padding-top: 0px" color="blue">r/sQThe number of read requests that were issued to the device per secondQ?font style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Arial, Helvetica, sans-serif; padding-top: 0px" color="blue">w/sQThe number of write requests that were issued to the device per secondQ?/p>
awaitQ每一个IOh的处理的q_旉Q单位是微秒毫秒Q。这里可以理解ؓIO的响应时_一般地pȝIO响应旉应该低于5msQ如果大?0ms比较大了?/p>
%utilQ在l计旉内所有处理IO旉Q除以dl计旉。例如,如果l计间隔1U,该设备有0.8U在处理IOQ?.2U闲|,那么该设备的%util = 0.8/1 = 80%Q所以该参数暗示了设备的J忙E度。一般地Q如果该参数?00%表示讑֤已经接近满负药行了Q当然如果是多磁盘,即%util?00%Q因为磁盘的q发能力Q所以磁盘用未必就C瓉Q?/p>
3. -c 参数
iostatq可以用来获取cpu部分状态|
iostat -c 1 10 avg-cpu: %user %nice %sys %iowait %idle 1.98 0.00 0.35 11.45 86.22 avg-cpu: %user %nice %sys %iowait %idle 1.62 0.00 0.25 34.46 63.67
4. 常见用法
$iostat -d -k 1 10 #查看TPS和吞吐量信息 iostat -d -x -k 1 10 #查看讑֤使用率(%utilQ、响应时_awaitQ? iostat -c 1 10 #查看cpu状?
5. 实例分析
$$iostat -d -k 1 |grep sda10 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda10 60.72 18.95 71.53 395637647 1493241908 sda10 299.02 4266.67 129.41 4352 132 sda10 483.84 4589.90 4117.17 4544 4076 sda10 218.00 3360.00 100.00 3360 100 sda10 546.00 8784.00 124.00 8784 124 sda10 827.00 13232.00 136.00 13232 136
上面看到Q磁盘每U传输次数^均约400Q每U磁盘读取约5MBQ写入约1MB?/p>
iostat -d -x -k 1 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 1.56 28.31 7.84 31.50 43.65 3.16 21.82 1.58 1.19 0.03 0.80 2.61 10.29 sda 1.98 24.75 419.80 6.93 13465.35 253.47 6732.67 126.73 32.15 2.00 4.70 2.00 85.25 sda 3.06 41.84 444.90 54.08 14204.08 2048.98 7102.04 1024.49 32.57 2.10 4.21 1.85 92.24
可以看到盘的^均响应时?lt;5msQ磁盘用率>80。磁盘响应正常,但是已经很繁忙了?/p>
参考文献:
一般对负蝲均衡的用是随着|站规模的提升根据不同的阶段来用不同的技术。具体的应用需求还得具体分析,如果是中型的Web应用Q比如日PV于1000万,用Nginx完全可以了Q如果机器不,可以用DNS轮询QLVS所耗费的机器还是比较多的;大型|站或重要的服务Q且服务器比较多Ӟ可以考虑用LVS?/p>
ADQ?/p>
PSQ?a style="color: rgb(0,66,118); text-decoration: underline" title="Nginx" >Nginx/LVS/HAProxy是目前用最q泛的三U负载均衡YӞ本h都在多个目中实施过Q参考了一些资料,l合自己的一些用经验,ȝ一下?/strong>
一般对负蝲均衡的用是随着|站规模的提升根据不同的阶段来用不同的技术。具体的应用需求还得具体分析,如果是中型的Web应用Q比如日PV于1000万,用Nginx完全可以了Q如果机器不,可以用DNS轮询QLVS所耗费的机器还是比较多的;大型|站或重要的服务Q且服务器比较多Ӟ可以考虑用LVS?/p>
一U是通过g来进行进行,常见的硬件有比较昂贵的F5和Array{商用的负蝲均衡器,它的优点是有专业的l护团队来对q些服务q行l护、缺点就是花销太大Q所以对于规模较的|络服务来说暂时q没有需要用;另外一U就是类gNginx/LVS/HAProxy的基?a style="color: rgb(0,66,118); text-decoration: underline" title="Linux" >Linux的开源免费的负蝲均衡软gQ这些都是通过软gU别来实玎ͼ所以费用非怽廉?/p>
目前关于|站架构一般比较合理流行的架构ҎQWeb前端采用Nginx/HAProxy+Keepalived作负载均衡器Q后端采?span style="color: rgb(255,0,0)">MySQL数据库一d从和d分离Q采用LVS+Keepalived的架构。当然要Ҏ目具体需求制定方案?/p>
下面说说各自的特点和适用场合?/p>
Nginx的优ҎQ?/strong>
1、工作在|络?层之上,可以针对http应用做一些分的{略Q比如针对域名、目录结构,它的正则规则比HAProxy更ؓ强大和灵z,q也是它目前q泛行的主要原因之一QNginx单凭q点可利用的场合p多于LVS了?/p>
2、Nginx对网l稳定性的依赖非常,理论上能ping通就pq行负蝲功能Q这个也是它的优势之一Q相反LVS对网l稳定性依赖比较大Q这Ҏ人深有体会;
3、Nginx安装和配|比较简单,试h比较方便Q它基本能把错误用日志打印出来。LVS的配|、测试就要花比较长的旉了,LVS对网l依赖比较大?/p>
3、可以承担高负蝲压力且稳定,在硬件不差的情况下一般能支撑几万ơ的q发量,负蝲度比LVS相对些?/p>
4、Nginx可以通过端口到服务器内部的故障Q比如根据服务器处理|页q回的状态码、超时等{,q且会把q回错误的请求重新提交到另一个节点,不过其中~点是不支持url来检。比如用h在上传一个文Ӟ而处理该上传的节点刚好在上传q程中出现故障,Nginx会把上传切到另一台服务器重新处理Q而LVSq接断掉了Q如果是上传一个很大的文g或者很重要的文件的话,用户可能会因此而不满?/p>
5、Nginx不仅仅是一ƾ优U的负载均衡器/反向代理软gQ它同时也是功能强大的Web应用服务器。LNMP也是q几q非常流行的web架构Q在高流量的环境中稳定性也很好?/p>
6、Nginx现在作ؓWeb反向加速缓存越来越成熟了,速度比传l的Squid服务器更快,可以考虑用其作ؓ反向代理加速器?/p>
7、Nginx可作Z层反向代理用,q一层面Nginx基本上无ҎQ唯一可以ҎNginx的就只有lighttpd了,不过lighttpd目前q没有做到Nginx完全的功能,配置也不那么清晰易读Q社料也q远没Nginxz跃?/p>
8、Nginx也可作ؓ静态网和囄服务器,q方面的性能也无Ҏ。还有NginxC非常z跃Q第三方模块也很多?/p>
Nginx的缺ҎQ?/strong>
1、Nginx仅能支持http、https和Email协议Q这样就在适用范围上面些Q这个是它的~点?/p>
2、对后端服务器的健康查,只支持通过端口来检,不支持通过url来检。不支持Session的直接保持,但能通过ip_hash来解冟?/p>
LVSQ用Linux内核集群实现一个高性能、高可用的负载均衡服务器Q它h很好的可伸羃性(Scalability)、可靠性(Reliability)和可理性(Manageability)?/p>
LVS的优ҎQ?/strong>
1、抗负蝲能力强、是工作在网l?层之上仅作分发之用,没有量的生,q个特点也决定了它在负蝲均衡软g里的性能最强的Q对内存和cpu资源消耗比较低?/p>
2、配|性比较低Q这是一个缺点也是一个优点,因ؓ没有可太多配|的东西Q所以ƈ不需要太多接触,大大减少了h为出错的几率?/p>
3、工作稳定,因ؓ其本w抗负蝲能力很强Q自w有完整的双机热备方案,如LVS+KeepalivedQ不q我们在目实施中用得最多的q是LVS/DR+Keepalived?/p>
4、无量QLVS只分发请求,而流量ƈ不从它本w出去,q点保证了均衡器IO的性能不会收到大流量的影响?/p>
5、应用范围比较广Q因为LVS工作?层,所以它几乎可以Ҏ有应用做负蝲均衡Q包括http、数据库、在U聊天室{等?/p>
LVS的缺ҎQ?/strong>
1、Y件本w不支持正则表达式处理,不能做动静分;而现在许多网站在q方面都有较强的需求,q个是Nginx/HAProxy+Keepalived的优势所在?/p>
2、如果是|站应用比较庞大的话QLVS/DR+Keepalived实施h比较复杂了Q特别后面有Windows Server的机器的话,如果实施及配|还有维护过E就比较复杂了,相对而言QNginx/HAProxy+Keepalivedq单多了?/p>
HAProxy的特ҎQ?/strong>
1、HAProxy也是支持虚拟L的?/p>
2、HAProxy的优点能够补充Nginx的一些缺点,比如支持Session的保持,Cookie的引|同时支持通过获取指定的url来检后端服务器的状态?/p>
3、HAProxy跟LVScMQ本w就只是一ƾ负载均衡YӞ单纯从效率上来讲HAProxy会比Nginx有更的负载均衡速度Q在q发处理上也是优于Nginx的?/p>
4、HAProxy支持TCP协议的负载均衡{发,可以对MySQL读进行负载均衡,对后端的MySQL节点q行和负蝲均衡Q大家可以用LVS+Keepalived对MySQLM做负载均衡?/p>
5、HAProxy负蝲均衡{略非常多,HAProxy的负载均衡算法现在具体有如下8U:
① roundrobinQ表C简单的轮询Q这个不多说Q这个是负蝲均衡基本都具备的Q?/p>
② static-rrQ表C根据权重,xQ?/p>
③ leastconnQ表C最连接者先处理Q徏议关注;
④ sourceQ表C根据请求源IPQ这个跟Nginx的IP_hash机制cMQ我们用其作决session问题的一U方法,xQ?/p>
⑤ riQ表C根据请求的URIQ?/p>
⑥ rl_paramQ表C根据请求的URl参数’balance url_param’ requires an URL parameter nameQ?/p>
⑦ hdr(name)Q表C根据HTTPh头来锁定每一ơHTTPhQ?/p>
⑧ rdp-cookie(name)Q表C根据据cookie(name)来锁定ƈ哈希每一ơTCPh?/p>
Nginx和LVSҎ的ȝQ?/strong>
1、Nginx工作在网l的7层,所以它可以针对http应用本n来做分流{略Q比如针对域名、目录结构等Q相比之下LVSq不具备q样的功能,所以Nginx单凭q点可利用的场合p多于LVS了;但Nginx有用的这些功能其可调整度要高于LVSQ所以经常要去触触ͼ触碰多了Qh为出问题的几率也׃大?/p>
2、Nginx对网l稳定性的依赖较小Q理Z只要ping得通,|页讉K正常QNginxpq得通,q是Nginx的一大优势!Nginx同时q能区分内外|,如果是同时拥有内外网的节点,q当于单机拥有了备份线路;LVS比较依赖于|络环境Q目前来看服务器在同一|段内ƈ且LVS使用direct方式分流Q效果较能得C证。另外注意,LVS需要向托管商至申请多一个ip来做Visual IPQ貌似是不能用本w的IP来做VIP的。要做好LVS理员,实得跟q学习很多有关网l通信斚w的知识,׃再是一个HTTP那么单了?/p>
3、Nginx安装和配|比较简单,试h也很方便Q因为它基本能把错误用日志打印出来。LVS的安装和配置、测试就要花比较长的旉了;LVS对网l依赖比较大Q很多时候不能配|成功都是因为网l问题而不是配|问题,Z问题要解决也相应的会ȝ得多?/p>
4、Nginx也同栯承受很高负蝲且稳定,但负载度和稳定度差LVSq有几个{QNginx处理所有流量所以受限于机器IO和配|;本n的bug也还是难以避免的?/p>
5、Nginx可以到服务器内部的故障Q比如根据服务器处理|页q回的状态码、超时等{,q且会把q回错误的请求重新提交到另一个节炏V目前LVS?ldirectd也能支持针对服务器内部的情况来监控,但LVS的原理其不能重发请求。比如用h在上传一个文Ӟ而处理该上传的节点刚好在上传q程中出现故障,Nginx会把上传切到另一台服务器重新处理Q而LVSq接断掉了Q如果是上传一个很大的文g或者很重要的文件的话,用户可能会因此而恼火?/p>
6、Nginx对请求的异步处理可以帮助节点服务器减轻负载,假如使用apache直接对外服务Q那么出现很多的H带链接时apache服务器将会占用大 量内存而不能释放,使用多一个Nginx做apache代理的话Q这些窄带链接会被Nginx挡住Qapache上就不会堆积q多的请求,q样减了相当多的资源占用。这点用squid也有相同的作用,即squid本n配置Z~存Q对apacheq是有很大帮助的?/p>
7、Nginx能支持http、https和emailQemail的功能比较少用)QLVS所支持的应用在q点上会比Nginx更多。在使用上,一般最前端所采取的策略应是LVSQ也是DNS的指向应为LVS均衡器,LVS的优点o它非帔R合做这个Q务。重要的ip地址Q最好交由LVS托管Q比如数据库?ip、webservice服务器的ip{等Q这些ip地址随着旉推移Q用面会越来越大,如果更换ip则故障会接踵而至。所以将q些重要ip交给 LVS托管是最为稳妥的Q这样做的唯一~点是需要的VIP数量会比较多。Nginx可作为LVS节点机器使用Q一是可以利用Nginx的功能,二是可以利用Nginx的性能。当然这一层面也可以直接用squidQsquid的功能方面就比Nginx׃了Q性能上也有所逊色于Nginx。Nginx也可作ؓ中层代理使用Q这一层面Nginx基本上无ҎQ唯一可以撼动Nginx的就只有lighttpd了,不过lighttpd目前q没有能做到 Nginx完全的功能,配置也不那么清晰易读。另外,中层代理的IP也是重要的,所以中层代理也拥有一个VIP和LVS是最完美的方案了。具体的应用q得具体分析Q如果是比较的|站Q日PV于1000万)Q用Nginx完全可以了Q如果机器也不少Q可以用DNS轮询QLVS所耗费的机器还是比较多的;大型|站或者重要的服务Q机器不发愁的时候,要多多考虑利用LVS?/p>
现在对网l负载均衡的使用是随着|站规模的提升根据不同的阶段来用不同的技术:
W一阶段Q利用Nginx或HAProxyq行单点的负载均衡,q一阶段服务器规模刚q开单服务器、单数据库的模式Q需要一定的负蝲均衡Q但是仍然规模较没有专业的l护团队来进行维护,也没有需要进行大规模的网站部|Ӏ这样利用Nginx或HAproxy是W一选择Q此时这些东西上手快Q?配置ҎQ在七层之上利用HTTP协议可以。这时是W一选择?/p>
W二阶段Q随着|络服务q一步扩大,q时单点的Nginx已经不能满Q这时用LVS或者商用Array是首要选择QNginx此时׃为LVS或者Array的节Ҏ使用Q具体LVS或Array的是选择是根据公司规模和预算来选择QArray的应用交付功能非常强大,本h在某目中用过Q性h比也q高于F5Q商用首选!但是一般来说这阶段相关人才跟不上业务的提升Q所以购买商业负载均衡已l成Z必经之\?/p>
W三阶段Q这时网l服务已l成Z品,此时随着公司知名度也q一步扩展,相关人才的能力以及数量也随之提升Q这时无Z开发适合自n产品的定Ӟ以及降低成本来讲开源的LVSQ已l成为首选,q时LVS会成Z?/p>
最lŞ成比较理想的基本架构为:Array/LVS — Nginx/Haproxy — Squid/Varnish — AppServer?/p>
原文链接Q?a style="color: rgb(0,66,118); text-decoration: underline" >http://www.ha97.com/5646.html
【编辑推荐?/p>
%% 输出%W号 a literal %
%a 当前域的星期~写 locale’s abbreviated weekday name (Sun..Sat)
%A 当前域的星期全写 locale’s full weekday name, variable length (Sunday..Saturday)
%b 当前域的月䆾~写 locale’s abbreviated month name (Jan..Dec)
%B 当前域的月䆾全称 locale’s full month name, variable length (January..December)
%c 当前域的默认旉格式 locale’s date and time (Sat Nov 04 12:02:33 EST 1989)
%C n癑ֹ century (year divided by 100 and truncated to an integer) [00-99]
%d 两位的天 day of month (01..31)
%D 短时间格?date (mm/dd/yy)
%e 短格式天 day of month, blank padded ( 1..31)
%F 文g旉格式 same as %Y-%m-%d
%g the 2-digit year corresponding to the %V week number
%G the 4-digit year corresponding to the %V week number
%h same as %b
%H 24时制的时 hour (00..23)
%I 12时制的时 hour (01..12)
%j 一q中的第几天 day of year (001..366)
%k 短格?4时制的时 hour ( 0..23)
%l 短格?2时制的时 hour ( 1..12)
%m 双位月䆾 month (01..12)
%M 双位分钟 minute (00..59)
%n 换行 a newline
%N 十亿分之一U?nanoseconds (000000000..999999999)
%p 大写的当前域的上下午指示 locale’s upper case AM or PM indicator (blank in many locales)
%P 写的当前域的上下午指示 locale’s lower case am or pm indicator (blank in many locales)
%r 12时制的旉表示Q时:?U?双位Q?time, 12-hour (hh:mm:ss [AP]M)
%R 24时制的旉表示 Q时:?双位Qtime, 24-hour (hh:mm)
%s 自基旉 1970-01-01 00:00:00 到当前时ȝU数 seconds since `00:00:00 1970-01-01 UTC’ (a GNU extension)
%S 双位U?second (00..60); the 60 is necessary to accommodate a leap second
%t 横向制表?tab) a horizontal tab
%T 24时制时间表C?time, 24-hour (hh:mm:ss)
%u 数字表示的星期(从星期一开?1-7Qday of week (1..7); 1 represents Monday
%U 一q中的第几周星期天ؓ开?week number of year with Sunday as first day of week (00..53)
%V 一q中的第几周星期一为开?week number of year with Monday as first day of week (01..53)
%w 一周中的第几天 星期天ؓ开?0-6 day of week (0..6); 0 represents Sunday
%W 一q中的第几周星期一为开?week number of year with Monday as first day of week (00..53)
%x 本地日期格式 locale’s date representation (mm/dd/yy)
%X 本地旉格式 locale’s time representation (%H:%M:%S)
%y 两位的年 last two digits of year (00..99)
%Y q?year (1970…)
%z RFC-2822 标准旉格式表示的域 RFC-2822 style numeric timezone (-0500) (a nonstandard extension)
%Z 旉?time zone (e.g., EDT), or nothing if no time zone is determinable
By default, date pads numeric fields with zeroes. GNU date recognizes
the following modifiers between `%’ and a numeric directive.
`-’ (hyphen) do not pad the field
`_’ (underscore) pad the field with spaces
--------------------------------------------------------------------------------
2、一些用?/p>
1Q?以yymmdd的格式输?3天前的当前时?/p>
date +%Y%m%d --date='43 days ago'
2Q? 试十亿分之一U?br />date +’%Y%m%d %H:%M:%S.%N’;date +’%Y%m%d %H:%M:%S.%N’;date +’%Y%m%d %H:%M:%S.%N’;date +’%Y%m%d %H:%M:%S.%N’
3Q?创徏以当前时间ؓ文g名的目录
mkdir `date +%Y%m%d`
4Q?备䆾以时间做为文件名?br />tar -cvf ./htdocs`date +%Y%m%d`.tar ./*
5Q?昄旉后蟩行,再显C目前日?nbsp;
date +%T%n%Y%m%d
6Q?只显C月份与日数
date +%B%d
7Q?获取上周日期Qday,month,year,hourQ?/p>
date -d "-1 week" +%Y%m%d
8Q?获取24时前日?/p>
date --date="-24 hour" +%Y%m%d
9Q?shell脚本里面赋给变量?/p>
date_now=`date +%s`
10Q?计算执行一Dsql脚本的运行时?/p>
TIME_BEGIN=$(date '+%s.%N')
$sqlcli < queries/q1.3.sql 1>> $FILE_RESULT
TIME_END=$(date '+%s.%N')
TIME_RUN=$(awk 'BEGIN{print '$TIME_END' - '$TIME_BEGIN'}')
11Q?~写shell脚本计算自q日还有多天Q?/p>
m=`date --date="$date1" +%m`
d=`date --date="$date1" +%d`
date_now=`date +%s` y=`date +%Y` birth=`date --date="$y$m$d" +%s` internal=$(($birth-$date_now)) if [ "$internal" -lt "0" ]; then birth=`date --date="$(($y+1))$m$d" +%s` internal=$(($birth-$date_now)) fi echo "There is :$((einternal/60/60/24)) days." 12Q?若是不以加号作ؓ开_则表C讑֮旉Q而时间格式ؓ MMDDhhmm[[CC]YY][.ss]Q?/p>
其中 MM 为月份, DD 为日Q?/p>
hh 为小Ӟ mm 为分钟, CC 为年份前两位数字Q?/p>
YY 为年份后两位数字Q?/p>
ss 为秒?/p>
13Q?/p>
#昄目前的格林威L_也叫“世界?#8221;。是英国的标准时_也是世界各地旉的参考标准。中׃国的标准时差?个小Ӟ卌国的当地旉比中国的北京旉?时?/p>
date -u 14Q?修改旉 date -s
Thu Sep 28 09:32:04 UTC 2006
按字W串方式修改旉
可以只修Ҏ?不修Ҏ?输入: date -s 2007-08-03
只修Ҏ?输入:date -s 14:15:00
同时修改日期旉,注意要加双引?日期与时间之间有一I格,输入:date -s "2007-08-03 14:15:00"
修改完后,记得输入:clock -w
把系l时间写入CMOS
-verbose:gc
-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=5
-XX:GCLogFileSize=512K
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-XX:+PrintTenuringDistribution
-XX:+PrintGCApplicationStoppedTime
-Xloggc:/var/app/log/Push-server/gc.log
-XX:SurvivorRatio=xx
来控Ӟ对应的大ؓ-Xmn<value>/(ratio+2)
Q?/li>-XX:MaxTenuringThreshold=<n>
来指定晋升阈|q龄Q,n?~15之间Q?/li>-XX:CMSInitiatingOccupancyFraction=<percent>
的|老年代大?该比?gt;1.5*老年代活跃数据大?/code>Q?/li>- 使用
-XX:+ExplicitGCInvokesConcurrentAndUnloadsCloasses
可以使用CMSq行昑ּ垃圾回收Q?code style="border-bottom: 0px; border-left: 0px; padding-bottom: 2px; background-color: rgb(214,219,223); padding-left: 4px; padding-right: 4px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; white-space: nowrap; color: rgb(44,62,80); font-size: 14px; border-top: 0px; border-right: 0px; padding-top: 2px; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px">System.gc()
)Q通过-XX:+DisableExplicitGC
关闭昄垃圾回收Q慎用)Q?/li>-XX:+CMSClassUnloadingEnabled
打开怹带垃圑֛Ӟ使用-XX:+CMSPermGenSweepingEnabled
打开CMSҎ久带的扫描;使用-XX:CMSInitiatingPermOccupancyFraction=<perscent>
Ȁzd收比例阈|-XX:ParallelGCThreads=<n>
控制扫描U程敎ͼ使用-XX:+CMSScavengeBeforeRemark
强制重新标记前进行一ơMinorGCQ如果由大量的引用对象或可终l对象要处理Q?code style="border-bottom: 0px; border-left: 0px; padding-bottom: 2px; background-color: rgb(214,219,223); padding-left: 4px; padding-right: 4px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; white-space: nowrap; color: rgb(44,62,80); font-size: 14px; border-top: 0px; border-right: 0px; padding-top: 2px; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px">-XX:+ParallelRefProcEnabledQ?/li>
-d64
-Xmx5g
-Xms5g
-XX:PermSize=100m
-XX:MaxPermSize=100m
-XX:MaxDirectMemorySize=1g
-XX:+UseG1GC
-XX:MaxGCPauseMillis=80
G1不必明确讄新生代大,其自动调优也十分可靠Q对于停时间往往在长旉q行后可以达到预期效果;对吞吐量优先的应用,可能不是那么明显?/p>
linuxpȝ中,我们UC为traceroute,在MS Windows中ؓtracert?traceroute通过发送小的数据包到目的设备直到其q回Q来量光要多长时间。一条\径上的每个设备traceroute要测3ơ。输出结果中包括每次试的时?ms)和设备的名称Q如有的话)及其IP地址?/p>
在大多数情况下,我们会在linuxLpȝ下,直接执行命o行:traceroute hostname
而在Windowspȝ下是执行tracert的命令: tracert hostname
1.命o格式Q?/strong>
traceroute[参数][L]
2.命o功能Q?/strong>
traceroute指o让你q踪|络数据包的路由途径Q预设数据包大小?0BytesQ用户可另行讄?/p>
具体参数格式Qtraceroute [-dFlnrvx][-f<存活数?gt;][-g<|关>...][-i<|络界面>][-m<存活数?gt;][-p<通信端口>][-s<来源地址>][-t<服务cd>][-w<时U数>][L名称或IP地址][数据包大]
3.命o参数Q?/strong>
-d 使用Socket层的排错功能?/p>
-f 讄W一个检数据包的存zL值TTL的大?/p>
-F 讄勿离断位?/p>
-g 讄来源路由|关Q最多可讄8个?/p>
-i 使用指定的网l界面送出数据包?/p>
-I 使用ICMP回应取代UDP资料信息?/p>
-m 讄数据包的最大存zL值TTL的大?/p>
-n 直接使用IP地址而非L名称?/p>
-p 讄UDP传输协议的通信端口?/p>
-r 忽略普通的Routing TableQ直接将数据包送到q端L上?/p>
-s 讄本地L送出数据包的IP地址?/p>
-t 讄数据包的TOS数倹{?/p>
-v 详细昄指o的执行过E?/p>
-w 讄{待q端L回报的时间?/p>
-x 开启或关闭数据包的正确性检验?/p>
4.使用实例Q?/strong>
实例1Qtraceroute 用法单、最常用的用?/strong>
命oQtraceroute www.baidu.com
输出Q?br />[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
1 192.168.74.2 (192.168.74.2) 2.606 ms 2.771 ms 2.950 ms
2 211.151.56.57 (211.151.56.57) 0.596 ms 0.598 ms 0.591 ms
3 211.151.227.206 (211.151.227.206) 0.546 ms 0.544 ms 0.538 ms
4 210.77.139.145 (210.77.139.145) 0.710 ms 0.748 ms 0.801 ms
5 202.106.42.101 (202.106.42.101) 6.759 ms 6.945 ms 7.107 ms
6 61.148.154.97 (61.148.154.97) 718.908 ms * bt-228-025.bta.net.cn (202.106.228.25) 5.177 ms
7 124.65.58.213 (124.65.58.213) 4.343 ms 4.336 ms 4.367 ms
8 202.106.35.190 (202.106.35.190) 1.795 ms 61.148.156.138 (61.148.156.138) 1.899 ms 1.951 ms
9 * * *
30 * * *
[root@localhost ~]#
说明Q?/p>
记录按序列号?开始,每个U录是一?Q每跌CZ个网养I我们看到每行有三个时_单位?msQ其实就?q的默认参数。探数据包向每个网兛_送三个数据包后,|关响应后返回的旉Q如果您?traceroute -q 4 www.58.com Q表C向每个|关发?个数据包?/p>
有时我们traceroute 一C机时Q会看到有一些行是以星号表示的。出现这L情况Q可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据?/p>
有时我们在某一|关处g时比较长Q有可能是某台网x较阻塞,也可能是物理讑֤本n的原因。当然如果某台DNS出现问题Ӟ不能解析L名、域名时Q也?有g旉的现象;您可以加-n 参数来避免DNS解析Q以IP格式输出数据?/p>
如果在局域网中的不同|段之间Q我们可以通过traceroute 来排查问题所在,是主机的问题q是|关的问题。如果我们通过q程来访问某台服务器遇到问题Ӟ我们用到traceroute q踪数据包所l过的网养I提交IDC服务商,也有助于解决问题Q但目前看来在国内解册L问题是比较困隄Q就是我们发现问题所在,IDC服务商也不可能帮助我们解冟?/p>
实例2Q蟩数设|?/strong>
命oQtraceroute -m 10 www.baidu.com
输出Q?br />[root@localhost ~]# traceroute -m 10 www.baidu.com
traceroute to www.baidu.com (61.135.169.105), 10 hops max, 40 byte packets
1 192.168.74.2 (192.168.74.2) 1.534 ms 1.775 ms 1.961 ms
2 211.151.56.1 (211.151.56.1) 0.508 ms 0.514 ms 0.507 ms
3 211.151.227.206 (211.151.227.206) 0.571 ms 0.558 ms 0.550 ms
4 210.77.139.145 (210.77.139.145) 0.708 ms 0.729 ms 0.785 ms
5 202.106.42.101 (202.106.42.101) 7.978 ms 8.155 ms 8.311 ms
6 bt-228-037.bta.net.cn (202.106.228.37) 772.460 ms bt-228-025.bta.net.cn (202.106.228.25) 2.152 ms 61.148.154.97 (61.148.154.97) 772.107 ms
7 124.65.58.221 (124.65.58.221) 4.875 ms 61.148.146.29 (61.148.146.29) 2.124 ms 124.65.58.221 (124.65.58.221) 4.854 ms
8 123.126.6.198 (123.126.6.198) 2.944 ms 61.148.156.6 (61.148.156.6) 3.505 ms 123.126.6.198 (123.126.6.198) 2.885 ms
9 * * *
10 * * *
[root@localhost ~]#
实例3Q显CIP地址Q不查主机名
命oQtraceroute -n www.baidu.com
输出Q?br />[root@localhost ~]# traceroute -n www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
1 211.151.74.2 5.430 ms 5.636 ms 5.802 ms
2 211.151.56.57 0.627 ms 0.625 ms 0.617 ms
3 211.151.227.206 0.575 ms 0.584 ms 0.576 ms
4 210.77.139.145 0.703 ms 0.754 ms 0.806 ms
5 202.106.42.101 23.683 ms 23.869 ms 23.998 ms
6 202.106.228.37 247.101 ms * *
7 61.148.146.29 5.256 ms 124.65.58.213 4.386 ms 4.373 ms
8 202.106.35.190 1.610 ms 61.148.156.138 1.786 ms 61.148.3.34 2.089 ms
9 * * *
30 * * *
[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
1 211.151.74.2 (211.151.74.2) 4.671 ms 4.865 ms 5.055 ms
2 211.151.56.57 (211.151.56.57) 0.619 ms 0.618 ms 0.612 ms
3 211.151.227.206 (211.151.227.206) 0.620 ms 0.642 ms 0.636 ms
4 210.77.139.145 (210.77.139.145) 0.720 ms 0.772 ms 0.816 ms
5 202.106.42.101 (202.106.42.101) 7.667 ms 7.910 ms 8.012 ms
6 bt-228-025.bta.net.cn (202.106.228.25) 2.965 ms 2.440 ms 61.148.154.97 (61.148.154.97) 431.337 ms
7 124.65.58.213 (124.65.58.213) 5.134 ms 5.124 ms 5.044 ms
8 202.106.35.190 (202.106.35.190) 1.917 ms 2.052 ms 2.059 ms
9 * * *
30 * * *
[root@localhost ~]#
实例4Q探包使用的基本UDP端口讄6888
命oQtraceroute -p 6888 www.baidu.com
[root@localhost ~]# traceroute -p 6888 www.baidu.com
traceroute to www.baidu.com (220.181.111.147), 30 hops max, 40 byte packets
1 211.151.74.2 (211.151.74.2) 4.927 ms 5.121 ms 5.298 ms
2 211.151.56.1 (211.151.56.1) 0.500 ms 0.499 ms 0.509 ms
3 211.151.224.90 (211.151.224.90) 0.637 ms 0.631 ms 0.641 ms
4 * * *
5 220.181.70.98 (220.181.70.98) 5.050 ms 5.313 ms 5.596 ms
6 220.181.17.94 (220.181.17.94) 1.665 ms !X * *
[root@localhost ~]#
实例5Q把探测包的个数讄为?
命oQtraceroute -q 4 www.baidu.com
[root@localhost ~]# traceroute -q 4 www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
1 211.151.74.2 (211.151.74.2) 40.633 ms 40.819 ms 41.004 ms 41.188 ms
2 211.151.56.57 (211.151.56.57) 0.637 ms 0.633 ms 0.627 ms 0.619 ms
3 211.151.227.206 (211.151.227.206) 0.505 ms 0.580 ms 0.571 ms 0.569 ms
4 210.77.139.145 (210.77.139.145) 0.753 ms 0.800 ms 0.853 ms 0.904 ms
5 202.106.42.101 (202.106.42.101) 7.449 ms 7.543 ms 7.738 ms 7.893 ms
6 61.148.154.97 (61.148.154.97) 316.817 ms bt-228-025.bta.net.cn (202.106.228.25) 3.695 ms 3.672 ms *
7 124.65.58.213 (124.65.58.213) 3.056 ms 2.993 ms 2.960 ms 61.148.146.29 (61.148.146.29) 2.837 ms
8 61.148.3.34 (61.148.3.34) 2.179 ms 2.295 ms 2.442 ms 202.106.35.190 (202.106.35.190) 7.136 ms
9 * * * *
30 * * * *
[root@localhost ~]#
实例6Q绕q正常的路由表,直接发送到|络相连的主?/strong>
命oQtraceroute -r www.baidu.com
输出Q?br />[root@localhost ~]# traceroute -r www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
connect: |络不可?br />[root@localhost ~]#
实例7Q把对外发探包的等待响应时间设|ؓ3U?/p>
命oQtraceroute -w 3 www.baidu.com
输出Q?br />
[root@localhost ~]# traceroute -w 3 www.baidu.com
traceroute to www.baidu.com (61.135.169.105), 30 hops max, 40 byte packets
1 211.151.74.2 (211.151.74.2) 2.306 ms 2.469 ms 2.650 ms
2 211.151.56.1 (211.151.56.1) 0.621 ms 0.613 ms 0.603 ms
3 211.151.227.206 (211.151.227.206) 0.557 ms 0.560 ms 0.552 ms
4 210.77.139.145 (210.77.139.145) 0.708 ms 0.761 ms 0.817 ms
5 202.106.42.101 (202.106.42.101) 7.520 ms 7.774 ms 7.902 ms
6 bt-228-025.bta.net.cn (202.106.228.25) 2.890 ms 2.369 ms 61.148.154.97 (61.148.154.97) 471.961 ms
7 124.65.58.221 (124.65.58.221) 4.490 ms 4.483 ms 4.472 ms
8 123.126.6.198 (123.126.6.198) 2.948 ms 61.148.156.6 (61.148.156.6) 7.688 ms 7.756 ms
9 * * *
30 * * *
[root@localhost ~]#
Traceroute的工作原理:
Traceroute最单的基本用法是:traceroute hostname
TracerouteE序的设计是利用ICMP及IP header的TTLQTime To LiveQ栏位(fieldQ。首先,traceroute送出一个TTL?的IP datagramQ其实,每次送出的ؓ3?0字节的包Q包括源地址Q目的地址和包发出的时间标{)到目的地Q当路径上的W一个\由器QrouterQ收到这个datagramӞ它将TTL?。此ӞTTL变ؓ0了,所以该路由器会此datagram丢掉Qƈ送回一个「ICMP time exceeded」消息(包括发IP包的源地址QIP包的所有内容及路由器的IP地址Q,traceroute 收到q个消息后,便知道这个\由器存在于这个\径上Q接着traceroute 再送出另一个TTL? 的datagramQ发现第2 个\由器...... traceroute 每次送出的datagram的TTL ?来发现另一个\由器Q这个重复的动作一直持l到某个datagram 抵达目的地。当datagram到达目的地后Q该Lq不会送回ICMP time exceeded消息Q因为它已是目的CQ那么traceroute如何得知目的地到达了呢?
Traceroute在送出UDP datagrams到目的地Ӟ它所选择送达的port number 是一个一般应用程序都不会用的LQ?0000 以上Q,所以当此UDP datagram 到达目的地后该主Z送回一个「ICMP port unreachable」的消息Q而当traceroute 收到q个消息Ӟ便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon E式?/p>
Traceroute提取?ICMP TTL到期消息讑֤的IP地址q作域名解析。每?QTraceroute都打印出一pd数据,包括所l过的\p备的域名?IP地址,三个包每ơ来回所花时间?/p>
windows之tracert:
格式Q?/p>
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
参数说明Q?/p>
tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
该诊断实用程序通过向目的地发送具有不同生存时?(TL) ?Internet 控制信息协议 (CMP) 回应报文Q以定至目的地的\由。\径上的每个\由器都要在{发该 ICMP 回应报文之前其 TTL D减 1Q因?TTL 是有效的跌{计数。当报文?TTL 值减到 0 Ӟ路由器向源系l发?ICMP 时信息。通过发?TTL ?1 的第一个回应报文ƈ且在随后的发送中每次?TTL 值加 1Q直到目标响应或辑ֈ最?TTL |Tracert 可以定路由。通过查中间\由器发发回的 ICMP 时 (ime Exceeded) 信息Q可以确定\由器。注意,有些路由?#8220;安静”C弃生存时?(TLS) q期的报文ƈ且对 tracert 无效?/p>
参数Q?/p>
-d 指定不对计算机名解析地址?/p>
-h maximum_hops 指定查找目标的蟩转的最大数目?/p>
-jcomputer-list 指定?computer-list 中松散源路由?/p>
-w timeout {待?timeout Ҏ个应{指定的毫秒数?/p>
target_name 目标计算机的名称?/p>
实例Q?br />
?tt>/etc/resolv.conf 配置文gQdomain 和search作用是一L
domain linpro.no
search linpro.no uio.no ifi.uio.no
domain function:
Had I typed telnet math.uio.no. with the trailing dot, the resolver would have known it was an FQDN and would have looked up math.uio.no at once, without trying to append the specified domain first. Not all applications are tolerant of the trailing dot, though, so it can't always be specified.
search function:
When ssh gram is executed, the resolver first looks for gram.linpro.no, which does not exist; thengram.uio.no, which does not exist, either; and finally gram.ifi.uio.no, which will succeed because it does exist
http://www.linuxyan.com/web-server/6.html
1、keepalived安装(在主和备2台nginx服务器上都安?
wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
tar xzf keepalived-1.2.2.tar.gz
cd keepalived-1.2.2
./configure –prefix=/usr/local/keepalived
make && make install
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
chmod +x /etc/init.d/keepalived
mkdir /etc/keepalived
ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/
然后对主nginx服务器的keepalivedq行配置
vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
admin@centos.bz #接收警报的email地址,可以d多个
}
notification_email_from keepalived@domain.com ###发g人地址
smtp_server 127.0.0.1 ###发送邮件的服务?br />smtp_connect_timeout 30 ###时旉
router_id LVS_DEVEL ####load balancer 的标?ID,用于email警报
}
vrrp_script chk_http_port {
script “/opt/nginx_pid.sh” ####nginx状态的脚本路径
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER ############ 辅机?BACKUP
interface eth0 ####HA 监测|络接口
virtual_router_id 51 #丅R备机的 virtual_router_id 必须相同
mcast_src_ip 192.168.2.117 ###本机IP地址
priority 102 ########### 权D?back ?br />advert_int 1 #d之间的通告间隔U数
authentication {
auth_type PASS ###d切换时的验证
auth_pass 1111
}
track_script {
chk_http_port ### 执行监控的服?br />}
virtual_ipaddress {
192.168.2.114 ####vip的地址
}
}
备nginx服务器上配置
global_defs {
notification_email {
admin@centos.bz
}
notification_email_from keepalived@domain.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script “/opt/nginx_pid.sh” ##nginx状态的脚本
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51 #### 保持M服务器一?br />mcast_src_ip 192.168.0.170 ###本机的IP地址
priority 101 ##########权?要比 master 低。?br />advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port ### 执行监控的服?br />}
virtual_ipaddress {
192.168.2.114 ###vip的地址
}
}
之后分别在主从服务器建立nginx的监控脚本:
vi /opt/nginx_pid.sh
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx ##q个地方写你nginx命o的\?br />sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
配置好之后,分别?台服务器上启动nginx和keepalived
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/etc/init.d/keepalived start
在主nginx服务器上执行ip a
[root@localhost ~]# ip a
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:58:58:5f brd ff:ff:ff:ff:ff:ff
inet 192.168.2.117/22 brd 192.168.3.255 scope global eth0
inet 192.168.2.114/32 scope global eth0
inet6 fe80::20c:29ff:fe58:585f/64 scope link
valid_lft forever preferred_lft forever
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
可以看到2.114q个vip已经l定在主nginx服务器上?q个时候把nginx停掉
[root@localhost ~]# killall nginx
[root@localhost ~]# ps aux |grep nginx
root 9175 0.0 0.3 43268 916 ? Ss 05:45 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 9176 0.0 0.5 43648 1468 ? S 05:45 0:00 nginx: worker process
root 9187 0.0 0.2 61180 716 pts/0 R+ 05:45 0:00 grep nginx
额额Q,Q怎么停不掉,Q,Q?br />注意看监控nginx的脚?当脚本检到nginx没有q行的时候,会尝试启动一ơ,如果启动成功Q则不{Uvip。如果启动失败,则把keepalived停掉Q从机的keepalived会把vipl定到备nginx服务器上Q这个时候就是备nginx的服务器在提供服务了?br />Z看下效果Q暂且把q个脚本修改一下,不让他尝试启动nginx服务
q个时候把nginx服务停掉Q我们用ip a来看下vip是否q在主nginx服务器上l定着
[root@localhost ~]# ip a
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:58:58:5f brd ff:ff:ff:ff:ff:ff
inet 192.168.2.117/22 brd 192.168.3.255 scope global eth0
inet6 fe80::20c:29ff:fe58:585f/64 scope link
valid_lft forever preferred_lft forever
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
可以看到已经没有vipq个地址?br />ȝ备nginx服务器上看vip是否l定在了上面
[root@localhost etc]# ip a
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:34:cc:f9 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.170/22 brd 192.168.1.255 scope global eth0
inet 192.168.2.114/32 scope global eth0
inet6 fe80::20c:29ff:fe34:ccf9/64 scope link
valid_lft forever preferred_lft forever
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
okQ可以看到vip已经l定在备nginx服务器上了?/p>
目前有许多不同的负蝲均衡技术用以满不同的应用需求,如Y/g负蝲均衡、本?全局负蝲均衡、更高网l层负蝲均衡Q以及链路聚合技术?/p>
我们使用的是软负载均衡器Nginx,而农行用的是F5负载均衡器Q这里就单介l下q两U技术:
a.软g负蝲均衡解决Ҏ
在一台服务器的操作系l上Q安装一个附加Y件来实现负蝲均衡Q如Nginx负蝲均衡Q我们管理系l^C用的也是q款均衡器)。它的优ҎZ特定环境、配|简单、用灵zR成本低廉,可以满大部分的负蝲均衡需求?/p>
一、什么是Nginx
Nginx ("engine x") 是一个高性能?HTTP ?反向代理 服务器,也是一?IMAP/POP3/SMTP 代理服务器?可以说Nginx 是目前用最为广泛的HTTP软负载均衡器Q其源代码以类BSD许可证的形式发布Q商业友好)Q同时因高效的性能、稳定性、丰富的功能集、示例配|文件和低系l资源的消耗而闻名于业界。像腾讯、淘宝、新等大型门户及商业网站都采用Nginxq行HTTP|站的数据分?/p>
二、Nginx的功能特?/p>
1、工作在|络?层之上,可以针对http应用做一些分的{略Q比如针对域名、目录结构;
2、Nginx对网l的依赖比较;
3、Nginx安装和配|比较简单,试h比较方便Q?/p>
4、也可以承担高的负蝲压力且稳定,一般能支撑过1万次的ƈ发;
5、Nginx可以通过端口到服务器内部的故障Q比如根据服务器处理|页q回的状态码、超时等{,www.linuxidc.com q且会把q回错误的请求重新提交到另一个节点,不过其中~点是不支持url来检;
6、Nginx对请求的异步处理可以帮助节点服务器减轻负载;
7、Nginx能支持http和EmailQ这样就在适用范围上面很多;
8、不支持Session的保持、对Big request header的支持不是很好,另外默认的只有Round-robin和IP-hash两种负蝲均衡法?/p>
三、Nginx的原?/p>
Nginx采用的是反向代理技术,代理服务器来接受internet上的q接hQ然后将h转发l内部网l上的服务器Qƈ从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现Z个服务器。反向代理负载均衡技术是把将来自internet上的q接h以反向代理的方式动态地转发l内部网l上的多台服务器q行处理Q从而达到负载均衡的目的?/p>
b.g负蝲均衡解决Ҏ
直接在服务器和外部网l间安装负蝲均衡讑֤Q这U设备我们通常UC载均衡器。由于专门的讑֤完成专门的Q务,独立于操作系l,整体性能得到大量提高Q加上多样化的负载均衡策略,化的量理Q可辑ֈ最佳的负蝲均衡需求?一般而言Q硬件负载均衡在功能、性能上优于Y件方式,不过成本昂贵Q比如最常见的就是F5负蝲均衡器?/p>
什么是F5 BIG-IP
F5负蝲均衡器是应用交付|络的全球领DF5 Networks公司提供的一个负载均衡器专用讑֤QF5 BIG-IP LTM 的官方名U叫做本地流量管理器Q可以做4-7层负载均衡,h负蝲均衡、应用交换、会话交换、状态监控、智能网l地址转换、通用持箋性、响应错误处理、IPv6|关、高U\由、智能端口镜像、SSL加速、智能HTTP压羃、TCP优化、第7层速率整Ş、内容缓册Ӏ内容{换、连接加速、高速缓存、Cookie加密、选择性内容加密、应用攻击过滤、拒l服?DoS)d和SYN Flood保护、防火墙—包过滤、包消毒{功能?/p>
以下是F5 BIG-IP用作HTTP负蝲均衡器的主要功能Q?/p>
①、F5 BIG-IP提供12U灵zȝ法所有流量均衡的分配到各个服务器Q而面对用P只是一台虚拟服务器?/p>
②、F5 BIG-IP可以认应用E序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障QF5会检查出来ƈ该服务器标识ؓ宕机Q从而不用L讉Kh传送到该台发生故障的服务器上。这P只要其它的服务器正常Q用L讉K׃会受到媄响。宕Z旦修复,F5 BIG-IP׃自动查证应用已能对客戯求作出正响应ƈ恢复向该服务器传送?/p>
③、F5 BIG-IPh动态Session的会话保持功能?/p>
④、F5 BIG-IP的iRules功能可以做HTTP内容qoQ根据不同的域名、URLQ将讉Kh传送到不同的服务器?/p>
Ҏ优缺点对?/p>
Zg的方?F5)
优点Q能够直接通过交换机实?处理能力更强Q而且与系l无养I负蝲性能强更适用于一大堆讑֤、大讉K量、简单应?/p>
~点Q成本高Q除讑֤h高昂Q而且配置冗余Q很难想象后面服务器做一个集,但最关键的负载均衡设备却是单炚w|;无法有效掌握服务器及应用状?
g负蝲均衡Q一般都不管实际pȝ与应用的状态,而只是从|络层来判断Q所以有时候系l处理能力已l不行了Q但|络可能q来 得及反应Q这U情况非常典型,比如应用服务器后面内存已l占用很多,但还没有d不行Q如果网l传输量不大未必在|络层能反映出来Q?/p>
Z软g的方?Nginx)
优点Q基于系l与应用的负载均衡,能够更好地根据系l与应用的状冉|分配负蝲。这对于复杂应用是很重要的,性h比高Q实际上如果几台服务器,用F5之类的硬件品显得有些浪费,而用软gp合算得多Q因为服务器同时q可以跑应用做集等?/p>
~点Q负载能力受服务器本w性能的媄响,性能好Q负载能力越大?/p>
lDQ对我们理pȝ应用环境来说Q由于负载均衡器本n不需要对数据q行处理Q性能瓉更多的是在于后台服务器,通常采用软负载均衡器已非常够用且其商业友好的软g源码授权使得我们可以非常灉|的设计,无逢的和我们管理系l^台相l合?/p>