Ubuntu 장애 해결 경험담

오늘 아침에 저의 비지니스 파트너인 Nextcloud가 다운되어 혼쭐이 났습니다.ㅎㅎ
다행히 해결이 되어 다행이지만 더 좋은 방법이 있지 않을까 라는 생각에 글을 올립니다…OTL~~

Nextcloud 운영 환경 소개

  • Internet ↔ IP-Time ↔ Ubuntu(KVM[nextcloud])
  • nextcloud는 Snap을 이용해 설치 사용중에 있습니다.

장애 증상

  • 콘솔 접속 시 이해하기 힘든 로그인 메시지 왕창
  • snap deactivate

장애 원인

  • /dev/mapper/ubuntu–vg-ubuntu–lv Use / 100%

장애 조치 사항

  • 사용량 확인 : sudo du -sh * | sort -rh
  • 삭제 대상 확인 : swap.img <=== 불필요하다 생각되어 삭제로 결정
  • swapoff : sudo swapoff -a -v
  • swap.img 삭제 : sudo rm /swap.img
  • fstab 변경 : vi /etc/fstab → swap 라인에 # 추가
  • snap 상태 확인 : snap list → snap info nextcloud → sudo snap refresh
  • apt 패키지 업데이트 및 업그레이드 : sudo apt update → sudo apt upgrade
  • 재부팅 : sudo reboot

디스크 100% 회피를 위한 공간 확보

참고 사이트

저기, 위와 같은 방법으로 장애가 해소되긴 하였는데요.
다른 방법이나, 장애 조치 시 검토해야 할 사항 또는 고려해야할 사항들이 있다면 조언 부탁드립니다.

4개의 좋아요
  1. 스왑은 날리지 않는게 좋습니다.
    특히 파티션이 아닌 파일 형태는 루트 계정으로 날려먹기 쉽게 돼있는데
    (파티션이나 파일이나 맘만 먹으면 언제든 날릴 수 있죠…)
    스왑 파일은 지우기 쉽게끔 노출을 한 상태여도 지우는게 아닙니다.
    저 스왑 파일에 프로그램에서 쓰려는 임시 보관 데이터같은게 들어간 상태…였다가
    어떤 프로그램이 나중에 재 참조 시도를 하는 상황이고,
    스왑파일에 손을 대서 초기화한 상태이거나 날라간 상태라면 문제가 생길 수 있습니다.
    어떤 프로그램이 스왑의 어떤 영역을 사용하는지는
    https://www.cyberciti.biz/faq/linux-which-process-is-using-swap/
    이런식으로 확인해볼 수 있고요.

    대부분 이 코멘트를 보시는 분들 공감하시겠지만,

    우분투 배포판은
    어딘가를 툭 건드리면 문제가 생깁니다.
    생긴대로 쓰는게 가장 베스트죠.

    배포판 설치시 스왑 기본 설정이 들어가는건 어쨌든 쓰라는거지,
    스왑을 지우는게 필요하면 지워도 된다(…)는 의미는 아닙니다.

    차라리 스왑 이런걸 건드리지 마시고,
    비대해진 로그 따위(?)의 것이 있는지 그런걸 찾아보시는걸 더 추천드립니다.
    만약 로그 문제가 확실하다면 logrotate 설치 추천드리고요.
    로그 파일 큰거 하나 있다고 막 지우는건 추천 안드립니다.
    문제 생겼을때 살펴볼게 없어지니까;;…

  2. 어떤 묵직(?)한 파일을 날리고 나면 파일 시스템에 바로 반영이 안될 수도 있습니다.
    이걸 파일 시스템에 커밋이 안됐다고 하는데

    ubuntu - Why does df -h still show 100% full even after deleting files? - Server Fault
    이런거라든지(파일 점유 프로세스 미종료)

    linux - df says disk is full, but it is not - Server Fault
    이런식으로 문제를 해결(파일 시스템에 커밋 - 파일 삭제 정보 업데이트)해야 하는 경우가 생깁니다.

    좀 이해가 안되시는게 많겠지만, 이걸 다 일일히 코멘트해드릴 수는 없습니다.
    원리 설명을 하자면 굳이 알 필요가 없는 이야기까지 길어지기 때문에요.

4개의 좋아요

네에, 조언 고맙습니다.

하지만 전, 예전부터 SWAP을 구성하지 않고 사용하고 있어요.
SWAP을 구성하면 시스템이 느려지는거 같아서요. 00?

리눅스 사용에 정답이 어디 있겠습니까~~~!!!
사용에 불편함 없고 자유롭게 사용하는게 리눅스 철학이 아닐까 합니다.

조언 다시한번 고맙습니다~~~

1개의 좋아요

이상해서 다 적고 찾아보니까 제 올드스쿨한 생각과는 달리
SWAP이 있음으로 해서 오히려 성능저하가 일어나는 경우가 간혹 있는 것 같습니다. (음?)
당연히 스왑은 있어야 한다고 생각했는데, HDD SWAP 영역의 경우
보통은 잘 안 쓰는데 어쩌다가 쓰는 타이밍에 병목을 유발하는게 성능저하 현상의 하나인 것 같군요.

서버에 OOMKiller 안 돌아가도 멀쩡하면 베스트일거 같은데,…
멀쩡하게 돌아가다 SWAP이 없어서 죽어버리는 골때리는 경우도 없지 않아서요.
“또, 그런 일은 겪어본 적이 없습니다 ㅎㅎ” 라면
정말로 메모리가 넘쳐나는 상황일 수도 있지 않을까…(?)

음 그래서 말씀하신 이야기 본문에 단서 하나를 달아드리고 싶습니다.
“모니터링을 해봤는데 진짜로 스왑을 (거의/완전히) 안쓰는 경우” 에요.
(아마도 크롬이 용납하지 않을거지만.(응?))

1개의 좋아요

그적그적~~~
전, SWAP 없이 KVM이랑 크롬을 2018년 부터 사용하고 있답니다. 콜록~~
다만, 최근에는 text로 운영하지만 몇개월 전까지는 사용했답니다. 콜록~~

만약 SWAP을 NVMe 위에서 운영한다면 잡아도 괜찮을것 같습니다만~~
그래도, 전 SWAP 없이 운영할 겁니다.

노트북은 SWAP을 잡는게 절전모드를 위해 현명한 선택이라 생각됩니다. 콜록~~

1개의 좋아요

오?! 흠 … 저도 일부러 스왑을 없앤 가상머신이든 뭐든 한번 만들어서 테스트해봐야겠습니다
스왑이 없는데도 생각보다 멀쩡하다니 신기하네요 ?