阿里云2G2C的ECS部署LNMP性能瓶頸到底在多少


服務器詳細配置

Project

message

System info

LSB Version:      :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch

Distributor ID: CentOS

Description:    CentOS release 6.6 (Final)

Release:        6.6

Codename:       Final

Harddriver

2core4GB

software

nginx 1.6.2

mysql 5.5

PHP 5.4.36

Core set

ulimit -a

core file   size          (blocks, -c) 0

data seg   size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file   size               (blocks, -f)   unlimited

pending   signals                 (-i) 30459

max locked   memory       (kbytes, -l) 64

max memory   size         (kbytes, -m) unlimited

open   files                      (-n) 65535

pipe size            (512 bytes, -p) 8

POSIX   message queues     (bytes, -q) 819200

real-time   priority              (-r) 0

stack   size              (kbytes, -s) 10240

cpu   time               (seconds, -t)   unlimited

max user   processes              (-u) 1024

virtual memory          (kbytes, -v) unlimited

file   locks                      (-x)   unlimited

標準的性能曲線


什么樣的曲線才是健康的呢?看看下面的幾幅圖.

乳狀圖


這幅圖中不管是http每秒的請求數,還是服務器的請求的命中率都呈現了波浪狀.這是非常不健康的情況.導致的原因也可能是多方多面.即可能是web服務器自身性能的問題,也可能是被壓測機自身的問題,除此外,網絡誘因,網卡流量,壓測軟件內存原因都可能導致這樣的問題出現

1.png

有病在身


這幅圖粗看好像正常的樣子,零錯誤率而且各曲線似乎都很平滑,略有起浮似乎可以接受.但如果仔細分析就會發現其中的貓膩.

下面四幅曲線圖依次為bytes/sec ResponseTime of/vusers https/sec

      -Bytes/sec – 和壓測頁面的大小有密切關系,所以不容易判斷健康狀態

      –ResponseTime – 小到1大到4, 要知道用戶的耐心經過科學的統計是在1s以內的.以此為準每延后0.2s就會有10%左右的用戶流失,這個數據不容小視

      –Of/vusers – 這個數值即和壓測機有關也和被壓測機有關.這里平穩的1000用戶同時壓測正常

      –Https/sec – 這個數據這里只有3000是不正常的.看過webbench/ab和loadrunner區別這篇文章的同學應該對webbench/ab的性能有一定的了解.每秒在270左右的.這個數值大家可以大概計算下.不過發現每次的數據因為并發人數的多少會有非常明顯的變化,數據還是供大家參考吧~ 

阿里云2G2C的ECS部署LNMP性能瓶頸到底在多少

簡單測試了下 100個并發用戶和10個并發用戶相差還真是大~~又壓了1000看看~~

阿里云2G2C的ECS部署LNMP性能瓶頸到底在多少

數據大家參考下吧~也差不多能看到個大概

4.jpg

健康圖

并發950用戶,壓測15min20s,總共704w請求數,錯誤率大概在0.0000 02吧~5.png

服務器響應延遲也一直在1s內,每秒平均響應數在8000.非常平衡的輸出

6.png

5w并發壓測無負載


在壓測過程中,因為苦于沒有數據作參考,整個壓測過程中很多次數據都是在臆想和yy,在一次的數據壓測中我們準備了3臺性能和壓測機硬件配置完全一樣的機器,外加一臺硬件內存,cores數是壓測機2倍的服務器,外加3臺并發2000的服務器,加起來最少5w的并發進行性能壓測,結果

因為負載過高,我們壓爆了2臺被壓測機, 但壓測服的性能一直只在0.1-0.4徘徊,非常讓我個人吃驚.雖然說張宴的博客中說nginx配置可以支持單臺并發10w,但幾個方面的原因使人對結果是極其懷疑的.

1.     我們的服務器是阿里云的虛擬機

2.     我們服務器的配置只有2c4g

3.     了解其它朋友的服務器64G32cores才并發3w請求數(是服務器端每秒處理3w請求數,不是3w用戶并發訪問),最關鍵的是他們的服務器是做proxy的~~~

4.     我們調用的被壓測機配置甚至比壓測服務器配置要高,而且數量也多太多~~

阿里云2G2C的ECS部署LNMP性能瓶頸到底在多少

阿里云2G2C的ECS部署LNMP性能瓶頸到底在多少

后來,雖然我們也

a>  借用本地物理機進行壓測;

