mariadb "too many connections" 오류가 발생하여 웹 사이트가 다운되었습니다.
Centos 7에서 Plesk Onyx를 실행하고 있는 하이엔드 Centos 7 VPS(vCore 16개/RAM 128GB) / MariaDB 10.1/PHP-FPM 5.6 셋업으로 방문률이 높은 단일 웹사이트를 운영하고 있습니다.
보통 모든 것이 원활하고 빠릅니다만, 마리아DB의 "Too Many Connections"라는 메시지로 인해 웹사이트가 다운된 것은 1년에 두 번 있었습니다.
웹사이트 복원을 서두르고 있었기 때문에 실제로 SHOW PROCESS LIST를 시작하지 않고 "service mariadb restart"를 시작했습니다.
나중에 mariadb 로그와 웹 서버 로그를 확인했지만 문제 해결에 도움이 되는 것을 찾을 수 없었습니다.
처음 발생했을 때 my.cnf에서 max_connections 값을 300으로 올리고 "max_used_connections" 변수를 지속적으로 모니터링했으므로 DDOS 공격이나 악의적인 시도가 원인이라고 추측했습니다.
질문:
트러블 슈팅 방법에 대한 조언이 있습니까?
max_used_connections 값이 max_connections 값에 근접한 경우 어떻게 경고를 받을 수 있습니까?툴이 있나요?
외부 pingdom 서비스를 사용하여 웹 사이트의 가동 시간을 확인하고 있습니다만, 이러한 문제(웹 응답은 200 OK)와 서버상의 넷 데이터 인스턴스(https://netdata.io/))는 검출되지 않았습니다.
slowlog를 켜서 트러블 슈팅을 실시합니다.가능하면 다음 값보다 낮은 값으로 해 주세요.long_query_time('1' 등).아마 거기에 장난꾸러기 질문이 나타날 거야.
네, 그렇게 하세요.SHOW FULL PROCESSLIST다음에.(「FULL」주). mysqld를 재기동하는 대신 문제가 있는 쿼리를 찾습니다.이 값은 에서 가장 높은 값 중 하나입니다.Time아마 그 안에 있지 않을 거야Sleep모드일 수 있습니다.잠재적으로 길 수 있습니다.ALTER아니면 쓰레기장일 수도 있습니다.그 1개의 프로세스를 종료하면, 문제가 해소되어, 몇초만에 문제가 없어집니다.
프로세스에서 "열린" 파일(예: mysqld)을 삭제해도 도움이 되지 않습니다. 디스크 공간은 모든 프로세스가 파일을 닫을 때까지 재사용되지 않습니다.프로세스를 종료하면 열려 있는 파일이 모두 닫힙니다.일부 로그는 다음과 같이 처리할 수 있습니다.FLUSH LOGS;--이것은 무해할 것입니다만, 도움이 되지 않을지도 모릅니다.
테이블이 MyISAM인 경우 InnoDB로 전환하면 테이블이 잠기는 경우가 많이 발생하지 않습니다(그럴 경우).
innodb_buffer_pool_size이이 、 RAM 라g80 G 、 RAM 。
안에 가 있을 수도 요.GLOBAL STATUS해석에 대해서는, http://mysql.rjweb.org/doc.php/mysql_analysis#tuning 를 참조해 주세요.(주의:재기동하면 곧바로 무효가 됩니다).
언급URL : https://stackoverflow.com/questions/50983139/website-down-with-mariadb-too-many-connections-error
'programing' 카테고리의 다른 글
| 도커 컴포지트 시작 시 데이터베이스 작성 (0) | 2022.11.20 |
|---|---|
| 구분된 문자열에서 후행 구분 문자 제거 (0) | 2022.11.20 |
| MySQL에서 공백이 있는 열 이름을 선택하는 방법 (0) | 2022.11.11 |
| 페이지를 새로고침하지 않고 양식 제출 (0) | 2022.11.11 |
| Java 웹 앱에서 .do 확장자를 사용하는 이유는 무엇입니까?그것은 어디서 난 거야? (0) | 2022.11.11 |