시스템 리소스 관리(특정 사례: mysql)

시스템 리소스 관리(특정 사례: mysql)

systemd에서 리소스 관리가 어떻게 작동하는지 알아보려고 합니다.

내가 어디에 있는지, 어떻게 거기에 도달했는지 파악하려면 먼저 내 상황을 설명해야 합니다.

mysql-db를 ubuntu 14.04에서 16.04로 마이그레이션한 후 systemd를 처리해야 합니다. 이번이 처음도 아니고 지금까지도 괜찮습니다. 16.04에서 mysql을 시작하는 동안 다음 로그 항목을 발견했습니다.

Changed limits: max_open_files: 1024 (requested 5000)

mysql 변수 max_open_files( max_open_files현재 구성에 설정되지 않음!)가 동적이며 4가지 시나리오에 따라 달라지는 것을 발견했습니다(참조:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_open_files_limit) 제가 보기엔 장면이 없는 게 분명해요. 4를 사용합니다.

ulimit그래서 내 요점은: 14.04와 16.04의 mysql-config는 동일하지만 systemd의 리소스 관리 동작이 14.04( & 사용)와 다른 것처럼 보입니다. /etc/security.d/limits.confmysql 사용 시나리오 4, '운영 체제 제한이 무한인 경우'는 사실입니다. ..운영체제의 한계는 무한한가?

제가 고심하고 있는 또 다른 문제: max_open_filesmysql-config에서 "1000"으로 정의하고 보면 /proc/[myslq-pid]/limits소프트 제한이 1000으로 설정되어 있고 하드 제한이 4096으로 설정되어 있는 것을 알 수 있습니다.

질문 1: 위의 조건 4가 "운영 체제 제한이 무한대인 경우"에 적용되므로 제한이 4096인 이유는...

max_open_files1에서 4096 사이의 값으로 설정할 수 있으며 이는 제한을 정의합니다. 이는 예상되는 동작입니다. 그러나 4096보다 높게 설정되면 Softlimit=1024 및 hardlimit=4096으로 대체됩니다. 위의 조건 4가 다시 충족되기 때문에 이 동작을 이해하지 못합니다 if operating system limit is Infinity.

이것은 나의질문 2:이 "기본값"은 어디에서 왔습니까? 한도를 4096보다 높게 설정할 수 없는 이유는 무엇입니까?

노트: LimitNOFILE=numbersystemd의 mysql-service-unit에 한번 정의해 놓으면 "number"가 소프트 리미트와 하드 리미트로 설정되어 4096보다 큰 값을 정의할 수 있었습니다. 다시 확인 하여 확인하세요 /proc/[myslq-pid]/limits.

나는 systemd에 대한 문서를 보았지만 어떤 이유로 "기본값"이라는 측면에서 유일하게 언급된 것은 기본적으로 설정되지 않은 정의할 수 있는 파일 /etc/systemd/system.conf입니다 . 그래서 거기에 있습니까 ??/etc/systemd/user.confDefaultLimitNOFILE=default Default

저는 이 동작을 정말로 지지하지 않습니다. 누군가 이 문제를 해결하는 방법에 대한 힌트를 제공할 수 있기를 바랍니다.

나는 당신이 가질 수 있는 어떤 제안이나 힌트에도 열려있습니다!

나는 이것을 설명하기 위해 더 많은 문서를 읽고 싶습니다. 그러나 올바른 문서를 찾지 못했습니다... 내가 찾은 모든 것이 나를 다시 돌아오게 합니다.systemd.resourcecontrol,한도 설정,시스템 실행 프로그램그리고systemd/ControlGroup 인터페이스이것은 여기서 끝나는 것보다 더 이상 나에게 도움이 되지 않습니다 :)

관련 정보