b>  完全重裝系統重新再來;

但發現數據也一直是支持5w并發用戶并且是輕松支持的.幾次的折騰也使我個人有很長一段時間也不得不相信并發5w的數據~

一次偶然的情況,忽然發現nginx配置中有關于fastcgi_cache的配置~

    #fastcgi_cache_path /data/cache/fastcgi levels=1:2 keys_zone=FastCGICache:10m inactive=5m;
    #fastcgi_cache FastCGICache;
    #fastcgi_cache_methods GET HEAD;
    #fastcgi_cache_use_stale error timeout invalid_header http_500;
    #fastcgi_intercept_errors on;
    #fastcgi_cache_valid 200 302 1h;
    #fastcgi_cache_valid 301 1d;
    #fastcgi_cache_valid any 1m;
    #fastcgi_cache_min_uses 1;
    #fastcgi_cache_key $request_method://$host$request_uri;

再認真確認下我們的壓測腳本,發現我們的壓測腳本訪問的是一個頁面~so,大家明白了吧~~~想撞死南墻的想法的都有了~~~

Loadrunnerwindow上的


對于loadrunner運行在windows還是linux上這里不做個人建議. 如果對windows有深入研究,對loadrunner在windows上運行機理有可靠的把控可以使用windows系統為繼續,本次我們遇到的問題包括

Error:timed out Error:Server“192.168.2.192”has shut down the connection prema
Failed to connect to server 'hostname';port_ld':

但因為測試成員對window了解程度也是一般,同時中文博客的不嚴謹性,也導致我們在處理這樣的問題的時候一直處于被動猜測問題的層面,同時也是因為windows是閉源的,網上對這塊的問題也基于 抄襲的層面,解決問題非常困難~~~

最后只有一句話,   珍愛生命請用linux

在linux上壓測圖,

9.png

最后小結


  • 了解什么是健康的壓測圖

  • .健康的標準主要包括四個方面:

    • ResponseTime:   1s內且平穩

    • of/vusers   2g4c 1000以上

    • https/sec  1000人8000qts

    • errors   0.3%以內

  • 多報以質疑的態度治學

  •  相信權威但不迷信權威

~~~~~~~Over


原創文章,作者:stanley,如若轉載,請注明出處:http://www.www58058.com/3316

(0)
stanleystanley
上一篇 2015-04-16 22:51
下一篇 2015-04-17 13:38

相關推薦

  • 文本處理工具之grep正則表達式

    grep簡介 grep 是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。 Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,…

    Linux干貨 2016-08-08
  • OpenSSL用法詳解

    OpenSSL用法詳解 OpenSSL:        組件:libcrypto,libssl                 openssl &nb…

    Linux干貨 2016-09-23
  • Linux網絡配置

    配置網絡 實現網絡組測試網絡網絡工具     基本網絡配置將Linux主機接入到網絡,需要配置網絡相關設置。一般包括如下內容:主機名IP/netmask路由:默認網關DNS服務器主DNS服務器次DNS服務器第三DNS服務器 網絡配置方式靜態指定:ifcfg: ifconfig, route, netstatip: object {link…

    Linux干貨 2017-08-19
  • Linux入門之Centos6 和Centos7的安裝

    在安裝Centos6 和Centos7 之前,首先VMware需要安裝完成,所需鏡像CentOS-6.9-x86_64-bin-DVD1和CentOS-7-x86_64-Everything-1611(本次實驗所用的版本)準備好,然后開啟VMware,進行安裝之旅,在安裝過程中,Centos6 和Centos7 在前15步的配置是一樣的步驟,在16步開啟虛擬…

    2017-07-15
  • Sqlserver2012(主從復制)共享同步日志備份恢復

    SQL Server 2012相對于SQL Server 2008來說,無論是性能還是功能都有一個相當大的提高,甚至可以用“革命”來形容這一次升級。SQL Server 2012使 SQL Server 躋身于企業級數據庫行列。在數據高可用性方面,SQL Se…

    Linux干貨 2015-10-31
  • linux下正則表達式的學習

    linux 下正則表達式用法總結 正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。簡單的說,正則表示式就是處理字符串的方法。常用來匹配字符的元字符總結如下: Paste_Image.png 有了以上這些元字符原則上可以搜索出任務想要表達的字符,可為了更靈活使用,往往還要搭配一些次數匹配的用法 Paste_Image.png 例如:a&nbsp…

    Linux干貨 2017-06-04
欧美性久久久久