Profile
AcroEOS

2018.11.16

잇따른 제한 조정, CPU에 무슨 일이 생겼나

Views 425 Votes 0

썸네일.png

 

안녕하세요. AcroEOS입니다.
얼마 전 CPU 부하 문제로 CPU 제한을 20% → 30%로 상향 조정했습니다.

헌데, 다시 그 제안을 25%로 재조정했다는 소식이 있었는데요.

왜 다시 5% 하향 조정하였는지 그 이유에 대해서 말씀드리고자 합니다.

이는 EOS의 블록 생성과 관련이 있습니다.

 

블록 생산 시간

EOS의 블록 1개 생성 시간은 0.5초(500ms)입니다.

블록 생성 작업 중에서 CPU에 할당된 최대 공간(Max Block Cpu Usage)은 고정 값으로 연산에 소요되는 시간은 0.2초(200ms)입니다. 나머지 0.3초(300ms)는 블록전파(propagation) 등의 작업이 이루어집니다.

 

왜 다시 25%로 하향 조정했을까?

고정 값이던 CPU 할당 공간을 30%로 상향 조정한 이후부터 블록 생성이 지연(Latency)되어 ‘마이크로 포크(Micro Folk)가 발생하였고, 이로 인해 블록 생성을 놓치게 되는 블록 미싱 증상이 나타났습니다. CPU 제한을 30%로 늘려 연산 시간을 확보함으로써 CPU 부하로 인한 문제가 해결되는 듯 보였지만, 블록 전파(Propagation) 등에 소요되는 리소스가 상대적으로 줄어들게 되어 이와 같은 증상이 발생한 것입니다.

 

※ 마이크로 포크
대개 블록 전파 지연(Latency)시간으로 인해 발생하는 증상입니다. 이로 인해, 각 노드가 서로 다른 블록을 쌓기 시작하고 체인이 나뉘어 블록을 생산하게 되는 경우에 포크가 발생한다고 이야기합니다. 보통 이 경우, 긴 체인 법칙에 따라 다수의 승인(+2/3)검증을 먼저 받는 블록/체인이 비가역성을 갖게되고 정당성을 입증받아 체인을 이어나가게 됩니다. 반면 더 이상 이어 나아가지 못하는 체인은 고아블록(Orphan Block)이 되어 소멸합니다.

 

 


image.png
*마이크로 포크로 인한 블록미싱 발생
 

 

정리하면, 아래와 같습니다.

  1. CPU 부하 증상 발생
  2. CPU 제한 30% 상향 조정 → CPU 연산 시간 상향
  3. 블록 검증, 전송 투입 리소스의 상대적 감소
  4. 마이크로 포크 증상
  5. 블록 미싱 발생

CPU부하 증상을 해결하기 위해 고정된 CPU 제한을 30%만큼 상향 조정하여 트랜젝션에 대한 연산 시간은 확보했지만, 블록을 검증하고 전송하는 작업 등에 투입되는 시간이 상대적으로 줄어들게 되었고, 이것이 마이크로 포크를 유발하여 결과적으로 블록 미싱이 발생한 것으로 볼 수 있습니다.

 

이에 CPU 제한을 다시 25%로 재조정한 이유는 블록 연산 시간에 할당된 비중을 줄여 부족해진 검증/전송 시간을 확보한 상태라 볼 수 있습니다. 이렇듯, CPU부족에 의해 발생하는 증상을 제한을 풀어 조치하는 방법은 일시적인 미봉책에 불과합니다. (※어느 정도 해소는 가능하지만, 앞서 이야기한 바와 같이 마이크로 포크에 의한 블록 미싱이 발생할 수 있음)

 

따라서 EOS.IO의 전체적인 개선이 필요한 시점이며, 댄 라리머는 현재 진행중인 멀티스레드 시그니쳐와 REX가 CPU 환경 개선에 도움을 줄 것이라 이야기한 바 있습니다. 앞으로 있을 하드포크 역시, 그 해결 방안 중 하나일 것이라 예상합니다.

 

Contact

EOS producer name : acroeos12345
Email : community@acroeos.io
Steemit : https://steemit.com/@acroeos
Medium : https://medium.com/acroeos
Twitter : https://twitter.com/acroeos
Telegram : https://t.me/AcroEOS
Wechat : AcroEOS信息站!
proxyname : votetochange

