亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Nginx的可擴展負(fù)載均衡Web站點部署

        2014-03-17 01:08:42任世宗李潤知張茜王宗敏
        中國教育網(wǎng)絡(luò) 2014年8期
        關(guān)鍵詞:系統(tǒng)資源內(nèi)存利用率

        文/任世宗 李潤知 張茜 王宗敏

        基于Nginx的可擴展負(fù)載均衡Web站點部署

        文/任世宗 李潤知 張茜 王宗敏

        隨著網(wǎng)絡(luò)服務(wù)的日趨完善,我們在獲得方便的同時,也面臨著巨大的挑戰(zhàn):并發(fā)業(yè)務(wù)訪問數(shù)量的直線增長,是網(wǎng)絡(luò)中的Web服務(wù)器工作能力的嚴(yán)峻考驗。

        采用多服務(wù)器集群技術(shù)是解決上述問題的有效方案,而負(fù)載均衡是集群技術(shù)的核心問題。負(fù)載均衡能夠?qū)⒋罅康牟l(fā)訪問請求合理地均分到集群內(nèi)的各服務(wù)器上進(jìn)行處理,有效地避免了單一服務(wù)器數(shù)據(jù)流過大的問題,同時能夠使各個服務(wù)器的資源得到均衡的使用。負(fù)載均衡包括硬件和軟件兩種類型,硬件的成本高昂,軟件的負(fù)載均衡配置部署靈活,越來越受到人們的親睞。

        Nginx是中小企業(yè)軟件負(fù)載均衡的不錯選擇。Nginx支持高并發(fā),官方測試可支持5萬的并發(fā)連接。進(jìn)程消耗內(nèi)存少,每個Nginx進(jìn)程僅消耗十幾兆的內(nèi)存。Nginx作為開源軟件,成本低廉。另外,Nginx配置文件簡單,穩(wěn)定性高,且非常易于部署。但是Nginx也存在一些問題:它作為反向代理服務(wù)器時,連接的后端物理Web應(yīng)用服務(wù)器(如Apache、IIS等)性能無法得到充分利用,不易于根據(jù)業(yè)務(wù)并發(fā)量動態(tài)的調(diào)整后端服務(wù)器的數(shù)量,負(fù)載均衡的效果不是特別理想。

        本文提出了用Nginx反向代理虛擬機的方式實現(xiàn)Web站點的負(fù)載均衡,既充分的利用了CPU、內(nèi)存等硬件資源,又滿足了高并發(fā)的需求,并且具有非常好的擴展性。

        Nginx的配置優(yōu)化

        如圖1所示,我們對服務(wù)A啟用A1、A2兩臺虛擬機,部署到兩臺不同的物理機上,對服務(wù)B做類似的部署。這樣,既避免了由于物理機故障,導(dǎo)致服務(wù)中斷,又有效地利用了物理機的資源。

        在采用此種架構(gòu)的基礎(chǔ)上,我們對Nginx的主配置文件nginx.conf進(jìn)行一些優(yōu)化:

        user www www;

        #只開啟一個進(jìn)程,節(jié)省內(nèi)存

        work_processes 1;

        error_log /usr/local/nginx/nginx_error.log crit;

        pid /usr/local/nginx/nginx.pid;

        work_rlimit_nofile51200;

        events

        {

        use epoll;

        work_connections 51200; }

        http

        {

        include /user/local/nginx/mime.types; default_type application/octet-stream; #charset utf-8

        server_names_hash_bucket_size 128; client_header_buffer_size 32k;

        large_client_header_buffers 4 64k;

        #指定 nginx 是否調(diào)用 sendfile 函數(shù)(zero copy 方式)來輸出文件,對于普通應(yīng)用,

        必須設(shè)為 on,如果用來進(jìn)行下載等應(yīng)用磁盤

        IO重負(fù)載應(yīng)用,可設(shè)置為 off,以平衡磁盤與網(wǎng)絡(luò)I/O處理速度,降低系統(tǒng)的uptime

        sendfile on;

        #tcp_nopush和tcp_nodely兩個指令設(shè)置為on,用于防止網(wǎng)絡(luò)阻塞

        tcp_nopush on tcp_nodelay on; keepalive_timeout 65;

        #對網(wǎng)頁文件、CSS、JS、XML等啟動gzip壓縮,減少數(shù)據(jù)傳輸量,提高訪問速度。

        gzip on;

        gzip_min_length 1k; gzip_buffers 4 8k;

        gzip_http_version 1.1; gzip_comp_level 3;

        gzip_typestext/plain application/x-javascripts test/ css application/xml;

        gzip_vary on;

        #設(shè)定負(fù)載均衡服務(wù)器列表,采用ip hash的方式進(jìn)行負(fù)載均衡,使來自同一個ip的訪客固定訪問一個后端服務(wù)器,有效解決session共享問題。

        upstream myserver {

        ip_hash;

        server 192.168.100.1∶80 weight=5 max_fails=2 fail_ timeout=30s;

        server 192.168.100.2∶80 weight=5 max_fails=2 fail_ timeout=30s;

        }

        server

        {

        listen80;

        server_namewww.youdomain.com;

        root www/myserver

        location/

        {

        proxy_next_upstream http_502 http_504 error timeout invalid_header;

        proxy_pass http∶//myserver;

        proxy_set_header Host www.youdomain.com;

        proxy_set_header X-Forward-For $remote_addr; }

        #將動態(tài)的頁面交給后端的Web服務(wù)器群組處理。

        location ~ .*.(php|jsp|cgi)?$

        {

        proxy_set_header Host www.youdomain.com;

        proxy_set_header X-Forward-For $remote_addr; proxy_pass http∶//myserver;

        #將動靜頁面進(jìn)行分離,定義靜態(tài)資源由Nginx發(fā)布目錄讀取。

        location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|j s|css)$

        {

        root /www/myserver;

        # 圖片、靜態(tài)頁等不常更改,設(shè)置它們在用戶瀏覽器的本地緩存為3天,提高訪問速度

        圖1 實現(xiàn)Web站點的負(fù)載均衡

        expires 3d;

        access_log /logs/www.youdomain.com_access.log; }足這種動態(tài)的業(yè)務(wù)需求,隨時的增加、減少虛擬機,非常方便。

        架構(gòu)的優(yōu)點

        1.利用Nginx進(jìn)行動靜分離,充分發(fā)揮Nginx處理靜態(tài)頁的優(yōu)勢,有效減輕后端虛擬機的負(fù)載。

        2.通過ip hash實現(xiàn)后端虛擬機的負(fù)載均衡,保證來自同一ip的訪問請求定位在一個虛擬機上,有效解決session共享問題。

        3.通過gzip壓縮、用戶瀏覽器緩存等的設(shè)置,節(jié)省帶寬,提高訪問速度。

        4.傳統(tǒng)的IIS、Apache服務(wù)器等在并發(fā)連接高的時候,很容易崩潰。利用本文提出的架構(gòu)可以有效地將并發(fā)連接均分到多個虛擬機,這樣每個虛擬機的并發(fā)連接數(shù)在相對較低的情況下,減小了崩潰的可能性。

        5.軟件依賴于硬件,因此計算機硬件的更新速度始終快于軟件??紤]到IIS、Apache等的并發(fā)瓶頸問題,如果我們的服務(wù)器僅僅作為一個Web服務(wù)器的話,其性能很難得到充分的發(fā)揮,資源利用率并不高。采用虛擬機的方式可以充分的利用系統(tǒng)資源,借助于Nginx最為反向代理,在低成本投入的前提下,實現(xiàn)高并發(fā)、高性能的Web服務(wù)。

        6.隨著企業(yè)業(yè)務(wù)的發(fā)展,用戶的數(shù)量可能會不斷增加;另外,某些企業(yè)也可能在不同的時間段內(nèi)有差別很大的訪問量。用Nginx反向代理虛擬機的形式可以很好的滿

        測試分析

        工具介紹

        本次測試采用的軟件是LoadRunner。

        LoadRunner是一種適用于各種體系架構(gòu)的自動化負(fù)載測試工具,它通過模擬大量實際用戶的操作行為,對被測試系統(tǒng)實施并發(fā)負(fù)載測試,同時對被測試的系統(tǒng)進(jìn)行實時的性能監(jiān)測,并自動整理生成測試結(jié)果,以便于找出性能的瓶頸。它主要由六部分組成:

        1.虛擬用戶生成器(Vugen):追蹤業(yè)務(wù)和生成測試腳本

        2.壓力生成器:模擬真實用戶產(chǎn)生負(fù)載。

        3.用戶代理:調(diào)整整個虛擬用戶,使步調(diào)一致。

        4.壓力調(diào)度:跟蹤用戶需求,改變虛擬用戶數(shù)量。

        5.監(jiān)控系統(tǒng):監(jiān)控性能指標(biāo)。

        6.測試結(jié)果分析器:生成各種分析圖表,用于分析瓶頸。

        性能指標(biāo)

        本次測試主要選取了并發(fā)用戶、響應(yīng)時間、系統(tǒng)資源利用率三個比較具有代表性的參數(shù)進(jìn)行記錄分析。

        1.并發(fā)用戶

        指所有用戶在同一時刻做同一事情或操作,這種操作一般針對通一類型的業(yè)務(wù);或者所有用戶進(jìn)行完全一樣的操作,目的是測試程序?qū)Σl(fā)操作的處理。

        2.響應(yīng)時間

        響應(yīng)時間是從用戶的角度分析的時間延遲,單位為毫秒或秒。作為最終用戶來說,評價系統(tǒng)性能的好壞只能根據(jù)感覺時間的快慢,他不關(guān)心并發(fā)訪問系統(tǒng)的人數(shù)等其他因素。Web應(yīng)用系統(tǒng)的性能,可以認(rèn)為是系統(tǒng)的平均響應(yīng)時間。通常情況下,系統(tǒng)負(fù)載能力越大,響應(yīng)時間越短。訪問的用戶數(shù)越大,響應(yīng)時間越長。

        3.資源利用率

        資源利用率是只對不同系統(tǒng)資源的使用程度,是測試和分析瓶頸,改善系統(tǒng)性能的主要依據(jù)。

        測試結(jié)果及分析

        圖2

        圖3

        圖4

        圖5

        圖6

        圖7

        圖8

        本次測試的對象是某高校的研究生院網(wǎng)站,它的邏輯并不復(fù)雜,但在每年的招生期間有很高的并發(fā)量。首先,單臺物理機下進(jìn)行測試;然后,搭建Nginx反向代理服務(wù)器,再次進(jìn)行測試;最后,對Nginx進(jìn)行優(yōu)化后的測試。

        三次測試的過程中均錄制統(tǒng)一的腳本,設(shè)置初始用戶100,每次增加50的并發(fā)用戶。

        1.單臺物理機搭建LLS服務(wù)器性能測試

        測試環(huán)境:Xeon 4核處理器+4G內(nèi)存+Windows Server 2003+IIS6.0

        測試分析:

        (1)并發(fā)用戶

        當(dāng)并發(fā)用戶到達(dá)200的時候開始出現(xiàn)錯誤,隨著虛擬用戶的繼續(xù)增長,大部分訪問請求都不能pass,打開瀏覽器發(fā)現(xiàn)網(wǎng)站頁面打不開,如圖2所示。

        (2)系統(tǒng)平均響應(yīng)時間

        我們發(fā)現(xiàn)隨著并發(fā)訪問數(shù)量的增加,系統(tǒng)的響應(yīng)時間直線增長,系統(tǒng)的平均響應(yīng)時間很高,最高超過100秒,如圖3所示。

        (3)系統(tǒng)資源

        我們可以看到隨著虛擬用戶的增長,CPU資源的占用率沒有明顯增長的趨勢,內(nèi)存空閑資源僅稍有減少,如圖4所示。

        通過對結(jié)果的分析,我們看到,LLS服務(wù)器在虛擬用戶數(shù)達(dá)到將近200的時候開始出錯,300的時候已經(jīng)崩潰,而系統(tǒng)的資源利用率實際上并不高。

        2.利用Nginx反向代理虛擬機時的性能測試

        測試環(huán)境:2臺單核2G的虛擬機(Windows Server 2003+IIS6.0)+雙核4G的Nginx物理機。

        測試分析:

        (1)并發(fā)用戶

        當(dāng)并發(fā)用戶到達(dá)550的時候開始出現(xiàn)錯誤,部分訪問請求不能pass,打開瀏覽器發(fā)現(xiàn)網(wǎng)站頁面打開極慢,如圖5所示。

        (2)系統(tǒng)平均響應(yīng)時間

        我們看到,使用Nginx進(jìn)行反向代理之后,系統(tǒng)的響應(yīng)時間有所降低,最高50秒左右,但是還是很高,可能與測試環(huán)境有關(guān),如圖6所示。

        (3)系統(tǒng)資源

        Loadrunner只能監(jiān)測到Nginx服務(wù)器的系統(tǒng)資源,我們在測試的過程中通過登錄IIS服務(wù)器發(fā)現(xiàn)CPU資源利用率在平均約45%,內(nèi)存利用率平均約50%,都沒有隨并發(fā)連接數(shù)急劇增長的現(xiàn)象。

        通過對結(jié)果的分析,我們看到,通過Nginx反向代理IIS虛擬機,有效的提升了網(wǎng)站并發(fā)訪問的負(fù)載能力,IIS虛擬機的資源利用率比單個物理機時更充分。

        3.對Nginx進(jìn)行優(yōu)化后的性能測試

        測試環(huán)境:2臺單核2G的虛擬機(Windows Server 2003+IIS6.0)+雙核4G的Nginx物理機(優(yōu)化后的)。

        測試分析:

        (1)并發(fā)用戶

        我們發(fā)現(xiàn),經(jīng)過對Nginx的優(yōu)化,當(dāng)并發(fā)用戶到達(dá)650的時候才開始出現(xiàn)第一個錯誤,隨著虛擬用戶的增加,錯誤數(shù)量的增加不是太快,打開瀏覽器發(fā)現(xiàn)網(wǎng)站頁面還能打開,只是訪問速度慢,說明Nginx服務(wù)器和IIS服務(wù)器均沒有崩潰,如圖7所示。

        (2)系統(tǒng)平均響應(yīng)時間

        從圖表中我們看到,響應(yīng)時間和對Nginx進(jìn)行優(yōu)化前對比有顯著減少,平均在12秒左右,最高24秒,如圖8所示。

        (3)系統(tǒng)資源

        同樣通過直接登錄查看IIS虛擬機的系統(tǒng)資源,發(fā)現(xiàn)CPU利用率平均約45%,內(nèi)存利用率平均約50%,跟優(yōu)化前沒有明顯區(qū)別。

        通過對結(jié)果的分析,我們看到,對Nginx的合理優(yōu)化有效的增加了并發(fā)訪問量,減少了系統(tǒng)響應(yīng)時間,進(jìn)一步提高了Web服務(wù)的性能,系統(tǒng)資源的利用率保持不變。

        Nginx是一款不錯的反向代理軟件,利用Nginx反向代理虛擬機的架構(gòu)可以有效避免IIS、Apache的并發(fā)瓶頸問題,并且增加了網(wǎng)站的可擴展性。通過對高校網(wǎng)站的壓力測試,證實了Nginx反向代理虛擬機架構(gòu)的可用性,同時發(fā)現(xiàn)了網(wǎng)站的瓶頸所在??偟膩碚f,Web應(yīng)用的性能是受多方面影響的,不能一味去增加硬件設(shè)備,要通過實際的測試,找出瓶頸所在,多從優(yōu)化架構(gòu)、優(yōu)化參數(shù)配置入手,從而提高性能,提高Web服務(wù)的質(zhì)量。

        (作者單位為鄭州大學(xué)信息網(wǎng)絡(luò)重點開放實驗室)

        猜你喜歡
        系統(tǒng)資源內(nèi)存利用率
        民用飛機綜合模塊化航電系統(tǒng)資源狀態(tài)監(jiān)控技術(shù)研究
        “春夏秋冬”的內(nèi)存
        化肥利用率穩(wěn)步增長
        做好農(nóng)村土地流轉(zhuǎn) 提高土地利用率
        淺議如何提高涉煙信息的利用率
        板材利用率提高之研究
        基于內(nèi)存的地理信息訪問技術(shù)
        VMware虛擬機技術(shù)在Linux教學(xué)中的應(yīng)用
        讓Microsoft Securuty Essentials輕裝前進(jìn)
        電腦迷(2012年2期)2012-04-29 13:52:27
        上網(wǎng)本為什么只有1GB?
        真正免费一级毛片在线播放| 三级全黄裸体| 忘忧草社区www日本高清| 日本动态120秒免费| 中国产无码一区二区三区| 国产自拍一区在线视频| 久久久国产精品va麻豆| 天天看片视频免费观看| 欧美性爱一区二区三区无a| 精品一区2区3区4区| 天天做天天爱夜夜爽| 一区二区传媒有限公司| 国产精品一区二区三级| 婷婷久久亚洲中文字幕| 欧美黑人又粗又大xxxx| 最好看的最新高清中文视频| 国产片三级视频播放| 97成人精品在线视频| 国产av国片精品jk制服| 国产精品亚洲成在人线| 产精品无码久久_亚洲国产精| 色和尚色视频在线看网站| 五月丁香综合激情六月久久| 97se在线| 亚洲精品中文字幕乱码人妻| 大桥未久av一区二区三区| 精品麻豆国产色欲色欲色欲www| 综合激情网站| 中文字幕日本av网站| 亚洲国产成人精品无码区在线秒播 | 大地资源高清在线视频播放| 日韩人妻无码一区二区三区| 亚洲日产无码中文字幕| 自拍偷区亚洲综合激情| 性按摩xxxx在线观看| 男人无码视频在线观看| 亚洲国产精品美女久久久| 日本最新一区二区三区视频观看| 日韩人妻无码一区二区三区| 99精品国产第一福利网站| 日韩国产精品一区二区三区|