DEV/OS 6

Keep Alive를 사용한 Connection Closed 대응 과정

어느날 아래와 같은 오류가 발생했습니다. 결론적으로는 Keep Alive 설정에 문제가 있었습니다.앞으로는 비슷한 오류가 발생하지 않도록 대응했던 과정을 정리해보겠습니다.2025-04-16T01:58:49.626Z[ERROR][2.0.1][tp-epoll-2] .s.i.h.a.o.g.XXXXXXClient : invoke Sending mutation failed: error=org.springframework.web.reactive.function.client.WebClientRequestException: recvAddress(..) failed: Connection reset by peer2025-04-16T02:13:42.896Z[ERROR][2.0.1][tp-epoll-1] s.i.h.a.s.X..

DEV/OS 2025.04.19

Block/File/Object Storage 그리고 Goofys(Fuse)

저장소 시스템 종류저장소 시스템 종류에는 크게 3가지가 있다.block storagefile storageobject storage세 가지 종류의 storage의 차이점을 이해해보자. 그리고 Fuse가 무엇이고 어떤 경우에 사용되는 것인지까지 이해해보자. 먼저 각 Storage에 대한 개념적인 설명이다.block storageHDD나 SSD처럼 서버에 물리적으로 연결되는 형태의 드라이브는 블록 저장소의 가장 흔한 형태이다. 블록 저장소는 raw block을 서버에 volume의 형태로 제공한다. 가장 유연하고 융통성이 놓은 저장소다. 서버는 raw block을 포맷한 다음 파일 시스템으로 이용하거나 애플리케이션에 블록 제어권을 넘겨버릴 수도 있다. 데이터베이스나 가상 머신 엔진 같은 애플리케이션은 raw..

DEV/OS 2025.04.14

HDD는 왜 IOPS 기준으로 provisioning이 제공되지 않을까?

File Storage, Block Storage, Object Storage의 차이점을 알아보기 이전에 HDD와 SSD 등의 기본 개념을 되짚어보고 AWS와 같은 클라우드 서비스에서 어떤 차이를 보이는지 알아본다.HDD와 SSD 개념HDDHDD의 기본적인 구조는 넘어가고 중요한 요소한 다뤄보려고 한다. HDD는 기계적인 구조를 갖춘 저장 장치이다. 디스크 I/O 시간은 다음 세 가지 요소로 구성된다.Seek Time: 헤더가 해당 트랙으로 이동하는 시간Rotational Latency: 디스크가 회전하여 데이터가 헤더에 도달할 때까지 기다리는 시간Data Transfer Time: 데이터를 실제로 전송하는 시간주의사항은 디스크에 표기된 transfer rate는 디스크 내부 속도이며, OS나 애플리케이..

DEV/OS 2025.04.14

Everything is a File (How a storage device is treated as a file)

파일을 생성하거나 파일을 전송하면 이 파일은 physical disk에서 특정 영역을 차지한다. 그리고 이 파일을 특정한 file type을 가진다TypeSymbolDescriptionNormal-Normal fileDirectorydNormal directoryHard link-Additional name for existing fileSymbolic linklShortcut to a file or directorySocketsPass data between 2 processesNamed pipepLike sockets, user can't work directly with itCharacter devicecProcesses character hardware communicationBlock devic..

DEV/OS 2025.04.13

GFS와 RocksDB의 Block Cache 모델 비교 (feat. OS Page/Buffer Cache)

GFS 논문에는 아래와 같은 내용이 나온다. Linux의 buffer cache를 믿고 file data를 cache하지 않는다고 한다.Neither the client nor the chunkserver caches file data. Client caches offer little benefit because most applications stream through huge files or have working sets too large to be cached. Not having them simplifies the client and the overall system by eliminating cache coherence issues. (Clients do cache metadata, howev..

DEV/OS 2025.04.13

Possibilities of Performance Bottlenecks for Storage (feat. RocksDB)

File Storage와 Object Storage를 조금이나마 사용해보면서 Storage의 성능 측정을 어떤 기준으로 해야하는지 불명확하게 알고 있었다. 우연히 접한 RocksDB의 Possibilities of Performance Bottlenecks에서 관련된 내용을 발견해서 정리해본다.System Metrics들어가기에 앞서.. Write는 Bandwidth, READ는 IOPs로 구분해서 접근하는 것부터 신선하다..!Disk Write Bandwidth : SSD drive가 허용하는 것 이상으로 write를 시도할 수 있다. 이 때에는 주로 compaction에서 문제가 발생한 것일 수 있다. 무리한 write는 read까지 느리게 만들 수 있다. write가 read까지 영향을 줄 수 있는..

DEV/OS 2025.04.12