Transactions
商品硬體每秒可以處理多少筆交易?
我正在使用以下命令在專用網路上執行 geth:
geth --datadir firstserver --mine --minerthreads 1 --networkid 1300 --rpcport 8000 --rpcaddr 127.0.0.1 --port 30303 --rpcapi="db,eth,net,web3,personal,admin" --rpc --maxpeers 3 --nodiscover --cache=2048 --memprofilerate=100 --targetgaslimit 210000000000 console
我有 8 GB 的 RAM 和一個四核 CPU。我正在執行 1 個礦工執行緒。
當我從 jmeter 每秒執行 24 個事務時,系統執行良好,但是當我將其增加到每秒 28 個事務時,系統會凍結。
CPU 使用率為 370%,記憶體使用率為 90%,我無法在該伺服器上執行任何工作。我想每秒獲得 200 多筆交易,我該如何實現?我應該怎麼做才能達到這樣的速度?
這個問題很老,但我想它應該得到一個普遍的答案。對於此類問題,主要有兩種可能:
- 要麼你沒有足夠的記憶體
- 或者你沒有足夠的計算能力(你可以通過更多的 CPU 來增加)
要在這兩個問題之間做出決定,您可以查看 CPU 和記憶體使用情況,但在某些情況下(如您的情況)這還不夠。因此,了解數據的一個好方法是在探勘時查看數據(例如使用 htop 或 top)。一開始,你的 CPU 應該是 100%,你的記憶體使用應該慢慢增加。然後,在某個時候,應該會發生以下情況之一:
- 你的 RAM 使用接近 80-100%,你的交換使用開始增加,你的 CPU 使用減少。
- 您的 RAM 使用保持不變,每個 CPU 使用保持在 100% 附近。
在第一種情況下,您沒有足夠的 RAM。在第二種情況下,您沒有足夠的計算能力。
在您的情況下,您說您實現了 360% 的 CPU 使用率。如果它是平均使用(由 GNU 時間輸出),那麼我會說這是一個 RAM 問題(你應該有 >= 390% 其他)。
我希望它有所幫助。