apache ab壓力測試報錯

今天用apache 自帶的ab工具測試,當并發量達到1000多的時候報錯如下:
[root@aa~]# This is ApacheBench, Version 2.3 <Revision:655654>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.1.176 (be patient)
Completed 300 requests
Completed 600 requests
Completed 900 requests
apr_socket_recv: Connection reset by peer (104)
Total of 1085 requests completed

查看應用服務器和數據庫均未報錯,連接被重置,bingyi了以下,apr_socket_recv這個是操作系統內核的一個參數,在高并發的情況下,內核會認為系統受到了SYN flood攻擊,會發送cookies(possible SYN flooding on port 80. Sending cookies),這樣會減慢影響請求的速度,所以在應用服務武器上設置下這個參數為0禁用系統保護就可以進行大并發測試了:

# vim /etc/sysctl.conf 
net.ipv4.tcp_syncookies = 0
# sysctl -p

然后就可以超過1000個并發測試了。

另附其他系統內核參數說明:

net.ipv4.tcp_syncookies = 0  
#此參數是為了防止洪水攻擊的,但對于大并發系統,要禁用此設置net.ipv4.tcp_max_syn_backlog
#參數決定了SYN_RECV狀態隊列的數量,一般默認值為512或者1024,即超過這個數量,系統將不再接受新的TCP連接請求,一定程度上可以防止系統資源耗盡。可根據情況增加該值以接受更多的連接請求。net.ipv4.tcp_tw_recycle
#參數決定是否加速TIME_WAIT的sockets的回收,默認為0。net.ipv4.tcp_tw_reuse
#參數決定是否可將TIME_WAIT狀態的sockets用于新的TCP連接,默認為0。net.ipv4.tcp_max_tw_buckets
#參數決定TIME_WAIT狀態的sockets總數量,可根據連接數和系統資源需要進行設置。 

另外ab中自帶參數
-r Don’t exit on socket receive errors.
可以避免并發過大出現錯誤,從而實現大并發測試,建議使用此方法。

ab 的各種參數

    -n requests     Number of requests to perform-c concurrency  Number of multiple requests to make at a time-t timelimit    Seconds to max. to spend on benchmarkingThis implies -n 50000-s timeout      Seconds to max. wait for each responseDefault is 30 seconds-b windowsize   Size of TCP send/receive buffer, in bytes-B address      Address to bind to when making outgoing connections-p postfile     File containing data to POST. Remember also to set -T-u putfile      File containing data to PUT. Remember also to set -T-T content-type Content-type header to use for POST/PUT data, eg.'application/x-www-form-urlencoded'Default is 'text/plain'-v verbosity    How much troubleshooting info to print-w              Print out results in HTML tables-i              Use HEAD instead of GET-x attributes   String to insert as table attributes-y attributes   String to insert as tr attributes-z attributes   String to insert as td or th attributes-C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)-H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'Inserted after all normal header lines. (repeatable)-A attribute    Add Basic WWW Authentication, the attributesare a colon separated username and password.-P attribute    Add Basic Proxy Authentication, the attributesare a colon separated username and password.-X proxy:port   Proxyserver and port number to use-V              Print version number and exit-k              Use HTTP KeepAlive feature-d              Do not show percentiles served table.-S              Do not show confidence estimators and warnings.-q              Do not show progress when doing more than 150 requests-l              Accept variable document length (use this for dynamic pages)-g filename     Output collected data to gnuplot format file.-e filename     Output CSV file with percentages served-r              Don't exit on socket receive errors.-h              Display usage information (this message)-Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)-f protocol     Specify SSL/TLS protocol(SSL3, TLS1, TLS1.1, TLS1.2 or ALL)
