1. 程式人生 > >測試Nginx 和 Tomcat 高併發情況下處理靜態頁面的效能

測試Nginx 和 Tomcat 高併發情況下處理靜態頁面的效能

以下是 ab 壓力測試的結果(為了得到比較科學的資料可以進行多次的測試,一般至少10次)

ab 可執行檔案的位置 /usr/local/web/apache/bin
測試命令:ab -n1000 -c100 192.168.1.155:9090/index.html

[root@bogon bin]# pwd
/usr/local/web/apache/bin
[root@bogon bin]# ab -n1000 -c100 ip:port/index.html

一、測試結果:

1、tomcat 處理靜態請求

[[email protected] bin]# pwd
/usr/local/web/apache/bin
[
[email protected]
bin]# ab -n1000 -c100 192.168.1.155:9090/index.html 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.155 (be patient) Completed 100
requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: Apache-Coyote/1.1 Server Hostname: 192.168.1.155 Server Port: 9090
Document Path: /index.html Document Length: 119 bytes Concurrency Level: 100 Time taken for tests: 0.895 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 385476 bytes HTML transferred: 126021 bytes Requests per second: 1117.31 [#/sec] (mean) Time per request: 89.501 [ms] (mean) Time per request: 0.895 [ms] (mean, across all concurrent requests) Transfer rate: 420.60 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 34 18.3 37 77 Processing: 7 42 18.5 38 100 Waiting: 4 33 16.8 29 94 Total: 19 76 17.7 78 170 Percentage of the requests served within a certain time (ms) 50% 78 66% 85 75% 87 80% 90 90% 96 95% 102 98% 104 99% 112 100% 170 (longest request)

2、Nginx 處理靜態請求

[[email protected] bin]# pwd
/usr/local/web/apache/bin
[[email protected] bin]# ab -n1000 -c100 192.168.1.155:8888/index.html
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.155 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software:        nginx/1.11.9
Server Hostname:        192.168.1.155
Server Port:            8888

Document Path:          /index.html
Document Length:        123 bytes

Concurrency Level:      100
Time taken for tests:   0.207 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      451339 bytes
HTML transferred:       130011 bytes
Requests per second:    4841.40 [#/sec] (mean)
Time per request:       20.655 [ms] (mean)
Time per request:       0.207 [ms] (mean, across all concurrent requests)
Transfer rate:          2133.90 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1    8   3.7      8      18
Processing:     2   10   4.8     11      25
Waiting:        0    7   3.4      7      16
Total:          4   19   6.9     21      35

Percentage of the requests served within a certain time (ms)
  50%     21
  66%     23
  75%     24
  80%     25
  90%     27
  95%     27
  98%     34
  99%     34
 100%     35 (longest request)

二、結果分析

1、tomcat 處理靜態請求
這裡寫圖片描述

2、Nginx 處理靜態請求

這裡寫圖片描述

三、總結

吞吐量,每個請求的處理時間等,Nginx代理處理靜態請求 都是優於 Tomcat處理

相同的處理靜態檔案,Nginx處理的靜態效能比Tomcat 好

一般在Nginx配置檔案中,配置靜態交給Nginx處理,動態請求交給Tomcat,提高了效能

Nginx +Tomcat 負載均衡與容錯

在高併發的情況下,為了提高伺服器的效能,減少了單臺伺服器的併發壓力,我們採用了叢集部署,還能解決為了避免單臺伺服器掛掉,服務不能訪問這種情況下,處理容錯問題

相關推薦

測試Nginx Tomcat 併發情況處理靜態頁面效能

以下是 ab 壓力測試的結果(為了得到比較科學的資料可以進行多次的測試,一般至少10次) ab 可執行檔案的位置 /usr/local/web/apache/bin 測試命令:ab -n1000

併發情況Redis 的可用性測試與分析及部署架構說明

1、讀取Redis的timeout異常 建立執行緒數在50以下時程式可以正常執行,當執行緒數設定為100以上時,某些執行緒執行出現異常: java.net.SocketTimeoutException: Read timed out 造成這種異常可能有以下兩個原因: 原因一:在連線Redis的Jedis的預設

如何處理併發情況的DB插入

插入資料庫,在大家開發過程中是很經常的事情,假設我們有這麼一個需求: 1、我們需要接收一個外部的訂單,而這個訂單號是不允許重複的 2、資料庫對外部訂單號沒有做唯一性約束 3、外部經常插入相同的訂單,對於已經存在的訂單則拒絕處理 對於這個需求,很簡單我們會用下面的

併發情況 如何支撐大量的請求

儘量使用快取,包括使用者快取,資訊快取等,多花點記憶體來做快取,可以大量減少與資料庫的互動,提高效能。用jprofiler等工具找出效能瓶頸,減少額外的開銷。優化資料庫查詢語句,減少直接使用hibernate等工具的直接生成語句(僅耗時較長的查詢做優化)。優化資料庫結構,多做索引,提高查詢效率。統計的功能儘量

併發情況如何保證訊息的順序

      在知乎上看到一位大牛總結了一些保證訊息順序的方案,在此記錄下來學習一下。      在多佇列訊息處理的場景中,怎樣保持多個訊息之間的時間順序,是一個很經典的問題。解決方法當然是有的。        為了討論這個問題,讓我們做一些簡化問題的假設:有若干個訊息佇列A、

Mysql在併發情況,防止庫存超賣而小於0的解決方案

背景: 本人上次做申領campaign的PHP後臺時,因為專案上線後某些時段同時申領的人過多,導致一些專櫃的存貨為負數(<0),還好併發量不是特別大,只存在於小部分專櫃而且一般都是-1的狀況,沒有造成特別特別嚴重的後果,但還是要反思了自己的過錯。   這次又有新的申

提高MySQL在併發情況的負載

(只作為日後參考的記錄,沒有實際測試過) TCMalloc(Thread-Caching Malloc)是google開發的開源工具──“google-perftools”中的成員。與標準的glibc庫的malloc相比,TCMalloc在記憶體的分配上效率和速度要高得多

tomcat併發優化詳解及連線數執行緒池

高併發環境下,我知道優化配置tomcat,對連線數和執行緒池作修改,最重要的是connector的協議Http Connector使用NIO,而不是預設的AJP Connector,當時也沒有仔細研究其原理。現在來為以上這些設定做一下剖析。 要了解這些,不能避開tomcat

nginx工作原理實現併發請求的原因

一、程序、執行緒?程序是具有一定獨立功能的,在計算機中已經執行的程式的實體。在早期系統中(如linux 2.4以前),程序是基本運作單位,在支援執行緒的系統中(如windows,linux2.6)中,執行緒才是基本的運作單位,而程序只是執行緒的容器。程式 本身只是指令、資料及

sql server中高併發情況 同時執行selectupdate語句死鎖問題 (二)

        SQL Server死鎖使我們經常遇到的問題,資料庫操作的死鎖是不可避免的,本文並不打算討論死鎖如何產生,重點在於解決死鎖。希望對您學習SQL Server死鎖方面能有所幫助。   

Apache與Nginx比較(Nginx 併發情況常用,必須學習)

Apache與Nginx的優缺點比較 1、nginx 輕量級,同樣起web 服務,比apache 佔用更少的記憶體及資源。          抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能    

併發併發環境如何防止Tomcat記憶體溢位?看完我懂了!!

寫在前面 隨著系統併發量越來越高,Tomcat所佔用的記憶體就會越來越大,如果對Tomcat的記憶體管理不當,則可能會引發Tomcat記憶體溢位的問題,那麼,如何防止Tomcat記憶體溢位呢?我們今天就來一起探討下這個問題。 防止Tomcat記憶體溢位可以總結為兩個方案:一個是設定Tomcat啟動的初始記

併發併發環境構建快取服務需要注意哪些問題?我阿里P9聊了很久!

## 寫在前面 > 週末,跟阿里的一個朋友(去年晉升為P9了)聊了很久,聊的內容幾乎全是技術,當然了,兩個技術男聊得最多的話題當然就是技術了。從基礎到架構,從演算法到AI,無所不談。中間又穿插著不少天馬行空的想象,雖然現在看起來不太實際,但是隨著技術的進步,相信五年、十年之後都會實現的。 > &

NginxTomcat的管理腳本

Nginx Tomcat 一、傳統模式下Nginx的啟動、關閉 1、啟動:/usr/local/nginx/sbin/nginx 2、關閉:killall nginx 3、重啟:/usr/local/nginx/sbin/nginx -s reload 二、通過配置/etc/init.d/nginx來

Elk+filebeat收集docker集群swarm中的nginxtomcat容器的日誌信息

system 現在 mct ebe ack agent pda number tomcat容器 前言: 之前有說過elk收集nginx日誌,現在來說一下收集容器集群的日誌收集Elk的安裝這裏不在說了,上來直接懟,這裏是elk的服務器:的服務狀態:以及端口 Logstash

nginxtomcat日誌切割

res zip 例如 需要 share 沒有 當前 指令 所有 使用說明如下:相應腳本放到/etc/logrotate.d/目錄下腳本如下 $nginx_dir/logs/*.log { 日誌格式daily 每天切割rotate 365

nginxtomcat結合

protocol shutdown engine factor pro forward mes text upd 在日常的工作中,需要用到nginx和tomcat,在這裏記錄一下具體的配置。 假設域名為 www.demo.com nginx server { list

nginx tomcat 生產環境配置 建議方法

線程鎖 nginx參數 java_opts 持久 maxperm tex 防止 線程 jsp 參考 以下內容: http://blog.csdn.net/lifetragedy/article/details/7708724

詳談Apache、Nginxtomcat的區別以及處理靜態頁面動態頁面的方式

請求 php腳本 特點 java類 是你 源碼 proc 總結 愛好者 就目前來說,網站主要分為靜態頁面和動態頁面,純靜態頁面的網站已經比較少見了,大型網站一般使用的是靜態頁面+動態頁面的建站技術,還有一部分網站是純動態頁面。負責處理這些頁面的軟件我們通常稱之為web容器,

伺服器部署NginxTomcat設定

伺服器部署Nginx和Tomcat設定 Nginx部署 Tomcat部署 Nginx部署 nginx.conf檔案配置: #user nginx; user root; worker_processes auto; error_l