본문 바로가기

Operating System4

Max user processes & Open files Elasticsearch를 처음 설치하다 보면 항상 보는 에러들이 몇 가지 있습니다. 1) root 계정으로 실행할 수 없으며 2) openfiles, max process 값을 수정해야하고 3) swappiness 값 설정 변경 요청도 있습니다. 그 중에 elasticsearch는 openfiles와 max process는 최소 65535로 설정하라며, 커널에서 해주는 기본 설정보다 큰 값을 요구하는데요, 오늘은 해당 파라미터가 정확히 어떤 것을 가르키는지 그리고 설정된 값 이상이 되면 어떤 일이 일어나는지 알아보겠습니다. 1. Max user processes Max user processes의 의미는 하나의 계정에서 최대로 실행할 수 있는 process의 개수를 말합니다. OS에서의 확인은 # ul.. 2022. 10. 18.
[Kubernetes] Container Runtime 컨테이너를 구글에 검색했을 때 가장 많이 나오는 내용은 역시 Docker와 쿠버네티스(이하 K8s)입니다. Docker와 K8s의 역할은 다릅니다. Docker는 컨테이너를 띄워주는 역할이고, K8s는 그 띄워진 컨테이너의 안정적인 운영을 위해 여러가지 기능들을 추가한 container orchestration입니다. (조금 의미가 없는 말입니다. Docker는 Docker swam을 이용해 K8s를 대체할 수 있고, K8s에서도 알아서 컨테이너를 띄울 수 있기 때문입니다.) 그리고 여기서 컨테이너를 띄워주는 역할을 할 수 있는 도구 즉, 컨테이너 런타임은 여러가지가 있습니다. docker, CRI-O, containerd 등이 있는데요. 최근 K8s가 컨테이너 런타임으로서 더 이상 docker를 지원하.. 2022. 1. 26.
[Linux] 메모리 재할당 안녕하세요 오늘은 Linux 메모리 재할당과 관련하여 정리한 내용입니다. 해당 부분에 대해 잘 정리가 안되고 있던 분이 계시다면 제가 작성한 내용이 도움이 되었으면 좋겠습니다. 혹시 잘못된 내용이 발견되면 말씀해주세요! 1. 리눅스 커널의 메모리 재할당 커널은 기본적으로 메모리가 아무 데도 쓰이지 않고 노는 것을 싫어합니다. 그래서 프로세스에서 메모리를 사용하지 않는다고 한다면 커널은 메모리를 아래 그림처럼 cache 용도로 사용해 시스템 성능을 향상시킵니다. (보통 이 cache 영역은 page cache, dentry cache, inode cache 등이 사용합니다.) 이렇게 커널은 cache로 메모리를 활용하다가 프로세스가 메모리가 필요하다고 하면, cache 영역(주로 page cache)을 반.. 2022. 1. 10.
[Linux] TCP KeepAlive에 대한 고찰 지난 7월 XXXX 이벤트 때 저희 운영 Web 서버에서 연결 오류가 발생했습니다. Webtob / JEUS로 사용을 하는 서버였기 때문에 TMAX 엔지니어의 점검 후, 권고에 따라 OS Kernel의 TCP KeepAlive 설정 변경을 진행했습니다. 이와 관련해, Linux OS Kernel에는 TCP KeepAlive와 관련한 어떤 parameter가 있고 Web에서 설정하는 KeepAlive와는 어떤 차이점이 있는지 적어보았습니다. 1. KeepAlive를 왜 쓰지? 먼저 keepalive 기능에 대한 사용 목적입니다. 네트워크 통신에서 가장 기본이 되는 것은 TCP 3way-handshake 연결 방식입니다. 위 그림과 같이 Syn > Syn+Ack > Ack 과정을 통해 Client/Serve.. 2021. 12. 13.