- n請求執行的請求數
- c多次請求的并發數
- t限時秒到最大值。花在基準測試
這意味著- n 50000
- s超時秒到最大值。等待每個響應
默認值為30秒
- b窗口大小的TCP發送/接收緩沖區,以字節為單位
- b地址地址在發送連接時綁定
-p postfile文件,包含要發布的數據。記住也要設置- t
-u putfile文件中包含的數據。記住也要設置- t
- t內容類型的內容類型標題用于POST / PUT數據。
“應用程序/ x-www -表單- urlen編碼”
默認是“text / plain”
-v verbosity有多少故障排除信息打印
- w打印結果在HTML我用HEAD代替GET
- x屬性字符串作為表屬性插入
- y屬性字符串作為tr屬性插入
- z屬性字符串作為td或th屬性插入
- c屬性添加cookie。Apache = 1234。(重復)
- h屬性添加任意標題行。“接受編碼:gzip插入所有正常的標題行。(重復)
屬性添加基本的WWW認證,屬性
是一個冒號分隔的用戶名和密碼。
- p屬性添加基本代理身份驗證,屬性
是一個冒號分隔的用戶名和密碼。
- x代理:使用端口Proxyserver和端口號
- v打印版本號,退出
- k使用HTTP KeepAlive功能
- d不顯示百分比表。
- s不顯示置信估計者和警告。
當超過150個請求時,q沒有顯示進展
- l接受可變文檔長度(用于動態頁面)
- g文件名輸出數據到gnuplot格式文件。
- e文件名輸出CSV文件的百分比
- r不退出套接字接收錯誤。
- h顯示使用信息(此消息)
- z ciphersuite指定SSL / TLS密碼套件(見openssl密碼)
- f協議指定SSL / TLS協議
(SSL3,TLS1,TLS1.1,TLS1.2或全部)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536144.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536144.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536144.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ngOnInit與constructor的區別

前世今生 Angular會管理一個組件的生命周期,包括組件的創建、渲染、子組件創建與渲染、當數據綁定屬性變化時的校驗、DOM移除之前毀銷。 Angular提供組件生命周期鉤子便于我們在某些關鍵點發生時添加操作。 組件生命周期鉤子 指令和組件實例有個生命周期用于創建、更新和銷…

Nginx配置性能優化

大多數的Nginx安裝指南告訴你如下基礎知識——通過apt-get安裝&#xff0c;修改這里或那里的幾行配置&#xff0c;好了&#xff0c;你已經有了一個Web服務器了。而且&#xff0c;在大多數情況下&#xff0c;一個常規安裝的nginx對你的網站來說已經能很好地工作了。然而&#xf…

Angular的@Output與@Input理解

@Output與@Input理解 Output和Input是兩個裝飾器,是Angular2專門用來實現跨組件通訊,雙向綁定等操作所用的。 @Input Component本身是一種支持 nest 的結構,Child和Parent之間,如果Parent需要把數據傳輸給child并在child自己的頁面中顯示,則需要在Child的對應 directiv…

騰訊云CDN配置

第一步&#xff1a;先去領取騰訊云CDN免費包23333333 以下為正式步驟&#xff1a; 在這里體現大家&#xff0c;域名一定要備案&#xff0c;另外要明白域名如何解析 前邊問題不大&#xff0c;一切跟著騰訊云的套路來即可&#xff0c;需要注意的是網上后優化的配置大家可以自行…

Promise.all的深入理解

異步之Promise Promise.all Promise.all接收的promise數組是按順序執行的還是一起執行的&#xff0c;也就是說返回的結果是順序固定的嗎&#xff1f; 目前有兩種答案&#xff1a; 應該是同步執行的&#xff0c;但是這樣就有效率問題了&#xff0c;如果想改成異步執行怎么辦…

wordpress后臺無法登錄問題

之前給自己的WordPress加了個標簽云&#xff0c;今天登錄的時候突然發現網站后臺進不去了&#xff0c;無奈各種找材料&#xff0c;這算是皇天不負有心人&#xff0c;總算是給我找到了&#xff0c;現在做一下記錄 登錄不上的原因在于&#xff1a;wp-admin和wp-admin/是不同的&a…

深入理解Angular訂閱者模式

深入理解Angular訂閱者模式 如果正在讀此篇文章的你學過java,c++等面向對象語言,知道兩個模式觀察者模式和訂閱者模式,分別為:Observer pattern,Pub-sub pattern(Subscriber) 接下來我們結合Angular來說明這兩個模式。 Observer pattern This is a pattern of developme…

Ubuntu中安裝python3

通過命令行安裝Python3.*&#xff0c;只需要在終端中通過命令行安裝即可&#xff1a; sudo apt-get install python3 Ubuntu的底層大多數采用的是Python2.*&#xff0c;Python3和Python2是互相不兼容的&#xff0c;完全沒法通用的&#xff08;也不知道他們怎么想的o(TヘTo)&a…

Angular深入理解之指令

Angular深入理解之指令 指令有什么功能 Attribute directives 屬性指令Structural directives 結構指令自定義屬性指令自定義結構指令Angular深入理解之指令 對于初學Angular的同學來說,指令無疑是最痛苦的,那么我們怎么使用自定義的指令呢?指令到底怎么實現呢?為什么要寫…

windows下Apache虛擬主機配置

找到host文件&#xff1a;C:\Windows\System32\drivers\etc\hosts 在hosts這么增加&#xff1a; 127.0.0.1 666.666.com 127.0.0.1 777.777.com 修改httpd.conf文件&#xff1a; 打開文件&#xff1a;xxx\xampp\apache\conf\httpd.conf 找到#LoadModule vhost_…

Angular深入理解基本組成

Angular深入理解基本組成 在講指令時,我們先來了解一下Angular的基本概念和結構。 Module 模塊 Angular 是模塊化的.Modules 導出 classes, function, values , 以便在其他模塊導入使用.angular應用由模塊組成,每個模塊都做此模塊相關的事情組件、方法、類、服務等,他們都…

1607: 字符棱形

1607: 字符棱形 根據讀入的字符和邊長&#xff0c;勾畫字符棱形。 Input 輸入數據含有不超過50組的數據&#xff0c;每組數據包括一個可見字符c和一個整數n&#xff08;1≤n≤30&#xff09;。 Output 輸出以c為填充字符&#xff0c;邊長為n的棱形&#xff0c;勾畫每個棱形…

Angular深入理解管道Pipe

Angular深入理解管道 純管道與非純管道區別的本質 Pure FunctionImpure Function內置Pipe pipe使用自定義Pipe 管道性能優化Angular深入理解管道 管道的鏈接 有學過linux shell的同學,應該知道管道,在shell中的管道是IPC,linux的進程間通訊有pipe,FIFO,signal。這里只是簡單…

1959: 圖案打印

1959: 圖案打印 Description 一年一度的植樹節就要到了&#xff0c;計算機學院學生準備在學院教學樓門前的空地上種植樹木。為使樹木排列得更加美觀&#xff0c;大家決定把樹木排列成菱形。現在告訴你我們所擁有的樹木能排列成邊長為N的菱形&#xff0c;請你編程輸出樹木所排…

JS事件的捕獲和冒泡階段

JS事件的捕獲和冒泡階段 這里介紹兩個事件模型&#xff1a;IE事件模型與DOM事件模型 IE內核瀏覽器的事件模型是冒泡型事件&#xff08;沒有捕獲事件過程&#xff09;&#xff0c;事件句柄的觸發順序是從ChildNode到ParentNode。 <div id"ancestor"> <butt…

2016: C語言實驗——打印金字塔

2016: C語言實驗——打印金字塔 Description 輸入n值&#xff0c;打印下列形狀的金字塔&#xff0c;其中n代表金字塔的層數。 Input 輸入只有一個正整數n。 Output 打印金字塔圖形&#xff0c;其中每個數字之間有一個空格。 Sample Input 3 Sample Output 11 2 1 1 2 …

Anuglar中正確導入RxJS庫

Anuglar中正確導入RxJS庫 目前Angular2中的已經內建支持RxJS,所以我們在使用的時候可以直接導入使用了。 理解操作符導? 在使用創建依賴于 RxJS 組件,服務,指令等等時, 你可能遇到處理運算符導?的問 題。 在項?中引?操作符最主要的?式像下?這樣導?: import rxj…

1495: 蛇行矩陣

1495: 蛇行矩陣 Description 蛇形矩陣是由1開始的自然數依次排列成的一個矩陣上三角形。 Input 本題有多組數據&#xff0c;每組數據由一個正整數N組成。&#xff08;N不大于100&#xff09; Output 對于每一組數據&#xff0c;輸出一個N行的蛇形矩陣。兩組輸出之間不要額…

遞歸基礎之N皇后問題

遞歸基礎之N皇后問題 Description 在nn 格的棋盤上放置彼此不受攻擊的n 個皇后。按照國際象棋的規則&#xff0c;皇后可以攻擊與之 處在同一行或同一列或同一斜線上的棋子。n后問題等價于在nn格的棋盤上放置n個皇后&#xff0c; 任何2 個皇后不放在同一行或同一列或同一斜線上…

X86和X86_64和AMD64的由來

為什么叫X86和X86_64和AMD64 為什么大家叫x86為32位系統呢 相信大家在大學里面有很多人都玩過8086&#xff08;微處理器&#xff09;&#xff0c;這是一個可編程的系統&#xff0c;他是由intel開發的&#xff0c;英特爾出了劃時代的8086之后&#xff0c;后來使用該架構出了80…