Thinkphp5 用ab壓力測試工具測試高並發請求


上篇文章【Thinkphp5實現悲觀鎖】已介紹過thinkphp5使用悲觀鎖實現高並發的場景,這篇文章將實際測試下。

在shell里進入到apache的bin目錄,輸入以下url:

ab -n 100 -c 100 http://www.xyh.com/index/index/mysql_unlock  【不加鎖的情況,模擬100次請求,每次100個用戶】

備注:如果提示socket: Too many open files (24),請執行ulimit -a,然后ulimit -n 1024。下圖是我已經修改后的。

 

由於在本機測試,如果並發太大,機器報錯,需要重新編譯apache。我這里只是為了測試thinkphp加鎖是否能滿足業務需求,所以並發設為100個,用來測試即可。數據庫的商品表,我把庫存設為50個。正常情況應該是:goods商品表中庫存total值為0,銷量sell為50,orders訂單表有50條記錄。經過測試,發現不加鎖的情況如下圖:

庫存tatol為3個,銷量sell為47,orders訂單表有49條記錄。很明顯這不符合實際的業務需求!(這還是100次並發的情況,如果幾十萬的並發,錯誤更加離譜。會直接給公司帶來巨大的損失)

下面再看看加鎖后的測試情況:

庫存tatol為0個,銷量sell為50,orders訂單表有50條記錄。符合預期,滿足業務需求!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM