MySQL 연결을 생성하는 페이지에서 ab (apachebench)를 사용하여 사이트 중 하나를 벤치마킹하고 쿼리하여 PHP를 통해 연결을 닫습니다. 우리가에 연결할 수 없습니다 "가질 않지만새로운 연결에로드가 실패하더라도 MySQL max_connections를 치지 못함
는 우리는 열심히 우리가 스트레스 테스트를 실행 (500)의 max_connections의 한계와 우리의 my.cnf 파일을 코딩 한
, MySQL은 결코 우리가 지정 연결 제한을 칠 것 같다 데이터베이스 "유형 오류가 발생했습니다. 그것은 마치 MySQL이 한 번에 ~ 237 개가 넘는 연결을 열 수없는 것과 같습니다. (또는 과정의 잘못을 우리가)
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 16384
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1250
virtual memory (kbytes, -v) unlimited
문제 중 하나를 PHP 나 MySQL과 것으로 보인다 :
[mysqld]
max_connections = 500
port = 3306
socket = /var/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 128M
thread_concurrency = 8
max_heap_table_size = 512M
tmp_table_size = 512M
table_cache = 2048
사용자 제한 :
여기에 우리의 현재의 my.cnf입니다.
모든 도움, 제안 및 팁을 미리 감사드립니다. 미리 감사드립니다.
활성 연결을 어떻게 측정합니까? – Bjoern
우리는 실시간 연결을 측정하지 않습니다. 우리는 스트레스 테스트 후 상태 변수 Max_used_connections를 사용하여 최대 사용 연결 수를 즉시 측정합니다. 또한 MySQLTuner (perl 스크립트)는 다음과 같이 보여줍니다. 사용 가능한 연결의 최대 사용률 : 47 % (237/500). –
_ "데이터베이스에 연결할 수 없습니다"_라는 오류가 발생하면 'max_connections'에 도달했기 때문이 아닙니다.이 경우 _ 많은 연결 수 _가 표시됩니다. 실패는 또 다른 문제가있는 것 같습니다. – Bjoern