一、測試工具:
Apache 壓力測試工具ab
ab是針對apache的效能測試工具,可以只安裝ab工具。
ubuntu安裝ab
apt-get install apache2-utils
centos安裝ab
yum install httpd-tools
ab的參數詳細解釋
格式: ./ab [options] [http://]hostname[:port]/path
參數:在測試會話中所執行的請求個數。預設時,僅執行一個請求。
-c一次產生的請求個數。預設是一次一個。
-t測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對伺服器的測試限制在一個固定的總時間以內。預設時,沒有時間限制。
-p包含了需要POST的資料的檔案。
-P對一個中轉代理提供BASIC認證信任。使用者名稱和密碼由一個:隔開,並以base64編碼形式發送。無論伺服器是否需要(即, 是否發送了401認證需求代碼),此字串都會被傳送。
-T POST資料所使用的Content-type頭資訊。
-v設定顯示訊息的詳細程度-4或更大值會顯示頭訊息,3或更大值可以顯示回應碼(404,200等),2或更大值可以顯示警告和其他資訊。
-V顯示版本號並退出。
-w以HTML表的格式輸出結果。預設時,它是白色背景的兩列寬度的一張表。
-i執行HEAD請求,而不是GET。
-x設定
屬性的字串。-C對請求附加一個Cookie:行。其典型形式是name=value的一個參數對,此參數可以重複。 -H對請求附加額外的頭資訊。此參數的典型形式是一個有效的頭資訊行,其中包含了以冒號分隔的字段和值的對(如,"Accept-Encoding:zip/zop;8bit")。 -A對伺服器提供BASIC認證信任。使用者名稱和密碼由一個:隔開,並以base64編碼形式發送。無論伺服器是否需要(即,是否發送了401認證需求代碼),此字串都會被發送。 -h顯示使用方法。 -d不顯示"percentage served within XX [ms] table"的訊息(為先前的版本提供支援)。 -e產生一個以逗號分隔的(CSV)文件,其中包含了處理每個相應百分比的請求所需要(從1%到100%)的相應百分比的(以微妙為單位)時間。由於這種格式已經“二進制化”,所以比'gnuplot'格式更有用。 -g把所有測試結果寫入一個'gnuplot'或TSV(以Tab分隔的)檔。此文件可以方便地匯入Gnuplot,IDL,Mathematica,Igor甚至Excel。其中的第一個行為標題。 -i執行HEAD請求,而不是GET。 -k啟用HTTP KeepAlive功能,即在一個HTTP會話中執行多個請求。預設時,不啟用KeepAlive功能。 -q如果處理的請求數大於150,ab每處理約10%或100個請求時,會在stderr輸出一個進度數。此-q標記可以抑制這些訊息。 eg: ### POST /user/login ab -n 100 -kc 10 -p user_login -T 'application/json' -H 'Accept-Encoding:gzip, deflate' -H 'accept-language:zh-Hans-CN;q=1, en-CN;q=0.9' http://XXX/user/login ##### request data 文件 user_login 内容: {"email":"ws65536@qq.com","password":"ws65536"} 登入後複製 ### GET /default/index ab -n 1000 -c 100 http://XXX/default/index 登入後複製 測試的同時可以在被測試的伺服器上使用htop指令查看CPU和記憶體的即時使用情況: 關於abache 可參考 二、設定最佳化nginx處理PHP請求有三個步驟。 第一步:接受請求,發現是PHP請求,轉向第二步。 第二步:透過socket的方式,連接PHP-FPM的fast-cgi,讓PHP-FPM處理請求。 第三步:取得PHP-FPM處理結果,加上http報頭,回傳給客戶端。 所以,我們要提高nginx的PHP並發性能,我們需要做這三步驟。 1.調大nginx的並發連接數(調nginx.conf 的worker_connections 和 worker_processes)。 worker_connections : 每個worker進程能並發處理(發起)的最大連接數(包含所有連接數)worker_processes :指明了nginx要開啟的進程數,據官方說法,一般開一個就夠了,多開一個幾個,可以減少機器io帶來的影響。 一般為目前機器總cpu核心數的1到2倍。 參考:nginx 並發數問題思考:worker_connections,worker_processes與 max clientsNginx工作原理與最佳化、漏洞2.调大php-fpm的并发连接数(调php-fpm.conf 的pm.max_children等)。 本人用的是Ubuntu 14.04.4,PHP 5.5.9,以下目录结构对其他服务器环境可能不适用。 由于在 /etc/php5/fpm/php-fpm.conf 中并没有找到 max_children ,于是使用以下命令进行查找: # 在/etc/php5/fpm 目录下查找所有文件,并依次在每个文件中查找"max_children" sudo find /etc/php5/fpm -name * | xargs grep "max_children" 登入後複製 终于在 /etc/php5/fpm/pool.d/www.conf 中找到了 max_children 等相关配置。 关于具体配置,请参考以下内容: (PHP手册)FastCGI 进程管理器(FPM) php-fpm的配置和优化 PHP-FPM性能优化参考 PHP FPM php-fpm.conf设置详解 3.增加系统的最大文件数量限制(ulimit -n 65535)。 由于NGINX处理PHP请求的第二步需要通过socket的方式和PHP-FPM通信,它能新建的最大socket数受到系统最大打开文件数的限制。新装的Linux默认只有1024,所以必须增加系统最大打开文件数目。 ulimit -n 命令可以查看当前系统最大打开文件数。 ulimit -n 65535 可以将系统最大打开文件数临时修改为65535,然而退出登录后就会失效。 想要修改系统最大打开文件数,并永久生效: vi /etc/security/limits.conf # 添加如下的行 * soft noproc 11000 * hard noproc 11000 * soft nofile 65535 * hard nofile 65535 登入後複製 说明: * 代表针对所有用户 noproc 是代表最大进程数 nofile 是代表最大文件打开数 具体配置参考一下内容: ulimit -n 修改 linux有效修改max open files/ulimit -n
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
PHP數組從URL參數中取得的行為不如預期
我有一個包含類別ID的URL參數,我想將其視為一個數組,如下所示:http://example.com?cat[]=3,9,13在PHP中,我使用它從URL參數取得數組:$catI...
來自於 2024-04-06 22:09:02
0
1
1428
我應該在 apache 中哪裡放置 CustomLog 指令
我正在使用php:7.2-apachedocker。我需要禁用運行狀況檢查url登入訪問日誌。基於此鏈接,他們提到了有關修改Customlog指令的資訊。我不是關於需要更改Cust...
來自於 2024-04-06 22:03:59
0
1
990
傳回值中變數的格式是什麼?
我是php的新學習者。我發現有一段程式碼:if($x<time()){return[false,'error'];}邏輯或變數並不重要,但我不明白[false,'error'...
來自於 2024-04-06 21:55:20
0
1
778
依照ID對MySQL結果進行分組以便循環遍歷
我有一個表,其中有mysql中的航班資料。我正在編寫一個php程式碼,它將使用codeigniter3對資料進行分組和顯示journey_idair_idFlightDuratio...
來自於 2024-04-06 17:27:56
0
1
406
相關專題
更多>
熱門推薦
熱門教學
更多>
|