[Linux] iotop / iftop 디스크 I/O 와 네트워크 부하 측정

Intro 리눅스 서버를 운영하다 보면, 종종 시스템의 성능 저하를 경험할 수 있다. 이러한 문제의 원인을 진단하기 위해서는 시스템의 다양한 자원 사용 상황을 모니터링할 필요가 있다. 특히, 디스크 I/O와 네트워크 트래픽은 시스템 성능에 큰 영향을 미칠 수 있는 중요한 요소다. 이 글을 통해 iotop과 iftop으로 시스템에서 발생하는 디스크 I/O 작업을 실시간으로 관찰할 수 있는 방법과 네트워크의 사용량을 실시간으로 파악하는 방법을 확인할 것이다. iotop iotop은 리눅스에서 I/O 사용량을 모니터하는 도구다. 시스템에서 발생하는 디스크 I/O 작업을 실시간으로 관찰하고, 어떤 프로세스가 디스크 I/O 부하를 많이 차지하는지, 어떤 종류의 I/O 작업이 주를 이루는지 확인할 수 있다. 파일 ..

IT ⁄ Computer/Linux 2024.02.28
[MYSQL] 데이터베이스 털리다 - DB털이 예방하기

Intro 이제 1년 좀 넘은 토이프로젝트가 하나 있다. 와이프만 쓰라고 대충 만들었던건데 한명씩 한명씩 사용자가 늘어서 그래도 지금은 몇명이 쓰고 있고, 요구사항도 꾸준히 반영해서 처음에 비해 기능도 제법 들어갔다. 토이프로젝트라서 처음 시작할 때, 디비 비밀번호를 사용하면 안되는 아주 뻔한 암호로 만들었었는데.. 아침에 일어나 컴퓨터를 켜니 새벽 4시쯤에 Slack 알림이 와있었다. [SpringBoot] 에러 발생시 Slack으로 알림 보내기 를 적용해서 에러가 발생하면 슬랙 알림이 오게끔 적용을 해뒀었는데, 그덕에 문제가 있다는건 발견했다. 그런데 오류를 잘 보면 select 쿼리를 실패한건데. 디비 접속이 잘 안되나? 해서 로그를 살펴보니 테이블이 없단다. 위에 적힌 Request IP를 추적해..

Data/MYSQL ⁄ MariaDB 2024.02.24
Github 22 번 포트 막혔을 때 git ssh fetch/pull 하는 방법

Intro Github / Gitlab SSH 공개 키 등록하기 를 통해 ssh 키를 등록해두었다면, 암호입력이나 토큰발급등의 번거로운 작업 없이 간단하게 git remote 저장소로부터 clone을 비롯한 fetch, pull, push 등의 작업을 간편하게 할 수 있다. 그런데 카페를 간다거나 다른사람의 집에 방문하는 등 평소와 다른 환경에서 와이파이에 접속 했는데, Github 의 SSH 통신이 안먹히는 경우가 있다. 그런경우 아래와 같은 에러가 발생한다. ssh: connect to host github.com port 22: Operation timed out이걸 겪은건 설날에 가족집에 방문해서 커밋을 하는 과정이었는데 하필 인터넷이 B사 제품이었고, B사에서는 22번 포트를 막아두었기 때문에 ..

Development/DevOps 2024.02.17
Jenkins 튜토리얼 - 설치 및 실행

설치 요구사항 Jenkins를 설치하고 실행하기 위해서는 아래의 조건을 만족해야 한다. 호스트 머신이 램 최소 256 MB (권장 2 GB) 젠킨스 및 도커 이미지를 위한 여분의 저장공간 10 GB 아래의 소프트웨어 들이 설치 되어 있어야함 Java 11, 17, or 21 Docker (아직 설치가 안되어있다면 Get Docker 참고) 다운로드 https://www.jenkins.io/download/ 링크에서 젠킨스를 다운 받는다. OS에 맞춰 원하는 무엇으로 다운받아도 상관 없으나 본 튜토리얼은 .war 파일로 진행한다 실행 다운로드 받은 war 파일을 java로 실행한다. httpPort는 원하는 값을 넣으면 되는데, 8000으로 진행해보도록 한다. java -jar jenkins.war --h..

Development/DevOps 2024.02.06
[mysql] 실수로 날린 데이터 binlog로 복구하기

Intro 날렸다 테이블. 없어졌다 데이터. 다행히도 업무에 쓰던 DB는 아니다. 현재는 가까운 가족들만을 고객으로 우리들 끼리만 쓰고 있는 사이드 프로젝트인데, 개발서버랑 운영서버를 헷갈려서 데이터를 유실했다. 다행인건 매일 밤 12시에 자동으로 백업을 해왔다는 것. [MYSQL Docker] 데이터베이스 매일 자동 백업하기 사건이 발생한건 오후 8시쯤이지만, 로그를 보니 오늘 오후 7시쯤 마지막 로그가 찍혀있었다. 00시 ~ 19시 사이의 데이터를 백업해보자. 데이터 복구 바이너리 로그 파일 찾기 요즘엔 많이들 그렇겠지만, mysql을 도커로 돌고 있다. 그래서 도커 컨테이너에 관련된 내용도 조금 포함되는데, 도커를 사용하지 않다고 해도 아래 내용을 따라 진행하는데는 무리가 없을 것이다. 도커 컨테이..

Data/MYSQL ⁄ MariaDB 2024.02.05