思路:啟動max_workers個workers(執行緒),每個執行緒處理乙份輸入資料。
如果自己統計,那還需要對下邊的指令碼進行擴充套件。
如果搭配grafana等監控工具使用,那壓測指令碼只負責瘋狂發請求就好了。
import concurrent.futures
def parallel_process(client_config, inputs, max_workers):
poolexecutor = concurrent.futures.threadpoolexecutor
# 這裡也可以改成程序。poolexecutor = concurrent.futures.processpoolexecutor
with poolexecutor(max_workers=max_workers) as executor:
futures = [executor.submit(single_process, *(client_config, inputs)) for _ in range(max_workers)]
# 每個future.result()返回的就是每個single_process的responses。
[future.result() for future in concurrent.futures.as_completed(futures)]
def single_process(client_config, input_file):
# 自己按需實現create_client,比如返回乙個http或者rpc client。
client = create_client(client_config)
# 用client的方法處理每個input,比如這個方法叫process。
responses = [ client.process(input) for input in inputs ]
# 如果需要統計latency等,可以在這裡寫**統計下。
return responses
phoenix 併發壓測
測試環境 2 cpu 40 邏輯 核 記憶體 62g 測試 sql select account name from f fact url account status where account id 465132133 limit 1 select account name account id...
JMETER併發壓測
通過jmeter的命令列執行指令碼,實現多個使用者同時請求介面,實現併發 因為我希望同時壓測兩個介面,所以試了兩種方式來實現,目前好像兩種都可,如果出現了什麼其他錯誤歡迎指出 第一種 1.建立測試計畫 2.新增乙個執行緒組 3.新增乙個同步定時器 synchronizing timer 該定時器作用...
百萬併發壓測後續
檢視指定的埠 lsof i port 檢視所有埠 netstat aptn 通過lsof命令檢視某個特定的程序開啟的檔案數 lsof p 1296 wc l 獲取當前socket連線狀態統計資訊 cat proc net sockstat 獲取當前系統開啟的檔案控制代碼 sysctl a grep ...