1、PHP有沒有辦法判斷伺服器壓力過大,訪問的人過多
wp-cron.php進程過多造成伺服器負載過大的解決辦法
WordPress定時任務(如資料庫自動備份、自動發表文章)主要靠wp-cron.php來實現的,其原理如下:當有用戶訪問Wordpress站點的內容是,Wordpress系統判斷當時是否有需要運行的後台任務,如果有則在後台訪問wp-cron.php執行定時任務。Wordpress定時任務功能給用戶確實帶來了很大的方便,但是也有一些用戶在使用定時任務時遇到了一些問題。如wp-super-cache緩存插件的用戶可能會遇到wp-cron.php進程過多,造成伺服器負載過大或虛擬主機CPU配額超標。
如你遇到wp-cron.php進程過多造成伺服器負載過大,可以通過以下方法解決:
1、禁用Wordpress定時任務wp-cron,編輯wp-config.php,加入以下內容:
define( 'DISABLE_WP_CRON' , true);
WordPress定時任務被禁用後,會造成一些功能無法使用,如資料庫定時備份、定時發表文章等。如你確需要以上功能,可通過伺服器crontab設置定時訪問wp-cron.php來執行定時任務,具體方法如下:
2、在Linux系統的crontab中填加以下內容(請修改對應的Wordpress目錄),設置每15分鍾訪問一次wp-cron.php以執行Wordpress定時任務。
*/15 * * * * php -q /home/public_html/wp-cron.php
2、如何使用ab對WebSocket伺服器做並發性能測試
Apache伺服器自帶了ab壓力測試工具,可以用來測試網站性能,使用簡單方便。
工具/原料
Apache
方法/步驟
打開Apache伺服器的安裝路徑,在bin目錄中有一個ab.exe的可執行程序,就是我們要介紹的壓力測試工具。
在Windows系統的命令行下,進入ab.exe程序所在目錄,執行ab.exe程序。注意直接雙擊無法正確運行。
執行ab命令成功後,可以看到如圖提示。該幫助很清楚詳細的介紹了ab的用法以及各個參數的含義。
ab 的用法是:ab [options] [http://]hostname[:port]/path
例如:ab -n 5000 -c 200 http://localhost/index.php
上例表示總共訪問http://localhost/index.php這個腳本5000次,200並發同時執行。
ab常用參數的介紹:
-n :總共的請求執行數,預設是1;
-c: 並發數,預設是1;
-t:測試所進行的總時間,秒為單位,預設50000s
-p:post時的數據文件
-w: 以html表的格式輸出結果
執行測試用例:ab -n 1000 -c 100 -w http://localhost/index.php >>c:\1.html
上面的測試用例表示100並發的情況下,共測試訪問index.php腳本1000次,並將測試結果保存到c:\1.html文件中。
測試報告如圖,可知在該100並發訪問的情況下,共測試訪問1000次,失敗了852次。可知該腳本在此環境無法滿足100並發訪問的要求。
修改參數繼續測試。測試並發50和30兩種情況,由測試報告得知,在並發訪問降到30時,錯誤的訪問數降為39。
步驟閱讀
3、Nginx+PHP-fpm優化並發量
土豪!! 需要打雜的不?
5台8核16G,都是php伺服器? 不是我說,這是吊炸天的節奏啊!
集群沒接觸到,不過我感覺的話,只用一台機子1K的並發是沒問題的,前提是圖片、靜態文件,資料庫在其他伺服器上。
首先,你告訴nginx系統是8核的。 其次你這配置,php-fpm進程開300+差不多吧,具體數值多測試測試。有個max_children_length 和 進程靜態開啟
接下來,為什麼並發扛不住呢? 還不是因為單個php進程佔用時間長,導致後面阻塞。
所以nosql一定設計好
不是我說,16G內存,你們多大的資料庫?要是我,將大部分數據存在內存,走內存多快。
之後php連接mysql要及時關閉,mysql也有連接數上限的,要是不及時關閉,後面php連mysql也會堵住。
真的,打算年後跳槽,你們這么N的公司,缺個掃地的不?
補充一下,曾經看見一個測試數據,阿里雲1G1核並發能撐到600.
4、PHP做聊天伺服器後台,並發一萬,用socket可以么
您好,我來為您解答:
肯定socket性能高呀
php寫伺服器沒問題的,你看下 workerman-chat,是一個現專成的php聊天屬室框架。普通的php程序肯定不行。
還有個更牛的動態聊天程序,後台也是php寫的伺服器支撐的。
希望我的回答對你有幫助。
5、Php 網站並發量,假如同時有一百個人來請求我的商品頁面goods.php?goods_id=x
100個請求不算大並發吧 當一個請求過來時,php就創建一個進程,專門接待這個請求,專直到處理屬完這個請求。php能同時派出很多人(進程),互不幹擾。
伺服器處理器和內存越大,php就能派出越多的人。這個不需要php程序員操心。當然,處理器和內存一定的情況先,如果每個人的工作量越小(程序設計的越優),php就能同時派出更多的人。
6、請教,如何對PHP站點作壓力測試
網站壓力制測試Web-CT 4.0
可以測試不同上網方式、在不同地區、訪問Web不同頁面、在不同並發訪問密度情況下的:客戶端的響應時間、流量和流速;可以測試任何主機、Web Server和頁面(HTML、CGI、JSP、PHP、ASP、GIF、FLASH以及聲音、MPEG等多媒體文檔);可以進行分布式多機並行測試,然後合並和計算機測試報告,實現極高的伺服器測試壓力。
7、php web伺服器。網站上線在即,請問如何測試伺服器壓力呢?比如如何知道這個網站到底能同時承受
利用一些軟體吧,可用來進行 Web 壓力測試的工具有很多,比如微軟的 Web Application Stress、Linux下的 siege、功能全面的 Web-CT 等等,這些都是非常優秀的 Web 壓力測試工具。
一、 Siege
一款開源的壓力測試工具,可以根據配置對一個WEB站點進行多用戶的並發訪問,記錄每個用戶所有請求過程的相應時間,並在一定數量的並發訪問下重復進行。
官方:http://www.joedog.org/
1. 下載源碼
請自行google例如:
wget http://soft.vpser.net/test/siege/siege-2.67.tar.gz
2. 解壓、編譯和安裝
tar -zxf siege-2.67.tar.gz cd siege-2.67/ /configure make && make install
3. 運行siege
siege -c 200 -r 10 -f test.txt
-c是並發量,-r是重復次數。 url文件就是一個文本,每行都是一個url,它會從裡面隨機訪問的。
test.txt 內容:
http://blog.test.com/wp-content/uploads/2012/07/cluster6.png
http://blog.test.com/wp-content/uploads/2012/07/cluster7-150x150.png
http://blog.test.com/wp-content/uploads/2012/07/cluster7.png
http://blog.test.com/wp-content/uploads/2012/07/cluster8-150x150.png
http://blog.test.com/wp-content/uploads/2012/07/cluster9-150x150.png
4 結果說明
Lifting the server siege… done.
Transactions: 3419263 hits //完成419263次處理
Availability: 100.00 % //100.00 % 成功率
Elapsed time: 5999.69 secs //總共用時
Data transferred: 84273.91 MB //共數據傳輸84273.91 MB
Response time: 0.37 secs //相應用時1.65秒:顯示網路連接的速度
Transaction rate: 569.91 trans/sec //均每秒完成 569.91 次處理:表示伺服器後
Throughput: 14.05 MB/sec //平均每秒傳送數據
Concurrency: 213.42 //實際最高並發數
Successful transactions: 2564081 //成功處理次數
Failed transactions: 11 //失敗處理次數
Longest transaction: 29.04 //每次傳輸所花最長時間
Shortest transaction: 0.00 //每次傳輸所花最短時間
二、Webbench
webbench最多可以模擬3萬個並發連接去測試網站的負載能力,安裝使用簡單方便。
1. 下載源碼
請自行google例如:
wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
2. 解壓、編譯和安裝
tar zxvf webbench-1.5.tar.gz cd webbench-1.5 make mkdir /usr/local/man #建立相應目錄否則導致無法正常安裝 make install
3. 運行webbench
webbench -c 100 -t 30 http://192.168.1.235/index.html
-c表示並發數,-t表示時間(秒)
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.1.235/index.html
100 clients, running 30 sec.
Speed=16084 pages/min, 152872 bytes/sec. #運行結果顯示
Requests: 8042 susceed, 0 failed.
三、Web Application Stress Tool
這是由微軟的網站測試人員開發的專門用來進行實際網站壓力測試以一套工具。透過這套功能強大的壓力測試工具,管理人員可以在網站實際上線之前先網站進行如同真實環境下的測試,以找出系統潛在的問題,對系統進行進一步的調整、設置工作。
8、普通linux伺服器nginx+php能支持多少並發
同樓上所說,自己下載個軟體來做下壓力測試才能得出較准確的數據,使用nginx更多是專用來支屬持動態頁面,而且還可以做代理和一些限制設置,但論功能而言比apache更廣, apache 更擅長於對靜態頁面的解釋,穩定且比nginx配置更為簡單,兩個各有優點
9、為什麼這么多人覺得運行PHP的並發可以上1000??
網上說的有些誇大,關鍵還在於nginx+php+fastcgi搭建完或搭建過程中的一些優化,包括使用緩存加速工具,經過優化後web性能有明顯的提高。這是我用壓力測試工具測試的並發數量。
[root@mysql-DRBD-M webbench-1.5]# webbench -c 8000 -t 30 http://192.168.1.60/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.1.60/index.php
8000 clients, running 30 sec.
Speed=49520 pages/min, 189468 bytes c.
Requests: 24752 susceed, 8 failed.
kimi 17:23:04
10、如何利用ApacheBench進行伺服器壓力測試
Apache伺服器自帶了ab壓力測試工具,可以用來測試網站性能,使用簡單方便。
工具/原料
Apache
方法/步驟
打開Apache伺服器的安裝路徑,在bin目錄中有一個ab.exe的可執行程序,就是我們要介紹的壓力測試工具。
在Windows系統的命令行下,進入ab.exe程序所在目錄,執行ab.exe程序。注意直接雙擊無法正確運行。
執行ab命令成功後,可以看到如圖提示。該幫助很清楚詳細的介紹了ab的用法以及各個參數的含義。
ab 的用法是:ab [options] [http://]hostname[:port]/path
例如:ab -n 5000 -c 200 http://localhost/index.php
上例表示總共訪問http://localhost/index.php這個腳本5000次,200並發同時執行。
ab常用參數的介紹:
-n :總共的請求執行數,預設是1;
-c: 並發數,預設是1;
-t:測試所進行的總時間,秒為單位,預設50000s
-p:POST時的數據文件
-w: 以HTML表的格式輸出結果
執行測試用例:ab -n 1000 -c 100 -w http://localhost/index.php >>c:\1.html
上面的測試用例表示100並發的情況下,共測試訪問index.php腳本1000次,並將測試結果保存到c:\1.html文件中。
測試報告如圖,可知在該100並發訪問的情況下,共測試訪問1000次,失敗了852次。可知該腳本在此環境無法滿足100並發訪問的要求。
修改參數繼續測試。測試並發50和30兩種情況,由測試報告得知,在並發訪問降到30時,錯誤的訪問數降為39。
步驟閱讀