Profile
5
Lv

0개의 Comment

Profile
No. Subject Author Date Views
133 렛져로 친타이를 이용해보자! feat. 스캐터 3 N profile AcroEOS 6 시간 전 42
132 AcroEOS 주간 리포트 - Week 32 (2018.12.10~2018.12.16) 1 N profile AcroEOS 7 시간 전 16
131 EOS Mainnet Monitoring Weekly Report (2018.12.03~2018.12.09) 2 profile AcroEOS 6 일 전 60
130 AcroEOS 주간 리포트 - Week 31 (2018.12.03~2018.12.09) 5 profile AcroEOS 7 일 전 101
129 2018을 마무리하며, ONGOING EOS 16 profile AcroEOS 11 일 전 564
128 EOS Mainnet Monitoring Weekly Report ( 2018.11.26~2018.12.02) 1 profile AcroEOS 12 일 전 54
127 [Recruitment] AcroEOS 신규 채용 공고 - Technical Manager 2 profile AcroEOS 13 일 전 105
126 AcroEOS 주간 리포트 - Week 30 (2018.11.26~2018.12.02) profile AcroEOS 14 일 전 35
125 EOS Mainnet Monitoring Weekly Report ( 2018.11.19~2018.11.25) profile AcroEOS 20 일 전 46
124 AcroEOS 주간 리포트 - Week 29 (2018.11.19~2018.11.25) profile AcroEOS 21 일 전 43
123 [AcroEOS] Ledger — EOS DApp 지원설정 안내 2 profile AcroEOS 22 일 전 158
122 devEOS X AcroEOS 블록체인 실전 개발 원데이 클래스 모집 4 profile AcroEOS 26 일 전 88
121 EOS Mainnet Monitoring Weekly Report ( 2018.11.12~2018.11.18) 1 profile AcroEOS 28 일 전 138
120 AcroEOS 주간 리포트 - Week 28 (2018.11.12~2018.11.18) profile AcroEOS 28 일 전 24
잇따른 제한 조정, CPU에 무슨 일이 생겼나 profile AcroEOS 2018.11.16 425
118 EOS Mainnet Monitoring Weekly Report (2018.11.05~2018.11.11) profile AcroEOS 2018.11.12 70
117 2018 EOS.IO 샌프란시스코 해커톤 Dan Larimer's Q&A 4 profile AcroEOS 2018.11.12 135
116 AcroEOS 주간 리포트 - Week 27 (2018.11.05~2018.11.11) profile AcroEOS 2018.11.12 37
115 [AcroEOS] 총 투표(Referendum) 툴 베타 프리뷰 2 profile AcroEOS 2018.11.09 104
114 [AcroEOS] 중재 거버넌스 프로젝트 - Deru profile AcroEOS 2018.11.07 48
113 EOS Mainnet Monitoring Weekly Report (2018.10.29~2018.11.04) profile AcroEOS 2018.11.06 59
112 AcroEOS 주간 리포트 — Week 26 (2018.10.29~2018.11.04) profile AcroEOS 2018.11.05 59
111 [AcroEOS] 채권 기반 분쟁 조정 플랫폼 텅스텐을 소개합니다. profile AcroEOS 2018.11.02 61
110 EOS Mainnet Monitoring Weekly Report (2018.10.22~2018.10.28) 3 profile AcroEOS 2018.10.31 42
109 AcroEOS 주간 리포트 — Week 25 (2018.10.22~2018.10.28) profile AcroEOS 2018.10.30 19
108 [AcroEOS] EOS 계정 - Ledger Nano S 연동하기 (Feat. Scatter Desktop) 텍스트 버전 13 profile AcroEOS 2018.10.26 166
107 [AcroEOS] EOS 계정 - Ledger Nano S 연동하기 (feat.Scatter Desktop) 1 profile AcroEOS 2018.10.25 95
106 EOS Mainnet Monitoring Weekly Report (2018.10.15~2018.10.21) profile AcroEOS 2018.10.25 30
105 프록시 투표위임자 POOR 드랍 가능 한가요? 2 profile 푸른바다 2018.10.25 50
104 AcroEOS 주간 리포트 — Week 24 (2018.10.15~2018.10.21) profile AcroEOS 2018.10.22 56