Endpoint Node IOPS 사양 관련 문의

안녕하세요. 노드 운영 관련하여 여쭙고 싶은 게 있습니다.

현재 저희가 자체 운영하고 있는 EN의 IOPS 가 클레이튼에서 요구하는 권장사양을 만족하는지가 궁금합니다.
하나의 블록에 여러 트랜잭션이 몰릴 때 처리가 지연되는 이슈가 발생하기 때문인데요, CPU나 RAM은 권장사양을 월등히 넘기 때문에 문제가 안될 것 같아 IOPS 쪽을 살펴보게 되었습니다. (참고로 저희측 EN은 도쿄 쪽 리전에 위치하고 있습니다.)

저희 노드에서 아래 명령으로 IOPS를 조사해보면,
$ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75

아래와 같은 결과가 나옵니다.

test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.7
Starting 1 process
test: Laying out IO file (1 file / 4096MiB)
Jobs: 1 (f=1): [m(1)][100.0%][r=133MiB/s,w=44.1MiB/s][r=34.1k,w=11.3k IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=11725: Tue Nov 17 07:38:45 2020
   read: IOPS=40.1k, BW=157MiB/s (164MB/s)(3070MiB/19603msec)
   bw (  KiB/s): min=128279, max=225600, per=100.00%, avg=160479.10, stdev=20958.79, samples=39
   iops        : min=32069, max=56400, avg=40119.77, stdev=5239.69, samples=39
  write: IOPS=13.4k, BW=52.3MiB/s (54.9MB/s)(1026MiB/19603msec)
   bw (  KiB/s): min=43257, max=75272, per=100.00%, avg=53634.46, stdev=6986.76, samples=39
   iops        : min=10814, max=18818, avg=13408.59, stdev=1746.70, samples=39
  cpu          : usr=7.26%, sys=54.55%, ctx=51084, majf=0, minf=26
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
     issued rwts: total=785920,262656,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
   READ: bw=157MiB/s (164MB/s), 157MiB/s-157MiB/s (164MB/s-164MB/s), io=3070MiB (3219MB), run=19603-19603msec
  WRITE: bw=52.3MiB/s (54.9MB/s), 52.3MiB/s-52.3MiB/s (54.9MB/s-54.9MB/s), io=1026MiB (1076MB), run=19603-19603msec
Disk stats (read/write):
  sda: ios=796747/273892, merge=0/12974, ticks=860953/145573, in_queue=1006391, util=99.65%

위 출력값 중

   read: IOPS=40.1k, BW=157MiB/s (164MB/s)(3070MiB/19603msec)
  write: IOPS=13.4k, BW=52.3MiB/s (54.9MB/s)(1026MiB/19603msec)

부분을 보면 권장 IOPS 3.5K 눈 충분히 넘는 것으로 확인이 되고 있습니다만, 혹시 몰라 여쭈어봅니다 :thinking:

안녕하세요.
항상 저희 Klaytn에 관심가져주시고 문의주셔서 감사드립니다. :slight_smile:

말씀하신데로 해당 spec정도면 IOPS적으로는 충분합니다.

저희도 몇몇 노드에서 가끔 블록처리시간이 길어지는 부분을 인지하고 있으며 해당 부분을 개선하기 위해 노력중입니다.
아마도 Database를 access하는 과정에서의 병목이 있을 것으로 보고 분석 중입니다.

빠른 시일내에 개선된 Klaytn을 더 사용하실수 있도록 하겠습니다.

혹시 특정 블록이나 특정 상황에서 현상이 나타나신경우 본 Forum이나 아래 메일로 관련 정보를 주시면 분석 및 개선에 도움이 될것 같습니다.

ethan.kim@groundx.xyz

참고로 개선 전까지는 아래 방안을 통해서 해당 증상을 완화시킬수 있습니다.

  • RAM을 높여서 cache 사이즈를 늘리기
  • 최초 node 실행시 warmup을 통해 cache를 빠르게 채우기 link

감사합니다.

2 Likes