최근 HTML코인 CPU 채굴을 해보고 있는데
흔히 접할 수 있는 PC들의 CPU가 멀티코어/멀티쓰레드 지원이 된다.
CPU 채굴을 진행하면 윈도우의 작업관리자에서 CPU 사용량이 증가하는데..
채굴 프로그램 구동 시 1개 Thread 100% 사용이라고 보면 된다.
1004lucifer
PC 에서 채굴 프로그램 구동 시 CPU Thread 갯수에 따라 CPU 사용량이 달라진다.
- 2 Thread: 50% 사용
- 4 Thread: 25% 사용
- 8 Thread: 12~13% 사용
- 16 Thread: 6~7% 사용
PC 1개에 채굴프로그램을 여러개 띄울 수 있는데..
4 Thread PC 에서는 채굴 프로그램 3개를 띄워 CPU 75% 부하로 운영할 수 있다.
문제
처음에 무작정 채굴 프로그램을 많이 띄우는게 좋을것 같아
제온 12코어/24쓰레드 PC에서 20개의 채굴 프로그램을 구동했었다.
(CPU 사용율 90%)
원인분석
근데 각각의 채굴 수행되는 시간이 생각보다 늦어져서 혹시나 싶어 채굴프로그램을 하나하나 끌 때마다 다른 채굴들의 속도가 빨라지는 것을 볼 수 있었다.
1004lucifer
채굴프로그램(명령어) 수행-종료 되는 시간을 측정해 보았다.
채굴프로그램갯수: 각각의 채굴프로그램 수행시간
20개: 5분30초
16개: 4분20초
14개: 3분40초
12개: 3분10초
10개: 3분
08개: 3분
컴퓨터가 12코어/24 쓰레드 이다보니..
코어갯수에 따른 12개 이하로는 채굴프로그램을 더 종료해도 채굴 시간에 영향을 미치지 못했다.
생각해보니.. 실제로 일을 하는건 코어가 일을 하는거고..
Thread 자체는 코어에서 해야 하는일을 스무스하게 나눠서 분산처리를 해주는 거라서 코어 갯수 이상으로 채굴을 하게되면 채굴프로그램의 퍼포먼스가 안나올 수 밖에 없다.
결론
현재 해당 서버는 코어갯수대로 12개의 채굴 프로그램을 가동하도록 변경했고 각각 채굴에서의 가장 효율적인 방향으로 잡았다.
1004lucifer
CPU 사용율은 50%가 되었지만 채굴 시간이 늘어나면서 까지 채굴 프로그램을 여러개 돌리는게 좋은것일까 생각해봤는데..
누군가 채굴에 성공하게되면 새로운 해시값을 다시 뽑아야 하기 때문에 채굴 확률을 올리기 위해서는 마이닝 시간은 무조건 빨라야 하는게 좋다고 생각이 든다.
(그렇다면.. 채굴시간에 영향을 받지 않는 범위내에서 채굴을 많이 돌리는게 제일 효율적이라 생각이 들었다.)
댓글
댓글 쓰기