The NoteBook of EricKong

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

          2015年7月23日 #

          嗨心兔是品墨科技自主研發(fā)生產(chǎn)的一款智能共享童車,通過(guò)物聯(lián)網(wǎng)和微信+支付寶小程序?qū)嵭胁僮鳎蓪?shí)現(xiàn)無(wú)人值守、智能消毒、自動(dòng)計(jì)費(fèi)、自動(dòng)扣費(fèi)的新型兒童娛樂(lè)設(shè)備。加盟熱線400-6151-556

          關(guān)于共享童車這個(gè)項(xiàng)目,看這篇文章就夠了!

          市場(chǎng)前景廣闊

          中國(guó)統(tǒng)計(jì)局?jǐn)?shù)據(jù)顯示,截至2018年,我國(guó)0-14歲的兒童數(shù)量已經(jīng)達(dá)到2.5億人。2018 年兒童消費(fèi)市場(chǎng)規(guī)模突破4.5 萬(wàn)億,并以每年20%的速度增長(zhǎng),其中兒童娛樂(lè)消費(fèi)市場(chǎng)的規(guī)模突破4600億元。

          當(dāng)前,80、90后成為了家長(zhǎng)群體中的主力軍時(shí)。他們有較好的經(jīng)濟(jì)基礎(chǔ)已經(jīng)對(duì)消費(fèi)升級(jí)的追求,這使得育兒支出水漲船高。 目前我國(guó)14歲以下的兒童數(shù)量較大,兒童消費(fèi)已占到家庭總支出的3 0 %左右,其中玩具,童裝又占據(jù)著較高的比例。

          根據(jù)行業(yè)研發(fā)報(bào)告顯示,我國(guó)兒童消費(fèi)規(guī)模已經(jīng)接近4.5萬(wàn)億元,其中兒童娛樂(lè)消費(fèi)市場(chǎng)的規(guī)模突破4600億元。

          中共中央政治局5月31日召開會(huì)議,會(huì)議指出,進(jìn)一步優(yōu)化生育政策,實(shí)施一對(duì)夫妻可以生育三個(gè)子女政策及配套支持措施。我國(guó)正處于人口大國(guó)向人力資本強(qiáng)國(guó)轉(zhuǎn)變的重大戰(zhàn)略機(jī)遇期,立足國(guó)情,“三孩”政策能夠最大限度發(fā)揮人口對(duì)經(jīng)濟(jì)社會(huì)發(fā)展的能動(dòng)作用。

          二胎政策以來(lái),在人口增長(zhǎng)以及產(chǎn)業(yè)提升方面,開始有顯著的效果的。二孩政策的開放,促使少兒人口數(shù)量的逐漸增加,也會(huì)為一些兒童產(chǎn)業(yè)經(jīng)濟(jì)帶來(lái)相當(dāng)可觀的市場(chǎng)。更別說(shuō)三孩政策的開放,更會(huì)給兒童經(jīng)濟(jì)市場(chǎng)帶來(lái)一個(gè)巨大的飛躍。

          關(guān)于共享童車這個(gè)項(xiàng)目,看這篇文章就夠了!

          新風(fēng)口

          嗨心兔共享童車智能柜,作為新型共享經(jīng)濟(jì)的新模式,新風(fēng)口,大大增加了兒童車的使用選擇、節(jié)約了購(gòu)買成本,還大便利了家長(zhǎng)帶娃,更可以增加孩子公平意識(shí),提升社交樂(lè)趣,同時(shí)也解決很多用戶的痛點(diǎn):

           市場(chǎng)和痛點(diǎn):

          兒童電動(dòng)車是孩子最不可缺失的用品之一,也是孩子成長(zhǎng)過(guò)程中最重要的“玩伴”。但是買一臺(tái)放在家里是非常占地方的,現(xiàn)在的樓價(jià)那么高,一臺(tái)童車占據(jù)的面積就差不多一個(gè)平方了。按照一二線城市的樓價(jià)來(lái)計(jì)算,家里買一臺(tái)童車的場(chǎng)地“租金”是相當(dāng)高的。孩子“喜新厭舊”,玩具車很快就會(huì)“失寵”。買過(guò)兒童電動(dòng)車的家長(zhǎng)都會(huì)反饋,家里買回來(lái)的兒童電動(dòng)車,只玩了兩次就不完了, 然后就放在那里了。然后想玩第三的時(shí)候,發(fā)現(xiàn)因?yàn)殡姵亻L(zhǎng)期沒(méi)有充電的, 電池就報(bào)廢了,已經(jīng)不能再玩了。現(xiàn)在的家長(zhǎng)對(duì)產(chǎn)品的品質(zhì)要求都比較高,小孩子也是家里的寶貝,給小孩子買的電動(dòng)兒童車,而且要買一臺(tái)質(zhì)量比較好的電動(dòng)兒童車,價(jià)錢也不低的。現(xiàn)在家庭都是居住在小區(qū)內(nèi),對(duì)于寶媽來(lái)說(shuō),兒童電動(dòng)車搬上搬下也是個(gè)特別麻煩的事情。

          關(guān)于共享童車這個(gè)項(xiàng)目,看這篇文章就夠了!

          產(chǎn)品優(yōu)勢(shì)和特點(diǎn):

          廣東品墨科技科技有限自主研發(fā)生產(chǎn)的一款智能共享童車,通過(guò)物聯(lián)網(wǎng)和微信+支付寶小程序?qū)嵭胁僮鳎蓪?shí)現(xiàn)無(wú)人值守、智能消毒、自動(dòng)計(jì)費(fèi)、自動(dòng)扣費(fèi)完美解決了這些問(wèn)題,項(xiàng)目具備下面幾點(diǎn)優(yōu)勢(shì):

          優(yōu)勢(shì)一:無(wú)人值守免人工

          傳統(tǒng)童車玩樂(lè)需要,人工監(jiān)管,人工收費(fèi),場(chǎng)地大了還得多個(gè)人看守,而嗨心兔智能設(shè)備無(wú)需專人值守,自動(dòng)計(jì)費(fèi),自動(dòng)扣費(fèi),一個(gè)人可管理幾十個(gè)點(diǎn)。由于傳統(tǒng)童車是都是采用定時(shí)斷電的方式進(jìn)行計(jì)費(fèi),這樣限制了兒童消費(fèi)的沖動(dòng),影響營(yíng)業(yè)收入。

          優(yōu)勢(shì)二:占地小租金少

          傳統(tǒng)童車玩樂(lè)有多少車就需要多大的空地存放, 而嗨心兔共享童車智能柜的方式存放,立體空間,一套設(shè)備占地還不到1平米。一套設(shè)備可以存放2個(gè)童車,極大節(jié)省了存放的空間。

          優(yōu)勢(shì)三:還車自動(dòng)充電

          傳統(tǒng)童車玩樂(lè)專人負(fù)責(zé)充電,每天隨時(shí)隨地得記著,而嗨心兔采用自助充電,還車和充電一氣呵成。不會(huì)因?yàn)橥浟顺潆姡缓笥绊懥巳粘5倪\(yùn)營(yíng)。

          優(yōu)勢(shì)四:防水防盜防嗮

          傳統(tǒng)童車玩樂(lè)不防雨不防盜,要是在戶外還得專門找個(gè)安全的地方存放,而嗨心兔不但防水,而且防曬,還有設(shè)計(jì)了安全警報(bào)功能,防偷防盜,智能科技呵護(hù)你的“搖錢樹”。讓你輕松的賺取睡后的收入。

          優(yōu)勢(shì)五:醫(yī)用級(jí)衛(wèi)生保證

          傳統(tǒng)童車玩樂(lè)輪流使用,基本沒(méi)有消毒,交叉感染可能性大,而嗨心兔采用醫(yī)用級(jí)消毒燈,—車一消毒,一次一消毒,為兒童健康提供強(qiáng)大保障。

          優(yōu)勢(shì)六:車型多正版授權(quán)

          傳統(tǒng)童車玩樂(lè)只能坐著到處逛, 體驗(yàn)感一般,而嗨心兔全是正版授權(quán)的超拉風(fēng)車輛,包括但是不限于,蘭博基尼,法拉利,保時(shí)捷,賓利,勞斯萊斯這些,小朋友自駕體驗(yàn)自己操控的樂(lè)趣,家長(zhǎng)遙控著都感覺(jué)有面子。

          關(guān)于共享童車這個(gè)項(xiàng)目,看這篇文章就夠了!

          關(guān)鍵是選址

          公園

          公園人流多,而且地方寬敞,也是家里留守老人帶孩子愛去的地方。所以對(duì)于嗨心兔共享童車來(lái)說(shuō),公園也是投放場(chǎng)地的重點(diǎn)推薦之一。

          商場(chǎng)

          商場(chǎng)在共享童車行業(yè)中毫無(wú)疑問(wèn)是個(gè)優(yōu)質(zhì)的投放場(chǎng)地。商場(chǎng)人流大,兒童業(yè)態(tài)在購(gòu)物中心的一般占比達(dá)到19%或以上,是家庭休閑娛樂(lè)的好地方。

          小區(qū)

          在住房壓力普遍的現(xiàn)在,特別是在城市,城鎮(zhèn)生活的打工人,尺土寸金,很多家庭室內(nèi)幾乎沒(méi)有孩子騎上童車玩樂(lè)的空間。出行的話,又很難放在后備箱中攜帶,搬來(lái)搬去也很是不方便。因此小區(qū)作為家庭日常生活的場(chǎng)所,在這里投放共享童車是好地方

          廣場(chǎng)

          廣場(chǎng),是小孩游玩的集中地。廣場(chǎng)地域?qū)掗煛o(wú)車流,備受群眾喜愛,特別是夜晚時(shí)有許多父母會(huì)帶孩子一起散步,人流量越大,生意的機(jī)會(huì)就多,這也是嗨心兔共享童車投放區(qū)域的一大好選擇。

          關(guān)于共享童車這個(gè)項(xiàng)目,看這篇文章就夠了!

          合作伙伴:

          選擇合作伙伴,如同選擇伴侶般重要?首先,價(jià)格和成本相對(duì)來(lái)說(shuō),越低越好,這樣你就可以盡快償還成本。第二,要考慮設(shè)備的穩(wěn)定性。要選址產(chǎn)品比較穩(wěn)定的公司。

          最終要是源頭廠家合作,要認(rèn)真調(diào)研他們是不是招商公司,假如是招商公司的話,他們只是賺一筆就走了,真正能給提供服務(wù)的源頭還是廠家,但是你簽署合同的是招商公司的話,中間有服務(wù)的話,必然也隔了一層,效率必然低下。假如是源頭廠家的話,至少如果遇到問(wèn)題,可以第一時(shí)間找到設(shè)計(jì)制作這個(gè)產(chǎn)品的人。他比任何人都清楚哪里容易出現(xiàn)問(wèn)題,以及如何解決問(wèn)題。萬(wàn)一找個(gè)不專業(yè)的公司合作,特別是貼牌的招商公司,售后問(wèn)題就要經(jīng)過(guò)幾層才能解決。不然到時(shí)候,你遇到問(wèn)題一定是瘋了。

          而廣東品墨科技有限公司,是一家以物聯(lián)網(wǎng),大數(shù)據(jù),人工智能技術(shù)為依托的技術(shù)和運(yùn)營(yíng)推廣公司,技術(shù)團(tuán)隊(duì)由來(lái)自匯豐,中國(guó)電信,華為,廣點(diǎn)通等頂尖企業(yè)的資深研發(fā)和營(yíng)銷運(yùn)營(yíng)團(tuán)隊(duì)組成!同時(shí),公司還是騰訊廣告的授權(quán)的廣告服務(wù)商,對(duì)全國(guó)各地的加盟商的廣告支持是十分到位的。

          關(guān)于共享童車這個(gè)項(xiàng)目,看這篇文章就夠了!

          廣東品墨科技有限公司,是一家專注于專注于智能設(shè)備的研發(fā)、生產(chǎn)、推廣于一體的企業(yè),我公司自主研發(fā)和生成共享童車的控制主板,軟件系統(tǒng),運(yùn)營(yíng)后臺(tái)。旗下的嗨心兔品牌專注于兒童業(yè)態(tài)的無(wú)人智能游樂(lè)設(shè)備領(lǐng)域,通過(guò)整合智能設(shè)備和物聯(lián)網(wǎng),大數(shù)據(jù)分析技術(shù),自主研發(fā)和設(shè)計(jì)國(guó)內(nèi)更適應(yīng)市場(chǎng)需求、更受小朋友喜愛的共享童車智能柜。

          全國(guó)招商加盟熱線:400-6151-556

          共享童車源頭廠家,品質(zhì)保證,支持各種物聯(lián)網(wǎng)系統(tǒng)OEM定制開發(fā)

          posted @ 2021-08-31 09:27 Eric_jiang 閱讀(153) | 評(píng)論 (0)編輯 收藏

          1.wireshark

          wireshark安裝
           #yum install wireshark wireshark-gnome
          wireshark使用
             #wireshark

          2.tcpdump

          tcpdump采用命令行方式,它的命令格式為:
                tcpdump [ -adeflnNOpqStvx ] [ -c 數(shù)量 ] [ -F 文件名 ]
                    [ -i 網(wǎng)絡(luò)接口 ] [ -r 文件名] [ -s snaplen ]
                    [ -T 類型 ] [ -w 文件名 ] [表達(dá)式 ]

          http://anheng.com.cn/news/24/586.html

          (1). tcpdump的選項(xiàng)介紹 
          http://anheng.com.cn/news/24/586.html

             -a    將網(wǎng)絡(luò)地址和廣播地址轉(zhuǎn)變成名字;
             -d    將匹配信息包的代碼以人們能夠理解的匯編格式給出;
             -dd    將匹配信息包的代碼以c語(yǔ)言程序段的格式給出;
             -ddd   將匹配信息包的代碼以十進(jìn)制的形式給出;
             -e    在輸出行打印出數(shù)據(jù)鏈路層的頭部信息;
             -f    將外部的Internet地址以數(shù)字的形式打印出來(lái);
             -l    使標(biāo)準(zhǔn)輸出變?yōu)榫彌_行形式;
             -n    不把網(wǎng)絡(luò)地址轉(zhuǎn)換成名字;
             -t    在輸出的每一行不打印時(shí)間戳;
             -v    輸出一個(gè)稍微詳細(xì)的信息,例如在ip包中可以包括ttl和服務(wù)類型的信息;
             -vv    輸出詳細(xì)的報(bào)文信息;
             -c    在收到指定的包的數(shù)目后,tcpdump就會(huì)停止;
             -F    從指定的文件中讀取表達(dá)式,忽略其它的表達(dá)式;
             -i    指定監(jiān)聽的網(wǎng)絡(luò)接口;
             -r    從指定的文件中讀取包(這些包一般通過(guò)-w選項(xiàng)產(chǎn)生);
             -w    直接將包寫入文件中,并不分析和打印出來(lái);
             -T    將監(jiān)聽到的包直接解釋為指定的類型的報(bào)文,常見的類型有rpc (遠(yuǎn)程過(guò)程調(diào)用)和snmp(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議;)

          Ethereal和Sniffit兩個(gè)網(wǎng)絡(luò)分析工具


          PS:tcpdump是一個(gè)用于截取網(wǎng)絡(luò)分組,并輸出分組內(nèi)容的工具,簡(jiǎn)單說(shuō)就是數(shù)據(jù)包抓包工具。tcpdump憑借強(qiáng)大的功能和靈活的截取策略,使其成為Linux系統(tǒng)下用于網(wǎng)絡(luò)分析和問(wèn)題排查的首選工具。

          tcpdump提供了源代碼,公開了接口,因此具備很強(qiáng)的可擴(kuò)展性,對(duì)于網(wǎng)絡(luò)維護(hù)和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系統(tǒng)中,由于它需要將網(wǎng)絡(luò)界面設(shè)置為混雜模式,普通用戶不能正常執(zhí)行,但具備root權(quán)限的用戶可以直接執(zhí)行它來(lái)獲取網(wǎng)絡(luò)上的信息。因此系統(tǒng)中存在網(wǎng)絡(luò)分析工具主要不是對(duì)本機(jī)安全的威脅,而是對(duì)網(wǎng)絡(luò)上的其他計(jì)算機(jī)的安全存在威脅。

          一、概述
          顧名思義,tcpdump可以將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包的“頭”完全截獲下來(lái)提供分析。它支持針對(duì)網(wǎng)絡(luò)層、協(xié)議、主機(jī)、網(wǎng)絡(luò)或端口的過(guò)濾,并提供and、or、not等邏輯語(yǔ)句來(lái)幫助你去掉無(wú)用的信息。


          # 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

          不帶參數(shù)的tcpdump會(huì)收集網(wǎng)絡(luò)中所有的信息包頭,數(shù)據(jù)量巨大,必須過(guò)濾。

          二、選項(xiàng)介紹

          -A 以ASCII格式打印出所有分組,并將鏈路層的頭最小化。

          -c 在收到指定的數(shù)量的分組后,tcpdump就會(huì)停止。

          -C 在將一個(gè)原始分組寫入文件之前,檢查文件當(dāng)前的大小是否超過(guò)了參數(shù)file_size 中指定的大小。如果超過(guò)了指定大小,則關(guān)閉當(dāng)前文件,然后在打開一個(gè)新的文件。參數(shù) file_size 的單位是兆字節(jié)(是1,000,000字節(jié),而不是1,048,576字節(jié))。

          -d 將匹配信息包的代碼以人們能夠理解的匯編格式給出。

          -dd 將匹配信息包的代碼以c語(yǔ)言程序段的格式給出。

          -ddd 將匹配信息包的代碼以十進(jìn)制的形式給出。

          -D 打印出系統(tǒng)中所有可以用tcpdump截包的網(wǎng)絡(luò)接口。

          -e 在輸出行打印出數(shù)據(jù)鏈路層的頭部信息。

          -E 用spi@ipaddr algo:secret解密那些以addr作為地址,并且包含了安全參數(shù)索引值spi的IPsec ESP分組。

          -f 將外部的Internet地址以數(shù)字的形式打印出來(lái)。

          -F 從指定的文件中讀取表達(dá)式,忽略命令行中給出的表達(dá)式。

          -i 指定監(jiān)聽的網(wǎng)絡(luò)接口。

          -l 使標(biāo)準(zhǔn)輸出變?yōu)榫彌_行形式,可以把數(shù)據(jù)導(dǎo)出到文件。

          -L 列出網(wǎng)絡(luò)接口的已知數(shù)據(jù)鏈路。

          -m 從文件module中導(dǎo)入SMI MIB模塊定義。該參數(shù)可以被使用多次,以導(dǎo)入多個(gè)MIB模塊。

          -M 如果tcp報(bào)文中存在TCP-MD5選項(xiàng),則需要用secret作為共享的驗(yàn)證碼用于驗(yàn)證TCP-MD5選選項(xiàng)摘要(詳情可參考RFC 2385)。

          -b 在數(shù)據(jù)-鏈路層上選擇協(xié)議,包括ip、arp、rarp、ipx都是這一層的。

          -n 不把網(wǎng)絡(luò)地址轉(zhuǎn)換成名字。

          -nn 不進(jìn)行端口名稱的轉(zhuǎn)換。

          -N 不輸出主機(jī)名中的域名部分。例如,‘nic.ddn.mil‘只輸出’nic‘。

          -t 在輸出的每一行不打印時(shí)間戳。

          -O 不運(yùn)行分組分組匹配(packet-matching)代碼優(yōu)化程序。

          -P 不將網(wǎng)絡(luò)接口設(shè)置成混雜模式。

          -q 快速輸出。只輸出較少的協(xié)議信息。

          -r 從指定的文件中讀取包(這些包一般通過(guò)-w選項(xiàng)產(chǎn)生)。

          -S 將tcp的序列號(hào)以絕對(duì)值形式輸出,而不是相對(duì)值。

          -s 從每個(gè)分組中讀取最開始的snaplen個(gè)字節(jié),而不是默認(rèn)的68個(gè)字節(jié)。

          -T 將監(jiān)聽到的包直接解釋為指定的類型的報(bào)文,常見的類型有rpc遠(yuǎn)程過(guò)程調(diào)用)和snmp(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議;)。

          -t 不在每一行中輸出時(shí)間戳。

          -tt 在每一行中輸出非格式化的時(shí)間戳。

          -ttt 輸出本行和前面一行之間的時(shí)間差。

          -tttt 在每一行中輸出由date處理的默認(rèn)格式的時(shí)間戳。

          -u 輸出未解碼的NFS句柄。

          -v 輸出一個(gè)稍微詳細(xì)的信息,例如在ip包中可以包括ttl和服務(wù)類型的信息。

          -vv 輸出詳細(xì)的報(bào)文信息。

          -w 直接將分組寫入文件中,而不是不分析并打印出來(lái)。

          三、tcpdump的表達(dá)式介紹

          表達(dá)式是一個(gè)正則表達(dá)式,tcpdump利用它作為過(guò)濾報(bào)文的條件,如果一個(gè)報(bào)文滿足表 達(dá)式的條件,則這個(gè)報(bào)文將會(huì)被捕獲。如果沒(méi)有給出任何條件,則網(wǎng)絡(luò)上所有的信息包 將會(huì)被截獲。

          在表達(dá)式中一般如下幾種類型的關(guān)鍵字:

          第一種是關(guān)于類型的關(guān)鍵字,主要包括host,net,port,例如 host 210.27.48.2, 指明 210.27.48.2是一臺(tái)主機(jī),net 202.0.0.0指明202.0.0.0是一個(gè)網(wǎng)絡(luò)地址,port 23 指明端口號(hào)是23。如果沒(méi)有指定類型,缺省的類型是host。

          第二種是確定傳輸方向的關(guān)鍵字,主要包括src,dst,dst or src,dst and src, 這些關(guān)鍵字指明了傳輸?shù)姆较颉Ee例說(shuō)明,src 210.27.48.2 ,指明ip包中源地址是 210.27.48.2 , dst net 202.0.0.0 指明目的網(wǎng)絡(luò)地址是202.0.0.0。如果沒(méi)有指明 方向關(guān)鍵字,則缺省是src or dst關(guān)鍵字。

          第三種是協(xié)議的關(guān)鍵字,主要包括fddi,ip,arp,rarp,tcp,udp等類型。Fddi指明是在FDDI (分布式光纖數(shù)據(jù)接口網(wǎng)絡(luò))上的特定的網(wǎng)絡(luò)協(xié)議,實(shí)際上它是”ether”的別名,fddi和ether 具有類似的源地址和目的地址,所以可以將fddi協(xié)議包當(dāng)作ether的包進(jìn)行處理和分析。 其他的幾個(gè)關(guān)鍵字就是指明了監(jiān)聽的包的協(xié)議內(nèi)容。如果沒(méi)有指定任何協(xié)議,則tcpdump 將會(huì) 監(jiān)聽所有協(xié)議的信息包。

          除了這三種類型的關(guān)鍵字之外,其他重要的關(guān)鍵字如下:gateway, broadcast,less, greater, 還有三種邏輯運(yùn)算,取非運(yùn)算是 ‘not ‘ ‘! ‘, 與運(yùn)算是’and’,’&&’;或運(yùn)算是’or’ ,’||’; 這些關(guān)鍵字可以組合起來(lái)構(gòu)成強(qiáng)大的組合條件來(lái)滿足人們的需要。

          四、輸出結(jié)果介紹

          下面我們介紹幾種典型的tcpdump命令的輸出信息

          (1) 數(shù)據(jù)鏈路層頭信息
          使用命令:
          #tcpdump --e host ICE
          ICE 是一臺(tái)裝有l(wèi)inux的主機(jī)。它的MAC地址是0:90:27:58:AF:1A H219是一臺(tái)裝有Solaris的SUN工作站。它的MAC地址是8:0:20:79:5B:46; 上一條命令的輸出結(jié)果如下所示:

          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)

          21:50:12是顯示的時(shí)間, 847509是ID號(hào),eth0 <表示從網(wǎng)絡(luò)接口eth0接收該分組, eth0 >表示從網(wǎng)絡(luò)接口設(shè)備發(fā)送分組, 8:0:20:79:5b:46是主機(jī)H219的MAC地址, 它表明是從源地址H219發(fā)來(lái)的分組. 0:90:27:58:af:1a是主機(jī)ICE的MAC地址, 表示該分組的目的地址是ICE。 ip 是表明該分組是IP分組,60 是分組的長(zhǎng)度, h219.33357 > ICE. telnet 表明該分組是從主機(jī)H219的33357端口發(fā)往主機(jī)ICE的 TELNET(23)端口。 ack 22535 表明對(duì)序列號(hào)是222535的包進(jìn)行響應(yīng)。 win 8760表明發(fā) 送窗口的大小是8760。

          (2) ARP包的tcpdump輸出信息

          使用命令:
          #tcpdump arp

          得到的輸出結(jié)果是:

          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)

          22:32:42是時(shí)間戳, 802509是ID號(hào), eth0 >表明從主機(jī)發(fā)出該分組,arp表明是ARP請(qǐng)求包, who-has route tell ICE表明是主機(jī)ICE請(qǐng)求主機(jī)route的MAC地址。 0:90:27:58:af:1a是主機(jī) ICE的MAC地址。

          (3) TCP包的輸出信息

          用tcpdump捕獲的TCP包的一般輸出信息是:

          src > dst: flags data-seqno ack window urgent options

          src > dst:表明從源地址到目的地址, flags是TCP報(bào)文中的標(biāo)志信息,S 是SYN標(biāo)志, F (FIN), P (PUSH) , R (RST) “.” (沒(méi)有標(biāo)記); data-seqno是報(bào)文中的數(shù)據(jù) 的順序號(hào), ack是下次期望的順序號(hào), window是接收緩存的窗口大小, urgent表明 報(bào)文中是否有緊急指針。 Options是選項(xiàng)。

          (4) UDP包的輸出信息

          用tcpdump捕獲的UDP包的一般輸出信息是:

          route.port1 > ICE.port2: udp lenth

          UDP十分簡(jiǎn)單,上面的輸出行表明從主機(jī)route的port1端口發(fā)出的一個(gè)UDP報(bào)文 到主機(jī)ICE的port2端口,類型是UDP, 包的長(zhǎng)度是lenth。

          五、舉例

          (1) 想要截獲所有210.27.48.1 的主機(jī)收到的和發(fā)出的所有的分組:
          #tcpdump host 210.27.48.1

          (2) 想要截獲主機(jī)210.27.48.1 和主機(jī)210.27.48.2或210.27.48.3的通信,使用命令(注意:括號(hào)前的反斜杠是必須的):
          #tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3 )

          (3) 如果想要獲取主機(jī)210.27.48.1除了和主機(jī)210.27.48.2之外所有主機(jī)通信的ip包,使用命令:
          #tcpdump ip host 210.27.48.1 and ! 210.27.48.2

          (4) 如果想要獲取主機(jī)192.168.228.246接收或發(fā)出的ssh包,并且不轉(zhuǎn)換主機(jī)名使用如下命令:
          #tcpdump -nn -n src host 192.168.228.246 and port 22 and tcp

          (5) 獲取主機(jī)192.168.228.246接收或發(fā)出的ssh包,并把mac地址也一同顯示:
          # tcpdump -e src host 192.168.228.246 and port 22 and tcp -n -nn

          (6) 過(guò)濾的是源主機(jī)為192.168.0.1與目的網(wǎng)絡(luò)為192.168.0.0的報(bào)頭:
          tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24

          (7) 過(guò)濾源主機(jī)物理地址為XXX的報(bào)頭:
          tcpdump ether src 00:50:04:BA:9B and dst……
          (為什么ether src后面沒(méi)有host或者net?物理地址當(dāng)然不可能有網(wǎng)絡(luò)嘍)。

          (8) 過(guò)濾源主機(jī)192.168.0.1和目的端口不是telnet的報(bào)頭,并導(dǎo)入到tes.t.txt文件中:
          Tcpdump src host 192.168.0.1 and dst port not telnet -l > test.txt

          ip icmp arp rarp 和 tcp、udp、icmp這些選項(xiàng)等都要放到第一個(gè)參數(shù)的位置,用來(lái)過(guò)濾數(shù)據(jù)報(bào)的類型。

          例題:如何使用tcpdump監(jiān)聽來(lái)自eth0適配卡且通信協(xié)議為port 22,目標(biāo)來(lái)源為192.168.1.100的數(shù)據(jù)包資料?

          答:tcpdump -i eth0 -nn port 22 and src host 192.168.1.100

          例題:如何使用tcpdump抓取訪問(wèn)eth0適配卡且訪問(wèn)端口為tcp 9080?

          答:tcpdump -i eth0 dst 172.168.70.35 and tcp port 9080

          例題:如何使用tcpdump抓取與主機(jī)192.168.43.23或著與主機(jī)192.168.43.24通信報(bào)文,并且顯示在控制臺(tái)上

          tcpdump -X -s 1024 -i eth0 host (192.168.43.23 or 192.168.43.24) and  host 172.16.70.35

          posted @ 2015-08-10 08:51 Eric_jiang 閱讀(448) | 評(píng)論 (0)編輯 收藏

          Linux系統(tǒng)出現(xiàn)了性能問(wèn)題,一般我們可以通過(guò)top、iostat、free、vmstat等命令來(lái)查看初步定位問(wèn)題。其中iostat可以給我們提供豐富的IO狀態(tài)數(shù)據(jù)。

          1. 基本使用

          $iostat -d -k 1 10

          參數(shù) -d 表示,顯示設(shè)備(磁盤)使用狀態(tài);-k某些使用block為單位的列強(qiáng)制使用Kilobytes為單位;1 10表示,數(shù)據(jù)顯示每隔1秒刷新一次,共顯示10次。

          $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

          tps:該設(shè)備每秒的傳輸次數(shù)(Indicate the number of transfers per second that were issued to the device.)。“一次傳輸”意思是“一次I/O請(qǐng)求”。多個(gè)邏輯請(qǐng)求可能會(huì)被合并為“一次I/O請(qǐng)求”。“一次傳輸”請(qǐng)求的大小是未知的。

          kB_read/s:每秒從設(shè)備(drive expressed)讀取的數(shù)據(jù)量;kB_wrtn/s:每秒向設(shè)備(drive expressed)寫入的數(shù)據(jù)量;kB_read:讀取的總數(shù)據(jù)量;kB_wrtn:寫入的總數(shù)量數(shù)據(jù)量;這些單位都為Kilobytes。

          上面的例子中,我們可以看到磁盤sda以及它的各個(gè)分區(qū)的統(tǒng)計(jì)數(shù)據(jù),當(dāng)時(shí)統(tǒng)計(jì)的磁盤總TPS是39.29,下面是各個(gè)分區(qū)的TPS。(因?yàn)槭撬查g值,所以總TPS并不嚴(yán)格等于各個(gè)分區(qū)TPS的總和)

          2. -x 參數(shù)

          使用-x參數(shù)我們可以獲得更多統(tǒng)計(jì)信息。

          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/s:每秒這個(gè)設(shè)備相關(guān)的讀取請(qǐng)求有多少被Merge了(當(dāng)系統(tǒng)調(diào)用需要讀取數(shù)據(jù)的時(shí)候,VFS將請(qǐng)求發(fā)到各個(gè)FS,如果FS發(fā)現(xiàn)不同的讀取請(qǐng)求讀取的是相同Block的數(shù)據(jù),F(xiàn)S會(huì)將這個(gè)請(qǐng)求合并Merge);wrqm/s:每秒這個(gè)設(shè)備相關(guān)的寫入請(qǐng)求有多少被Merge了。

          rsec/s:每秒讀取的扇區(qū)數(shù);wsec/:每秒寫入的扇區(qū)數(shù)。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;

          await:每一個(gè)IO請(qǐng)求的處理的平均時(shí)間(單位是微秒毫秒)。這里可以理解為IO的響應(yīng)時(shí)間,一般地系統(tǒng)IO響應(yīng)時(shí)間應(yīng)該低于5ms,如果大于10ms就比較大了。

          %util:在統(tǒng)計(jì)時(shí)間內(nèi)所有處理IO時(shí)間,除以總共統(tǒng)計(jì)時(shí)間。例如,如果統(tǒng)計(jì)間隔1秒,該設(shè)備有0.8秒在處理IO,而0.2秒閑置,那么該設(shè)備的%util = 0.8/1 = 80%,所以該參數(shù)暗示了設(shè)備的繁忙程度。一般地,如果該參數(shù)是100%表示設(shè)備已經(jīng)接近滿負(fù)荷運(yùn)行了(當(dāng)然如果是多磁盤,即使%util是100%,因?yàn)榇疟P的并發(fā)能力,所以磁盤使用未必就到了瓶頸)。

          3. -c 參數(shù)

          iostat還可以用來(lái)獲取cpu部分狀態(tài)值:

          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 #查看設(shè)備使用率(%util)、響應(yīng)時(shí)間(await) iostat -c 1 10 #查看cpu狀態(tài)

          5. 實(shí)例分析

          $$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

          上面看到,磁盤每秒傳輸次數(shù)平均約400;每秒磁盤讀取約5MB,寫入約1MB。

          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

          可以看到磁盤的平均響應(yīng)時(shí)間<5ms,磁盤使用率>80。磁盤響應(yīng)正常,但是已經(jīng)很繁忙了。

          參考文獻(xiàn):

          1. Linux man iostat
          2. How Linux iostat computes its results
          3. Linux iostat
          posted @ 2015-07-29 10:54 Eric_jiang 閱讀(349) | 評(píng)論 (0)編輯 收藏

          一般對(duì)負(fù)載均衡的使用是隨著網(wǎng)站規(guī)模的提升根據(jù)不同的階段來(lái)使用不同的技術(shù)。具體的應(yīng)用需求還得具體分析,如果是中小型的Web應(yīng)用,比如日PV小于1000萬(wàn),用Nginx就完全可以了;如果機(jī)器不少,可以用DNS輪詢,LVS所耗費(fèi)的機(jī)器還是比較多的;大型網(wǎng)站或重要的服務(wù),且服務(wù)器比較多時(shí),可以考慮用LVS。

          AD:


          PS:Nginx/LVS/HAProxy是目前使用最廣泛的三種負(fù)載均衡軟件,本人都在多個(gè)項(xiàng)目中實(shí)施過(guò),參考了一些資料,結(jié)合自己的一些使用經(jīng)驗(yàn),總結(jié)一下。

          一般對(duì)負(fù)載均衡的使用是隨著網(wǎng)站規(guī)模的提升根據(jù)不同的階段來(lái)使用不同的技術(shù)。具體的應(yīng)用需求還得具體分析,如果是中小型的Web應(yīng)用,比如日PV小于1000萬(wàn),用Nginx就完全可以了;如果機(jī)器不少,可以用DNS輪詢,LVS所耗費(fèi)的機(jī)器還是比較多的;大型網(wǎng)站或重要的服務(wù),且服務(wù)器比較多時(shí),可以考慮用LVS。

          一種是通過(guò)硬件來(lái)進(jìn)行進(jìn)行,常見的硬件有比較昂貴的F5和Array等商用的負(fù)載均衡器,它的優(yōu)點(diǎn)就是有專業(yè)的維護(hù)團(tuán)隊(duì)來(lái)對(duì)這些服務(wù)進(jìn)行維護(hù)、缺點(diǎn)就是花銷太大,所以對(duì)于規(guī)模較小的網(wǎng)絡(luò)服務(wù)來(lái)說(shuō)暫時(shí)還沒(méi)有需要使用;另外一種就是類似于Nginx/LVS/HAProxy的基于Linux的開源免費(fèi)的負(fù)載均衡軟件,這些都是通過(guò)軟件級(jí)別來(lái)實(shí)現(xiàn),所以費(fèi)用非常低廉。

          目前關(guān)于網(wǎng)站架構(gòu)一般比較合理流行的架構(gòu)方案:Web前端采用Nginx/HAProxy+Keepalived作負(fù)載均衡器;后端采用MySQL數(shù)據(jù)庫(kù)一主多從和讀寫分離,采用LVS+Keepalived的架構(gòu)。當(dāng)然要根據(jù)項(xiàng)目具體需求制定方案。

          下面說(shuō)說(shuō)各自的特點(diǎn)和適用場(chǎng)合。

          Nginx的優(yōu)點(diǎn)是:

          1、工作在網(wǎng)絡(luò)的7層之上,可以針對(duì)http應(yīng)用做一些分流的策略,比如針對(duì)域名、目錄結(jié)構(gòu),它的正則規(guī)則比HAProxy更為強(qiáng)大和靈活,這也是它目前廣泛流行的主要原因之一,Nginx單憑這點(diǎn)可利用的場(chǎng)合就遠(yuǎn)多于LVS了。

          2、Nginx對(duì)網(wǎng)絡(luò)穩(wěn)定性的依賴非常小,理論上能ping通就就能進(jìn)行負(fù)載功能,這個(gè)也是它的優(yōu)勢(shì)之一;相反LVS對(duì)網(wǎng)絡(luò)穩(wěn)定性依賴比較大,這點(diǎn)本人深有體會(huì);

          3、Nginx安裝和配置比較簡(jiǎn)單,測(cè)試起來(lái)比較方便,它基本能把錯(cuò)誤用日志打印出來(lái)。LVS的配置、測(cè)試就要花比較長(zhǎng)的時(shí)間了,LVS對(duì)網(wǎng)絡(luò)依賴比較大。

          3、可以承擔(dān)高負(fù)載壓力且穩(wěn)定,在硬件不差的情況下一般能支撐幾萬(wàn)次的并發(fā)量,負(fù)載度比LVS相對(duì)小些。

          4、Nginx可以通過(guò)端口檢測(cè)到服務(wù)器內(nèi)部的故障,比如根據(jù)服務(wù)器處理網(wǎng)頁(yè)返回的狀態(tài)碼、超時(shí)等等,并且會(huì)把返回錯(cuò)誤的請(qǐng)求重新提交到另一個(gè)節(jié)點(diǎn),不過(guò)其中缺點(diǎn)就是不支持url來(lái)檢測(cè)。比如用戶正在上傳一個(gè)文件,而處理該上傳的節(jié)點(diǎn)剛好在上傳過(guò)程中出現(xiàn)故障,Nginx會(huì)把上傳切到另一臺(tái)服務(wù)器重新處理,而LVS就直接斷掉了,如果是上傳一個(gè)很大的文件或者很重要的文件的話,用戶可能會(huì)因此而不滿。

          5、Nginx不僅僅是一款優(yōu)秀的負(fù)載均衡器/反向代理軟件,它同時(shí)也是功能強(qiáng)大的Web應(yīng)用服務(wù)器。LNMP也是近幾年非常流行的web架構(gòu),在高流量的環(huán)境中穩(wěn)定性也很好。

          6、Nginx現(xiàn)在作為Web反向加速緩存越來(lái)越成熟了,速度比傳統(tǒng)的Squid服務(wù)器更快,可以考慮用其作為反向代理加速器。

          7、Nginx可作為中層反向代理使用,這一層面Nginx基本上無(wú)對(duì)手,唯一可以對(duì)比Nginx的就只有lighttpd了,不過(guò)lighttpd目前還沒(méi)有做到Nginx完全的功能,配置也不那么清晰易讀,社區(qū)資料也遠(yuǎn)遠(yuǎn)沒(méi)Nginx活躍。

          8、Nginx也可作為靜態(tài)網(wǎng)頁(yè)和圖片服務(wù)器,這方面的性能也無(wú)對(duì)手。還有Nginx社區(qū)非常活躍,第三方模塊也很多。

          Nginx的缺點(diǎn)是:

          1、Nginx僅能支持http、https和Email協(xié)議,這樣就在適用范圍上面小些,這個(gè)是它的缺點(diǎn)。

          2、對(duì)后端服務(wù)器的健康檢查,只支持通過(guò)端口來(lái)檢測(cè),不支持通過(guò)url來(lái)檢測(cè)。不支持Session的直接保持,但能通過(guò)ip_hash來(lái)解決。

          LVS:使用Linux內(nèi)核集群實(shí)現(xiàn)一個(gè)高性能、高可用的負(fù)載均衡服務(wù)器,它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。

          LVS的優(yōu)點(diǎn)是:

          1、抗負(fù)載能力強(qiáng)、是工作在網(wǎng)絡(luò)4層之上僅作分發(fā)之用,沒(méi)有流量的產(chǎn)生,這個(gè)特點(diǎn)也決定了它在負(fù)載均衡軟件里的性能最強(qiáng)的,對(duì)內(nèi)存和cpu資源消耗比較低。

          2、配置性比較低,這是一個(gè)缺點(diǎn)也是一個(gè)優(yōu)點(diǎn),因?yàn)闆](méi)有可太多配置的東西,所以并不需要太多接觸,大大減少了人為出錯(cuò)的幾率。

          3、工作穩(wěn)定,因?yàn)槠浔旧砜关?fù)載能力很強(qiáng),自身有完整的雙機(jī)熱備方案,如LVS+Keepalived,不過(guò)我們?cè)陧?xiàng)目實(shí)施中用得最多的還是LVS/DR+Keepalived。

          4、無(wú)流量,LVS只分發(fā)請(qǐng)求,而流量并不從它本身出去,這點(diǎn)保證了均衡器IO的性能不會(huì)收到大流量的影響。

          5、應(yīng)用范圍比較廣,因?yàn)長(zhǎng)VS工作在4層,所以它幾乎可以對(duì)所有應(yīng)用做負(fù)載均衡,包括http、數(shù)據(jù)庫(kù)、在線聊天室等等。

          LVS的缺點(diǎn)是:

          1、軟件本身不支持正則表達(dá)式處理,不能做動(dòng)靜分離;而現(xiàn)在許多網(wǎng)站在這方面都有較強(qiáng)的需求,這個(gè)是Nginx/HAProxy+Keepalived的優(yōu)勢(shì)所在。

          2、如果是網(wǎng)站應(yīng)用比較龐大的話,LVS/DR+Keepalived實(shí)施起來(lái)就比較復(fù)雜了,特別后面有Windows Server的機(jī)器的話,如果實(shí)施及配置還有維護(hù)過(guò)程就比較復(fù)雜了,相對(duì)而言,Nginx/HAProxy+Keepalived就簡(jiǎn)單多了。

          HAProxy的特點(diǎn)是:

          1、HAProxy也是支持虛擬主機(jī)的。

          2、HAProxy的優(yōu)點(diǎn)能夠補(bǔ)充Nginx的一些缺點(diǎn),比如支持Session的保持,Cookie的引導(dǎo);同時(shí)支持通過(guò)獲取指定的url來(lái)檢測(cè)后端服務(wù)器的狀態(tài)。

          3、HAProxy跟LVS類似,本身就只是一款負(fù)載均衡軟件;單純從效率上來(lái)講HAProxy會(huì)比Nginx有更出色的負(fù)載均衡速度,在并發(fā)處理上也是優(yōu)于Nginx的。

          4、HAProxy支持TCP協(xié)議的負(fù)載均衡轉(zhuǎn)發(fā),可以對(duì)MySQL讀進(jìn)行負(fù)載均衡,對(duì)后端的MySQL節(jié)點(diǎn)進(jìn)行檢測(cè)和負(fù)載均衡,大家可以用LVS+Keepalived對(duì)MySQL主從做負(fù)載均衡。

          5、HAProxy負(fù)載均衡策略非常多,HAProxy的負(fù)載均衡算法現(xiàn)在具體有如下8種:

          ① roundrobin,表示簡(jiǎn)單的輪詢,這個(gè)不多說(shuō),這個(gè)是負(fù)載均衡基本都具備的;

          ② static-rr,表示根據(jù)權(quán)重,建議關(guān)注;

          ③ leastconn,表示最少連接者先處理,建議關(guān)注;

          ④ source,表示根據(jù)請(qǐng)求源IP,這個(gè)跟Nginx的IP_hash機(jī)制類似,我們用其作為解決session問(wèn)題的一種方法,建議關(guān)注;

          ⑤ ri,表示根據(jù)請(qǐng)求的URI;

          ⑥ rl_param,表示根據(jù)請(qǐng)求的URl參數(shù)’balance url_param’ requires an URL parameter name;

          ⑦ hdr(name),表示根據(jù)HTTP請(qǐng)求頭來(lái)鎖定每一次HTTP請(qǐng)求;

          ⑧ rdp-cookie(name),表示根據(jù)據(jù)cookie(name)來(lái)鎖定并哈希每一次TCP請(qǐng)求。

          Nginx和LVS對(duì)比的總結(jié):

          1、Nginx工作在網(wǎng)絡(luò)的7層,所以它可以針對(duì)http應(yīng)用本身來(lái)做分流策略,比如針對(duì)域名、目錄結(jié)構(gòu)等,相比之下LVS并不具備這樣的功能,所以Nginx單憑這點(diǎn)可利用的場(chǎng)合就遠(yuǎn)多于LVS了;但Nginx有用的這些功能使其可調(diào)整度要高于LVS,所以經(jīng)常要去觸碰觸碰,觸碰多了,人為出問(wèn)題的幾率也就會(huì)大。

          2、Nginx對(duì)網(wǎng)絡(luò)穩(wěn)定性的依賴較小,理論上只要ping得通,網(wǎng)頁(yè)訪問(wèn)正常,Nginx就能連得通,這是Nginx的一大優(yōu)勢(shì)!Nginx同時(shí)還能區(qū)分內(nèi)外網(wǎng),如果是同時(shí)擁有內(nèi)外網(wǎng)的節(jié)點(diǎn),就相當(dāng)于單機(jī)擁有了備份線路;LVS就比較依賴于網(wǎng)絡(luò)環(huán)境,目前來(lái)看服務(wù)器在同一網(wǎng)段內(nèi)并且LVS使用direct方式分流,效果較能得到保證。另外注意,LVS需要向托管商至少申請(qǐng)多一個(gè)ip來(lái)做Visual IP,貌似是不能用本身的IP來(lái)做VIP的。要做好LVS管理員,確實(shí)得跟進(jìn)學(xué)習(xí)很多有關(guān)網(wǎng)絡(luò)通信方面的知識(shí),就不再是一個(gè)HTTP那么簡(jiǎn)單了。

          3、Nginx安裝和配置比較簡(jiǎn)單,測(cè)試起來(lái)也很方便,因?yàn)樗灸馨彦e(cuò)誤用日志打印出來(lái)。LVS的安裝和配置、測(cè)試就要花比較長(zhǎng)的時(shí)間了;LVS對(duì)網(wǎng)絡(luò)依賴比較大,很多時(shí)候不能配置成功都是因?yàn)榫W(wǎng)絡(luò)問(wèn)題而不是配置問(wèn)題,出了問(wèn)題要解決也相應(yīng)的會(huì)麻煩得多。

          4、Nginx也同樣能承受很高負(fù)載且穩(wěn)定,但負(fù)載度和穩(wěn)定度差LVS還有幾個(gè)等級(jí):Nginx處理所有流量所以受限于機(jī)器IO和配置;本身的bug也還是難以避免的。

          5、Nginx可以檢測(cè)到服務(wù)器內(nèi)部的故障,比如根據(jù)服務(wù)器處理網(wǎng)頁(yè)返回的狀態(tài)碼、超時(shí)等等,并且會(huì)把返回錯(cuò)誤的請(qǐng)求重新提交到另一個(gè)節(jié)點(diǎn)。目前LVS中 ldirectd也能支持針對(duì)服務(wù)器內(nèi)部的情況來(lái)監(jiān)控,但LVS的原理使其不能重發(fā)請(qǐng)求。比如用戶正在上傳一個(gè)文件,而處理該上傳的節(jié)點(diǎn)剛好在上傳過(guò)程中出現(xiàn)故障,Nginx會(huì)把上傳切到另一臺(tái)服務(wù)器重新處理,而LVS就直接斷掉了,如果是上傳一個(gè)很大的文件或者很重要的文件的話,用戶可能會(huì)因此而惱火。

          6、Nginx對(duì)請(qǐng)求的異步處理可以幫助節(jié)點(diǎn)服務(wù)器減輕負(fù)載,假如使用apache直接對(duì)外服務(wù),那么出現(xiàn)很多的窄帶鏈接時(shí)apache服務(wù)器將會(huì)占用大 量?jī)?nèi)存而不能釋放,使用多一個(gè)Nginx做apache代理的話,這些窄帶鏈接會(huì)被Nginx擋住,apache上就不會(huì)堆積過(guò)多的請(qǐng)求,這樣就減少了相當(dāng)多的資源占用。這點(diǎn)使用squid也有相同的作用,即使squid本身配置為不緩存,對(duì)apache還是有很大幫助的。

          7、Nginx能支持http、https和email(email的功能比較少用),LVS所支持的應(yīng)用在這點(diǎn)上會(huì)比Nginx更多。在使用上,一般最前端所采取的策略應(yīng)是LVS,也就是DNS的指向應(yīng)為L(zhǎng)VS均衡器,LVS的優(yōu)點(diǎn)令它非常適合做這個(gè)任務(wù)。重要的ip地址,最好交由LVS托管,比如數(shù)據(jù)庫(kù)的 ip、webservice服務(wù)器的ip等等,這些ip地址隨著時(shí)間推移,使用面會(huì)越來(lái)越大,如果更換ip則故障會(huì)接踵而至。所以將這些重要ip交給 LVS托管是最為穩(wěn)妥的,這樣做的唯一缺點(diǎn)是需要的VIP數(shù)量會(huì)比較多。Nginx可作為L(zhǎng)VS節(jié)點(diǎn)機(jī)器使用,一是可以利用Nginx的功能,二是可以利用Nginx的性能。當(dāng)然這一層面也可以直接使用squid,squid的功能方面就比Nginx弱不少了,性能上也有所遜色于Nginx。Nginx也可作為中層代理使用,這一層面Nginx基本上無(wú)對(duì)手,唯一可以撼動(dòng)Nginx的就只有l(wèi)ighttpd了,不過(guò)lighttpd目前還沒(méi)有能做到 Nginx完全的功能,配置也不那么清晰易讀。另外,中層代理的IP也是重要的,所以中層代理也擁有一個(gè)VIP和LVS是最完美的方案了。具體的應(yīng)用還得具體分析,如果是比較小的網(wǎng)站(日PV小于1000萬(wàn)),用Nginx就完全可以了,如果機(jī)器也不少,可以用DNS輪詢,LVS所耗費(fèi)的機(jī)器還是比較多的;大型網(wǎng)站或者重要的服務(wù),機(jī)器不發(fā)愁的時(shí)候,要多多考慮利用LVS。

          現(xiàn)在對(duì)網(wǎng)絡(luò)負(fù)載均衡的使用是隨著網(wǎng)站規(guī)模的提升根據(jù)不同的階段來(lái)使用不同的技術(shù):

          第一階段:利用Nginx或HAProxy進(jìn)行單點(diǎn)的負(fù)載均衡,這一階段服務(wù)器規(guī)模剛脫離開單服務(wù)器、單數(shù)據(jù)庫(kù)的模式,需要一定的負(fù)載均衡,但是仍然規(guī)模較小沒(méi)有專業(yè)的維護(hù)團(tuán)隊(duì)來(lái)進(jìn)行維護(hù),也沒(méi)有需要進(jìn)行大規(guī)模的網(wǎng)站部署。這樣利用Nginx或HAproxy就是第一選擇,此時(shí)這些東西上手快, 配置容易,在七層之上利用HTTP協(xié)議就可以。這時(shí)是第一選擇。

          第二階段:隨著網(wǎng)絡(luò)服務(wù)進(jìn)一步擴(kuò)大,這時(shí)單點(diǎn)的Nginx已經(jīng)不能滿足,這時(shí)使用LVS或者商用Array就是首要選擇,Nginx此時(shí)就作為L(zhǎng)VS或者Array的節(jié)點(diǎn)來(lái)使用,具體LVS或Array的是選擇是根據(jù)公司規(guī)模和預(yù)算來(lái)選擇,Array的應(yīng)用交付功能非常強(qiáng)大,本人在某項(xiàng)目中使用過(guò),性價(jià)比也遠(yuǎn)高于F5,商用首選!但是一般來(lái)說(shuō)這階段相關(guān)人才跟不上業(yè)務(wù)的提升,所以購(gòu)買商業(yè)負(fù)載均衡已經(jīng)成為了必經(jīng)之路。

          第三階段:這時(shí)網(wǎng)絡(luò)服務(wù)已經(jīng)成為主流產(chǎn)品,此時(shí)隨著公司知名度也進(jìn)一步擴(kuò)展,相關(guān)人才的能力以及數(shù)量也隨之提升,這時(shí)無(wú)論從開發(fā)適合自身產(chǎn)品的定制,以及降低成本來(lái)講開源的LVS,已經(jīng)成為首選,這時(shí)LVS會(huì)成為主流。

          最終形成比較理想的基本架構(gòu)為:Array/LVS — Nginx/Haproxy — Squid/Varnish — AppServer

          原文鏈接:http://www.ha97.com/5646.html

          【編輯推薦】

          posted @ 2015-07-27 15:37 Eric_jiang 閱讀(431) | 評(píng)論 (0)編輯 收藏

          1、date --help

          %% 輸出%符號(hào) a literal %
          %a 當(dāng)前域的星期縮寫 locale’s abbreviated weekday name (Sun..Sat)
          %A 當(dāng)前域的星期全寫 locale’s full weekday name, variable length (Sunday..Saturday)
          %b 當(dāng)前域的月份縮寫 locale’s abbreviated month name (Jan..Dec)
          %B 當(dāng)前域的月份全稱 locale’s full month name, variable length (January..December)
          %c 當(dāng)前域的默認(rèn)時(shí)間格式 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 短時(shí)間格式 date (mm/dd/yy)
          %e 短格式天 day of month, blank padded ( 1..31)
          %F 文件時(shí)間格式 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小時(shí)制的小時(shí) hour (00..23)
          %I 12小時(shí)制的小時(shí) hour (01..12)
          %j 一年中的第幾天 day of year (001..366)
          %k 短格式24小時(shí)制的小時(shí) hour ( 0..23)
          %l 短格式12小時(shí)制的小時(shí) hour ( 1..12)
          %m 雙位月份 month (01..12)
          %M 雙位分鐘 minute (00..59)
          %n 換行 a newline
          %N 十億分之一秒 nanoseconds (000000000..999999999)
          %p 大寫的當(dāng)前域的上下午指示 locale’s upper case AM or PM indicator (blank in many locales)
          %P 小寫的當(dāng)前域的上下午指示 locale’s lower case am or pm indicator (blank in many locales)
          %r 12小時(shí)制的時(shí)間表示(時(shí):分:秒,雙位) time, 12-hour (hh:mm:ss [AP]M)
          %R 24小時(shí)制的時(shí)間表示 (時(shí):分,雙位)time, 24-hour (hh:mm)
          %s 自基礎(chǔ)時(shí)間 1970-01-01 00:00:00 到當(dāng)前時(shí)刻的秒數(shù) seconds since `00:00:00 1970-01-01 UTC’ (a GNU extension)
          %S 雙位秒 second (00..60); the 60 is necessary to accommodate a leap second
          %t 橫向制表位(tab) a horizontal tab
          %T 24小時(shí)制時(shí)間表示 time, 24-hour (hh:mm:ss)
          %u 數(shù)字表示的星期(從星期一開始 1-7)day of week (1..7); 1 represents Monday
          %U 一年中的第幾周星期天為開始 week number of year with Sunday as first day of week (00..53)
          %V 一年中的第幾周星期一為開始 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 一年中的第幾周星期一為開始 week number of year with Monday as first day of week (00..53)
          %x 本地日期格式 locale’s date representation (mm/dd/yy)
          %X 本地時(shí)間格式 locale’s time representation (%H:%M:%S)
          %y 兩位的年 last two digits of year (00..99)
          %Y 年 year (1970…)
          %z RFC-2822 標(biāo)準(zhǔn)時(shí)間格式表示的域 RFC-2822 style numeric timezone (-0500) (a nonstandard extension)
          %Z 時(shí)間域 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、一些用法

          1)#以yymmdd的格式輸出43天前的當(dāng)前時(shí)刻

          date +%Y%m%d --date='43 days ago'       

           

          2)# 測(cè)試十億分之一秒
          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’

          3)#創(chuàng)建以當(dāng)前時(shí)間為文件名的目錄
          mkdir `date +%Y%m%d`

           

          4)#備份以時(shí)間做為文件名的
          tar -cvf ./htdocs`date +%Y%m%d`.tar ./*

           

          5)#顯示時(shí)間后跳行,再顯示目前日期 

          date +%T%n%Y%m%d

           

          6)#只顯示月份與日數(shù) 

          date +%B%d

           

          7)#獲取上周日期(day,month,year,hour)

          date -d "-1 week" +%Y%m%d   

           

          8)#獲取24小時(shí)前日期

          date --date="-24 hour" +%Y%m%d

           

          9)#shell腳本里面賦給變量值

          date_now=`date +%s`

           

          10)#計(jì)算執(zhí)行一段sql腳本的運(yùn)行時(shí)間

           

          TIME_BEGIN=$(date '+%s.%N')
          $sqlcli < queries/q1.3.sql 1>> $FILE_RESULT  2>> $FILE_ERROR
          TIME_END=$(date '+%s.%N')
          TIME_RUN=$(awk 'BEGIN{print '$TIME_END' - '$TIME_BEGIN'}')

           

          11)#編寫shell腳本計(jì)算離自己生日還有多少天?

              read -p "Input your birthday(YYYYmmdd):" date1

            m=`date --date="$date1" +%m`    #得到生日的月

            d=`date --date="$date1" +%d`    #得到生日的日

            date_now=`date +%s`             #得到當(dāng)前時(shí)間的秒值

            y=`date +%Y`                    #得到當(dāng)前時(shí)間的年

            birth=`date --date="$y$m$d" +%s`      #得到今年的生日日期的秒值

            internal=$(($birth-$date_now))        #計(jì)算今日到生日日期的間隔時(shí)間

            if [ "$internal" -lt "0" ]; then             #判斷今天的生日是否已過(guò)

            birth=`date --date="$(($y+1))$m$d" +%s`      #得到明天的生日日期秒值

            internal=$(($birth-$date_now))               #計(jì)算今天到下一個(gè)生日的間隔時(shí)間

            fi

            echo "There is :$((einternal/60/60/24)) days."       #輸出結(jié)果,秒換算為天

           

           

          12)#若是不以加號(hào)作為開頭,則表示要設(shè)定時(shí)間,而時(shí)間格式為 MMDDhhmm[[CC]YY][.ss],

          其中 MM 為月份,

          DD 為日,

          hh 為小時(shí),

          mm 為分鐘,

          CC 為年份前兩位數(shù)字,

          YY 為年份后兩位數(shù)字,

          ss 為秒數(shù)

           

          13)

          #顯示目前的格林威治時(shí)間,也叫“世界時(shí)”。是英國(guó)的標(biāo)準(zhǔn)時(shí)間,也是世界各地時(shí)間的參考標(biāo)準(zhǔn)。中英兩國(guó)的標(biāo)準(zhǔn)時(shí)差為8個(gè)小時(shí),即英國(guó)的當(dāng)?shù)貢r(shí)間比中國(guó)的北京時(shí)間晚8小時(shí)。

          date -u              
          Thu Sep 28 09:32:04 UTC 2006

           

          14)#修改時(shí)間

          date -s
          按字符串方式修改時(shí)間
          可以只修改日期,不修改時(shí)間,輸入: date -s 2007-08-03
          只修改時(shí)間,輸入:date -s 14:15:00
          同時(shí)修改日期時(shí)間,注意要加雙引號(hào),日期與時(shí)間之間有一空格,輸入:date -s "2007-08-03 14:15:00"

          修改完后,記得輸入:clock -w
          把系統(tǒng)時(shí)間寫入CMOS

          posted @ 2015-07-23 15:50 Eric_jiang 閱讀(446) | 評(píng)論 (0)編輯 收藏

          增加GC相關(guān)選項(xiàng):

          1. -verbose:gc
          2. -XX:+UseGCLogFileRotation
          3. -XX:NumberOfGCLogFiles=5
          4. -XX:GCLogFileSize=512K
          5. -XX:+PrintGCDetails
          6. -XX:+PrintGCTimeStamps
          7. -XX:+PrintGCDateStamps
          8. -XX:+PrintTenuringDistribution
          9. -XX:+PrintGCApplicationStoppedTime
          10. -Xloggc:/var/app/log/Push-server/gc.log
          1. 如果不能確定所需內(nèi)存,使用自動(dòng)jvm自動(dòng)調(diào)優(yōu);
          2. 大致確定所需內(nèi)存后,使用-Xmx -Xms設(shè)置堆大小;
          3. 觀察GC log確定FullGC后剩余堆大小(即為活躍數(shù)據(jù)大小);
          4. 整個(gè)堆大小宜為老年代活躍數(shù)據(jù)大小的3-4倍;
          5. 永久帶大小應(yīng)該比永久帶活躍數(shù)據(jù)大1.2~1.5倍;
          6. 新生代空間應(yīng)該為老年代空間活躍數(shù)據(jù)的1~1.5倍;
          7. 通過(guò)top命令觀察棧占用空間、直接內(nèi)存占用空間,決定所需機(jī)器內(nèi)存大小;
          8. 新生代大小決定了Minor GC的周期和時(shí)長(zhǎng),縮短新生代大小可以減少停頓時(shí)長(zhǎng),但是增加了GC頻率;在調(diào)整新生代大小時(shí),盡量保持老年代大小不變;
          9. 老年代大小不應(yīng)該小于活躍數(shù)據(jù)的1.5倍;新生代空間至少為java堆大小的10%;增加堆大小時(shí),注意不要超過(guò)可用物理內(nèi)存數(shù);
          10. 從throughput收集器遷移到CMS時(shí),需要將老年代空間增加20%~30%;
          11. 新生代分為Eden和Survivor兩部分,Survivor可以通過(guò)-XX:SurvivorRatio=xx來(lái)控制,對(duì)應(yīng)的大小為-Xmn<value>/(ratio+2)
          12. 通過(guò)-XX:MaxTenuringThreshold=<n>來(lái)指定晉升閾值(年齡),n為0~15之間;
          13. 期望Survivor空間為剩余總存活對(duì)象大小的2倍(age=1;
          14. 注意調(diào)節(jié)Survivor大小時(shí),保持Eden大小不變;
          15. 如果Survivor空間足夠大,且對(duì)象大部分并未到達(dá)老年代,那么就可以將晉升年紀(jì)指定的足夠大(15)。在Eden與Survivor之間復(fù)制和CMS老年代空間壓縮之間,我們寧愿選擇前者;
          16. CMS必須能以對(duì)象從新生代提升到老年代的同等速度對(duì)老年代中的對(duì)象進(jìn)行收集,否則,就會(huì)失速;
          17. 如果觀察到'concurrent mode failures',意味著失速已經(jīng)發(fā)生,必須減少-XX:CMSInitiatingOccupancyFraction=<percent>的值;
          18. 使用上述選項(xiàng)的同時(shí),最好同時(shí)使用-XX:+UseCMSInitiatingOccupancyOnly,強(qiáng)制使用該比例,該比例的大小應(yīng)該大于老年代占用空間和活躍數(shù)據(jù)大小之比,一般而言老年代大小*該比例>1.5*老年代活躍數(shù)據(jù)大小
          19. 使用-XX:+ExplicitGCInvokesConcurrentAndUnloadsCloasses可以使用CMS進(jìn)行顯式垃圾回收(System.gc());通過(guò)-XX:+DisableExplicitGC關(guān)閉顯示垃圾回收(慎用);
          20. 使用-XX:+CMSClassUnloadingEnabled打開永久帶垃圾回收,使用-XX:+CMSPermGenSweepingEnabled打開CMS對(duì)永久帶的掃描;使用-XX:CMSInitiatingPermOccupancyFraction=<perscent>激活回收比例閾值;
          21. 使用-XX:ParallelGCThreads=<n>控制掃描線程數(shù);使用-XX:+CMSScavengeBeforeRemark強(qiáng)制重新標(biāo)記前進(jìn)行一次MinorGC;如果由大量的引用對(duì)象或可終結(jié)對(duì)象要處理,使用-XX:+ParallelRefProcEnabled
          22. CMS包括Minor GC所帶來(lái)的開銷應(yīng)該小于10%;
          23. 如果缺少長(zhǎng)時(shí)間調(diào)優(yōu)的條件,安全起見,可以使用G1,僅設(shè)置如下參數(shù)即可:
          1. -d64
          2. -Xmx5g
          3. -Xms5g
          4. -XX:PermSize=100m
          5. -XX:MaxPermSize=100m
          6. -XX:MaxDirectMemorySize=1g
          7. -XX:+UseG1GC
          8. -XX:MaxGCPauseMillis=80

          G1不必明確設(shè)置新生代大小,其自動(dòng)調(diào)優(yōu)也十分可靠,對(duì)于停頓時(shí)間往往在長(zhǎng)時(shí)間運(yùn)行后可以達(dá)到預(yù)期效果;對(duì)吞吐量?jī)?yōu)先的應(yīng)用,可能不是那么明顯。

          posted @ 2015-07-23 14:30 Eric_jiang 閱讀(1630) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 大化| 枣庄市| 昌邑市| 娄底市| 吉林省| 龙江县| 通道| 桐乡市| 昆明市| 梓潼县| 阿克陶县| 沅江市| 湘乡市| 古交市| 巴林左旗| 台东县| 霍林郭勒市| 定西市| 苍溪县| 高安市| 乡宁县| 南华县| 咸丰县| 五原县| 中山市| 壶关县| 汝南县| 沁源县| 海丰县| 罗城| 湖州市| 始兴县| 门源| 即墨市| 若尔盖县| 泽库县| 微博| 桦甸市| 勃利县| 炎陵县| 洛阳市|