도커 컨테이너, 메모리 소비량 및 로그
며칠 동안 도커를 시험해 봤어요기본적으로 MySQL(MariaDB), PHP(php-fpm), NGINX를 포함한 Drupal 이미지(docker4dropal)를 사용하고 있습니다.
512MB RAM을 탑재한 VPS에서는 데이터베이스 컨테이너로 데이터베이스를 Import할 때마다 MariaDB를 탑재한 컨테이너가 정지합니다."MySQL Server has away" 등의 메시지가 나타납니다.또한 VPS에 1GB에서 2GB의 RAM이 탑재되어 있는 경우에는 이 문제가 발생하지 않습니다.
기억력에 문제가 있는 것 같은데 증거가 필요해!메모리가 부족해서 내 컨테이너가 죽었다는 통나무가 어디 있는지 모르겠어요.
MariaDB 로그를 확인했지만 아무것도 찾을 수 없습니다...로그에는 "데이터베이스가 정상적으로 종료되지 않았다"는 표시와 "시작하고 있다"는 표시와 "접속 대기 중"과 같은 표시만 있습니다.
따라서 MariaDB 구성(512MB VPS에는 적합하지 않음)과는 별도로...데이터베이스 서버를 가진 컨테이너가 죽은 이유를 구체적으로 알 수 있는 곳은 어디입니까?
어떤 도움이라도 환영합니다.정말 감사해요.
PD: PHP 컨테이너에서 mysql cli를 실행했기 때문에 데이터베이스 컨테이너가 죽었는데도 뭔가 잘못되었다는 출력을 볼 수 있습니다.
'메모리 부족' 이벤트에서 가장 많은 메모리를 소비하는 프로세스를 종료하는 커널일 수 있습니다.호스트 시스템 로그에 일부 항목이 있을 수 있습니다.그러나 이러한 항목이 없다고 해서 DB를 죽인 것이 커널이 아니라는 보장은 없습니다.
정확한 파일명은 호스트 시스템 구성(이 경우 VPS를 의미)에 따라 달라집니다./var/log/{system.log, error.log, ...}일 수 있습니다.
도커 컨테이너가 분리된 VM이 아닌 커널 기반 cgroup의 래퍼인 경우 커널 이벤트는 호스트 시스템 로깅 데몬에 의해 처리됩니다.
안녕하세요, Beto 도커 체크 아웃의 로그는, 다음의 커맨드를 참조할 수 있습니다.
docker logs --follow 명령은 컨테이너의 STDOUT 및 STDERR에서 새 출력을 계속 스트리밍합니다.
아주 작은 512MB에 쑤셔넣기엔 너무 많은 양일 것이다.다음 중 하나를 수행합니다.
- 사용 가능한 RAM을 늘립니다.("VPS에 1GB가 있는 경우에는 이 문제가 발생하지 않습니다.
- 애플리케이션을 여러 개의 작은 도커로 분할합니다.
- RAM 사용량을 줄이기 위해 각 앱을 튜닝합니다.(얼마 전에 질문에 대답하지 않았습니까?)
테이블이 몇 개 있습니까?https://dba.stackexchange.com/questions/60888/mysql-runs-out-of-memory-when-importing-innodb-database과 같이 많지는 않길 바랍니다.
언급URL : https://stackoverflow.com/questions/40186747/docker-containers-memory-consumption-and-logs
'programing' 카테고리의 다른 글
file_get_contents("php://input") 또는 $HTTP_RAW_POST_DATA, JSON 요청 본문을 가져오려면 어떤 것이 좋습니까? (0) | 2022.12.26 |
---|---|
Java에서 Selenium-WebDriver에 몇 초 동안 대기하도록 요청하려면 어떻게 해야 하나요? (0) | 2022.12.26 |
예외가 발생하지 않았는지 테스트하려면 어떻게 해야 합니까? (0) | 2022.12.26 |
업로드하기 전에 JavaScript에서 파일 MIME 유형을 확인하는 방법 (0) | 2022.12.26 |
특별한 HTML 엔티티가 포함된 문자열을 디코딩하는 올바른 방법은 무엇입니까? (0) | 2022.12.26 |