ich habe hier ein mittelschweres Problem. Ich betreibe einen relativ großen Dienst mit über 10000 Nutzern. Diese loggen sich in das System bestehend aus PHP und mysql ein. Ab 200 eingeloggten Usern treten erhebliche Wartezeiten auf. (17s+)
Nun sehe ich grade bei ca. 200 eingeloggten Spielern, dass einige mySQL Prozesse ziemlich lange laufen:
Code: Select all
top - 11:13:38 up 65 days, 18:59, 1 user, load average: 6.27, 4.61, 3.57
Tasks: 310 total, 1 running, 309 sleeping, 0 stopped, 0 zombie
Cpu(s): 57.0% user, 35.2% system, 0.0% nice, 7.8% idle
Mem: 1550596k total, 843412k used, 707184k free, 97320k buffers
Swap: 2096472k total, 0k used, 2096472k free, 545572k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28407 root 14 0 1068 1068 728 R 7.2 0.1 0:48.37 top
24794 mysql 11 0 101m 101m 2876 S 4.3 6.7 2:26.76 mysqld
24908 mysql 11 0 96068 93m 2876 S 4.0 6.2 2:41.90 mysqld
24897 mysql 9 0 96068 93m 2876 S 3.7 6.2 2:32.35 mysqld
24914 mysql 9 0 96068 93m 2876 S 3.4 6.2 2:10.86 mysqld
24959 mysql 9 0 96068 93m 2876 S 3.3 6.2 2:20.22 mysqld
24892 mysql 9 0 96524 94m 2876 S 3.1 6.2 2:18.41 mysqld
24913 mysql 9 0 96068 93m 2876 S 3.1 6.2 1:57.21 mysqld
24881 mysql 14 0 96524 94m 2876 S 2.5 6.2 2:09.00 mysqld
24997 mysql 9 0 96068 93m 2876 S 2.5 6.2 3:09.02 mysqld
24890 mysql 11 0 96524 94m 2876 S 2.4 6.2 2:15.30 mysqld
24973 mysql 9 0 96068 93m 2876 S 2.4 6.2 2:21.58 mysqld
24804 mysql 9 0 101m 101m 2876 S 2.3 6.7 2:13.03 mysqld
24894 mysql 9 0 96524 94m 2876 S 2.3 6.2 2:21.03 mysqld
25129 mysql 9 0 96068 93m 2876 S 2.2 6.2 2:15.98 mysqld
24940 mysql 9 0 96068 93m 2876 S 2.1 6.2 2:57.93 mysqld
25040 mysql 9 0 96068 93m 2876 S 1.9 6.2 1:40.17 mysqld
25097 mysql 9 0 96068 93m 2876 S 1.8 6.2 2:24.59 mysqld
24809 mysql 9 0 101m 101m 2876 S 1.7 6.7 1:54.61 mysqld
24822 mysql 11 0 98812 96m 2876 S 1.7 6.4 2:17.73 mysqld
24815 mysql 9 0 98812 96m 2876 S 1.6 6.4 2:37.04 mysqld
24829 mysql 9 0 96068 93m 2876 S 1.6 6.2 2:11.44 mysqld
24970 mysql 9 0 96068 93m 2876 S 1.6 6.2 2:38.05 mysqld
24977 mysql 9 0 98792 96m 2876 S 1.6 6.4 2:22.14 mysqld
25127 mysql 9 0 96068 93m 2876 S 1.6 6.2 2:18.37 mysqld
24807 mysql 9 0 101m 101m 2876 S 1.5 6.7 2:28.85 mysqld
24998 mysql 9 0 96068 93m 2876 S 1.5 6.2 2:08.06 mysqld
25039 mysql 9 0 96068 93m 2876 S 1.5 6.2 2:56.07 mysqld
24811 mysql 9 0 101m 101m 2876 S 1.3 6.7 2:11.31 mysqld
24963 mysql 9 0 96068 93m 2876 S 1.3 6.2 2:19.02 mysqld
25079 mysql 9 0 96068 93m 2876 S 1.3 6.2 2:06.53 mysqld
25007 mysql 9 0 96068 93m 2876 S 0.8 6.2 2:13.24 mysqld
25078 mysql 9 0 96068 93m 2876 S 0.5 6.2 2:29.34 mysqld
24939 mysql 9 0 96068 93m 2876 S 0.3 6.2 3:07.89 mysqld
24833 mysql 9 0 96068 93m 2876 S 0.2 6.2 2:16.28 mysqld
24817 mysql 9 0 98812 96m 2876 S 0.1 6.4 2:25.57 mysqld
24965 mysql 9 0 96068 93m 2876 S 0.1 6.2 2:02.47 mysql
Ich habe bereits alle von mysql als langsam gekennzeichnete querys untersucht und abgeändert, sodass es jetzt keine slow querys mehr gibt. Ich habe durchschnittlich 2000 mysql Anfragen pro Sekunde. Ich dachte es könne eventuell daran liegen, wolte aber vorher nochmal egrn die Expertenmeinungen anhören.
Meine my.cnf sieht übrigens so aus:
Code: Select all
# The MySQL server
[mysqld]
port = 3306
socket = /var/run/mysqld/mysqld.sock
#skip-locking
set-variable = key_buffer=512M
set-variable = max_allowed_packet=2M
set-variable = table_cache=6048
set-variable = sort_buffer=12M
set-variable = record_buffer=12M
set-variable = thread_cache=1024
set-variable = max_connections=4000
set-variable = wait_timeout=100000
set-variable = interactive_timeout=100000
#set-variable = query_cache=256M
# Try number of CPU's*2 for thread_concurrency
set-variable = thread_concurrency=2
set-variable = myisam_sort_buffer_size=8M
#log-bin
server-id = 1
#skip-networking
ich würde mich sehr freuen wenn Ihr mal eure Configs posten würdet, damit ich einen Anhaltspunkt habe, was ich anders einstellen muss, damit das System wieder stabil läuft. Achja ich verwende debian woody mit einem amd athlon xp 2800 und 1,5gb ram
Danke
Skyrunner