1GB DO Droplet의 메모리 살펴보기

저희 포럼을 위해 2GB 머신에서 1GB 머시로 이전했습니다. 서버는 1년 미만으로 사용되었고, 170명의 회원이 있는 가벼운 사용 환경입니다.

Digital Ocean에서 확인한 내용은 다음과 같습니다:

2GB 머신에서는 메모리 사용량이 80% 수준이었을 것이라고 확신합니다.

몇 가지 명령어 실행 결과를 공유합니다.

htop

free -h

시스템 로그인 시

스왑(Swap) 작동 방식에 익숙하지 않지만, 로그인 시 확인한 시스템 정보를 보면 Digital Ocean에서 표시된 것보다 메모리 사용량이 훨씬 낮은 것으로 보입니다. 이것이 스왑 사용 때문일까요? 현재 및 미래의 사용자 수를 고려할 때 이 1GB 인스턴스가 어떻게 버텨낼지 파악하고 싶습니다.

메모리는 다양한 목적으로 사용되는 유연한 리소스이기 때문에 "사용 가능한 메모리(free memory)"의 의미를 파악하기가 정말 어렵습니다.

그러나 말씀하신 것처럼 메모리가 약간 부족해 보입니다. 저 역시 같은 상황(7일 동안 활성 사용자 78명, 30일 동안 활성 사용자 114명)에 처해 있습니다:

              total        used        free      shared  buff/cache   available
Mem:           985M        780M         63M         23M        141M         53M
Swap:          2.0G        1.1G        964M

저는 다른 곳에서, 그리고 최근에도 관련 내용을 작성한 바 있습니다. 다음 다른 댓글들을 참고해 보시는 것도 좋겠습니다:

또한

일상적으로 걱정해야 할 두 가지가 있습니다: 포럼의 성능과, 실제로 메모리가 부족해져서(즉, 스왑 공간이 모두 사용되고도 부족해서) 충돌이 발생할 가능성입니다. 제공자의 대시보드를 사용하거나 명령줄에서 'vmstat 5 5’를 사용하여 스왑 활동을 모니터링할 수 있다면 그렇게 하시는 것을 권합니다. 포럼의 응답성을 모니터링할 수 있다면 그것도 해 보시는 것이 좋습니다.

그리고 월별로 업데이트를 수행하게 되는데, 이는 일상적인 포럼 운영보다 더 많은 메모리가 필요합니다. 업데이트 중에 스왑을 많이 사용하면 업데이트가 평소보다 더 오래 걸립니다. 스왑 공간이 고갈되면 충돌이 발생할 수 있으며, 이는 매우 나쁜 결과를 초래할 수 있습니다.

현재 스왑 공간이 이미 절반 사용된 상태입니다. 디스크 공간이 충분하다면 두 배로 늘리시는 것이 좋습니다.

수정: https://www.linuxatemyram.com/ 도 참고해 보십시오.

포스팅 하단에 아주 유익한 정보와 링크를 공유해 주셨네요!

제 경우를 보면 사용 가능한 용량이 74MB로 표시되지만, 버퍼/캐시에 165MB가 사용 중임을 확인할 수 있습니다. 제 이해가 맞다면 이 용량은 시스템이 활용할 수 있는 영역이며, 이는 디스크 캐싱의 일부입니다… 공유해 주신 링크를 보면 'available’은 buff/cache를 포함한 사용자가 활용할 수 있는 모든 용량을 의미하는 것 같더군요. 그래서 여전히 혼란스럽습니다.

다만, 총 968MB 중 723MB를 사용 중이라는 것을 보니 아직 245MB의 여유가 있다는 것을 알 수 있습니다…

제가 이해하는 것이 맞나요?

만약 맞다면, 제가 이전에 공유한 ‘System information’ 스크린샷에 표시된 83%의 메모리 사용량은 정상이며, 실제로 위험한 수준에 근접하지 않았다는 의미일 것입니다…

이 문제를 잘못 보고 있을 수 있습니다.

에드가 당신에게 준 답을 종이에 적고 싶다면, 단 하나의 단어만 기억할 수 있는 능력만으로도 충분합니다. 그냥 그 단어를 적고 화면을 올려다보며 다음 단어를 기억하면 됩니다. 이 과정을 반복하면 됩니다. 심지어 한 글자만 기억할 수 있는 경우에도 작동합니다. 하지만 한 번에 전체 게시글을 기억할 수 있다면 시간을 절약할 수 있습니다. 작은 단위로 나누어 처리하기 위해 여러 번 화면을 올려다볼 필요가 없기 때문입니다.

잘못 알고 있는 것이 아니라면, 프로그램이 사용할 수 있는 메모리가 많을수록 더 많이 사용하고 성능이 향상됩니다. 이는 엄격한 고정 값 사용이 아닙니다. 또한 RAM은 디스크보다 훨씬 빠릅니다: 스왑 대신 RAM을 사용하는 것이 더 좋습니다.

그렇게 말하는 이유가 무엇인지 모르겠습니다. 혹시 잘못된 줄을 본 건가요? 아니면 제가 "훨씬"이라는 단어를 오해하고 있는 걸까요? 그래프 끝부분에 있는 작은 눈금 차이 때문일 수도 있습니다.

사용 중인 모든 메모리는 스왑 아웃될 수 있으므로, 필요할 경우 해제될 수 있습니다. 따라서 현재 사용 중인 양을 측정한다고 해서, 더 많은 RAM이 사용 가능하다면 또는 메모리 압박이 있을 경우 얼마까지 사용 가능할지를 알 수 없습니다. 이는 풍선의 크기를 보고 그 안에 들어 있는 공기의 양을 측정하려는 것과 같습니다. 물론 정확히 그렇지는 않지만, 어딘가에는 적절한 비유가 있을 것입니다. 예를 들어, 계산대에 들어 있는 현금의 양을 보고 소매 업체의 성공을 측정하는 것과 비슷할 수도 있습니다.

"메모리가 부족하다"는 표현에는 크게 두 가지 의미가 있다는 점을 주목할 필요가 있습니다. 하나는 "내 포럼이 느리다"는 것이고, 다른 하나는 "내 포럼이 충돌(crash)했다"는 것입니다.

소규모이고 트래픽이 낮은 포럼의 경우, 1GB도 여전히 충분해 보이지만, 소프트웨어의 각 새 버전은 이를 점점 더 경계선적인 수준으로 만들 수 있습니다.