회사 앞에 팝업스토어로 운영되는 상가가 있다. 그래서 아침에 출근하다보면 공사하는 것을 보게된다.
공사할 때마다 건축폐기물이 꽤 나오는 것 같다. 물론 일부 재료들은 재활용 할 수 있을 것 같긴하다. 그러나 다 부분은 재활용 할 수 없고 그냥 폐기될 것 같다.
이렇게 쓰레기를 많이 만들어도 되는 것인지 모르겠다.
평소에는 이런 생각 안했을 텐데. 이번 여름이 너무 더웠다보니 이런 생각을 하게된다.
회사 앞에 팝업스토어로 운영되는 상가가 있다. 그래서 아침에 출근하다보면 공사하는 것을 보게된다.
공사할 때마다 건축폐기물이 꽤 나오는 것 같다. 물론 일부 재료들은 재활용 할 수 있을 것 같긴하다. 그러나 다 부분은 재활용 할 수 없고 그냥 폐기될 것 같다.
이렇게 쓰레기를 많이 만들어도 되는 것인지 모르겠다.
평소에는 이런 생각 안했을 텐데. 이번 여름이 너무 더웠다보니 이런 생각을 하게된다.
회사에서 사용하는 테스트용 클라우드 서버를 ubuntu 20.04 에서 ubuntu 22.04 로 업그레이드 한 후 가끔식 서버가 먹통이 되는 현상이 발생하고 있다. 웹서버가 동작하지 않고 ssh 조차 접속되지 않는 현상이 가끔씩 발생했다. 이 현상이 발생하면 cloud 서버 관리 사이트에 들어가서 강제로 재부팅을 시키곤 했다.
로그를 분석해 보면 cron 서버스가 동작하면서 밤사이 CPU 사용률이 100%가 되는 현상이다. 그래서 우선 불필요한 cron 서비스를 제거했다. 어차피 테스트 서버라서 잘 작동하지 않아도 문제될 것은 없다. 그러다 평소 습관대로 free -h 명령어를 사용해 보았다. 이 명령어는 메모리가 어떻게 사용되고 있냐를 확인하는 명령어 이다. 그런데 swap 메모리가 전혀 사용되지 않는 것을 확인 했다.
total used free shared buff/cache available
Mem: ...............................................
Swap: 8.0Gi 0B 8.0Gi
대충 위와 같이 swap 의 used 가 0 인 것을 발견했다.
이 서버가 테스트 서버인지라 메모리가 2G가 안된다. 그래서 Postgresql 돌리고 웹서버 돌리고 하는데, 메모리가 좀 많이 필요한 편이다.(그리고 웹서비스도 2개가 돌아간다.) 그래서 처음 세팅시 swap 을 설정해서 가상 메모리를 사용하고 있다.(이 값이 설정안되면 파이썬 라이브러리가 설치가 안되는 문제도 가끔씩 발생된다.) 어차피 테스트 서버라 속도가 좀 늦어도 상관없다. 그래도 하드가 SSD 라 꽤 괜찮은 속도를 유지하고 있는 편이다.
서버가 가끔식 먹통이 되는게 swap 이 동작하지 않은게 원인 같았다. 내 추론으로는 메모리가 부족해서 프로그램이 돌다가 엄청나게 느려지거나 sagement fault 이 발생하면서 큰 문제를 일으킨 것으로 생각하는게 맞을 것 같다. 뭐, 더 이상 문제가 발생하지 않는다면 swap 이 동작하지 않는게 원인이겠지.
어째든 찾아보니 vm.swappiness 라고 하는 설정이 있었다. 이 값으로 swap 메모리를 어떠한 비율로 사용할 것인지 결정하는 값이 있었다. 이 테스트 서버의 경우 0 으로 설정되어서 전혀 사용하지 않음으로 설정된 상태였다. (자세한 설정은 vm.swappiness 으로 검색해 보기 바란다.)
이 값을 기본값인 60으로 설정하고 나니 swap 메모리를 사용하기 시작했다.
다른 서버들을 확인해보니 이 cloud 서버들만 vm.swappiness 가 0 으로 설정되어있었다. 실제 서비스 서버는 메모리가 충분한 상태이기 때문에 변경은 필요 없어 보였다.
가끔씩 클라우드마다 다른 설정값을 보이는 경우가 있다. 내 생각에는 클라우드마다 ubuntu 서버를 수정해서 배포하는 것 같다. 그러다보니 여러 클라우드를 사용하다보면 좀 다양한 현상을 겪게 된다.
어째든 이번일은 이것으로 마무리 되고 더 이상 문제가 안 생기기를 바란다.
내 개인 클라우드 서버에서 certbot 을 이용해서 https 인증서를 사용하고 있었다. 그런데 이게 동작하지 않아서 한참 원인을 찾다보니 godaddy API 가 더이상 동작하지 않음을 알게 되었다. 내 경우 root 도메인 인증서 발급을 위해 DNS 인증 방식을 사용하고 있다. 좀더 자세히 설명하면 내가 이 도메인의 주인임을 증명하기 위해 DNS 의 txt 레코드를 변경해서 인증하는 방식을 사용하고 있다. 그런데 이 동작을 자동화하기 위해서는 DNS 서버에서 제공하는 API가 필요하다.
어째든 godaddy API 가 더 이상 무료가 아니게 되면서 문제가 발생했다. 이런. 다른 무료 DNS 서버 제공업체를 찾아야 할 것 같다. 일이 귀찮게 되었다.