-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve the efficiency of signature verification #5386
Comments
It is best to list your hardware environment, especially the CPU. In addition, how much percentage of performance is expected to be improved by this modification? Is there any reference for adjusting the number of threads and CPU cores to 1:1? |
I have 3 questions, as below:
|
@guoquanwu yes, that has been add to the issue,100% percentage of signature verification performance is expected to be improved by this modification for the signature verification actually only depends on the cpu, so theoretically doubling the number of processing cores can reduce the processing time by one time. In addition, from the existing statistical charts listed above, the currently used cpu resources are low, it will not reach the bottleneck of the CPU even if the usage is doubled , so adjusting the number of CPU cores used will theoretically not lead to excessive resource consumption. Setting it to the same number as the number of CPU cores is because signature verification is a CPU-intensive operation that relies purely on the CPU. |
@xq-lu 1. the CPU will not run at full capacity(100%) for current cpu is not running at 50% usage. |
|
Actually this parameter |
1.that is not catching up with the block. |
@lurais How much time will it save , can you describe it in more detail? |
@halibobo1205 yes I have tested that and it saved about 10% of the time in block push operation with 8c 32g machine. And the time of verification signature reduced about 23%. |
@halibobo1205 No other problems. |
Rationale
At present, there is a signature verification process in the transaction verification process. In order to improve the efficiency of signature verification, multiple transactions are currently verified in parallel. The number of CPU cores used in the parallel verification process is set to half of the current CPU core number. From the figure below, this setting is conservative and wastes node performance.
Here is the cpu usege stats and the transaction verification time cost. And it doesn't use too much CPU resource from the image while the average time of signature verification process may be more than 30ms.
System information
cpu:8 cores
memory: 16G
java-tron version: 4.7.2
And here is the cpu usage stats in the last two days, it used no more than 18% of the cpu resource.
Why should this feature exist?
To improve the efficiency of signature verification.
Implementation
Therefore, I propose to use all the cores in signature verification process to leverage the system performance and improve the efficiency of signature verification.
Are you willing to implement this feature?
yes
The text was updated successfully, but these errors were encountered: