MySQL Probleme vBulletin

lighters

Neuer Benutzer
Beiträge
2
Hallo zusammen,

seit einem Jahr schon hoste ich ein vBulletin Forum für meine Gaming-Community. Das Forum war, was die Ladezeiten angeht, schon immer ziemlich langsam. Vor wenigen Tagen musst das Forum neuinstalliert werden, aufgrund mehrere Probleme mit dem VPS. Während das Forum noch gelockt war, sodass ich in Ruhe alles aufsetzen konnte, ohne dass sich schon Leute registrieren konnten, war auch alles super, was die Ladezeiten angeht. Doch jetzt, wo das Forum wieder für alle zugänglich ist, sind die Ladezeiten wieder extrem lange.

Wir hatten vor der Neuinstallation ca. 4500 (davon 500 aktive) registrierte Benutzer, und dementsprechend viele Posts. Jetzt (innerhalb von fast 2 Tagen) sind es ca. 100 registrierte Benutzer, 210 Posts und immer so um die 60 User online (davon ca. 50% Gäste, also nicht angemeldet), also nicht wirklich viel. Trotzdem sind die Ladezeiten extrem (meistens so um die 7 Sekunden, aber auch ohne Probleme bis zu 30 oder mehr).

Ich habe schon alles versucht um die Ladezeiten zu verbessern, und ich bin mir recht sicher dass MySQL das Problem bei der ganzen Geschichte ist, da Seiten die keine Verbindung zum SQL Server haben, bzw. auch keine Daten vom SQL Server abfragen, um einiges schneller Laden (so wie mal es halt gewöhnt ist). Bisher habe ich folgendes unternommen: PHP5 stehen 900MB zu verfügung (nur um ausschließen zu können dass es an PHP5 liegt), davon genutzt werden momentan immer um die 300MB (auch mal bis zu 350MB, aber nie auch nur ansatzweise in der nähe von 900MB). Außerdem nutzen wir eine SQL Config die etwas überarbeitet ist, und auch genug Speicher zu Verfügung stellen sollte. Die Forum Datenbank verwendet übrigens nur InnoDB. Hier mal unsere Config:

Code:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
max_connections = 50
wait_timeout = 300
connect_timeout = 300
interactive_timeout = 300
back_log = 50
bind-address = 127.0.0.1
max_connect_errors = 10
table_open_cache = 1024
max_allowed_packet = 16M
max_heap_table_size = 64M
binlog_cache_size = 1M
key_buffer = 256M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 8
thread_concurrency = 8
thread_stack = 192K
query_cache_size = 128M
query_cache_type = 1
query_cache_limit = 1M
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
log_error = /var/log/mysql/error.log
log-bin = mysql-bin
expire_logs_days = 7
binlog_format = mixed
slow_query_log
long_query_time = 2
log_short_format
default_character_set = utf8
character_set_server = utf8
collation_server = utf8_general_ci
skip-federated
key_buffer_size = 64M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
# *** INNODB Specific options ***
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 1536M
innodb_data_file_path = ibdata1:10M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
# *** Additional options ***
[mysqldump]
quick
max_allowed_packet = 16M
quote-names

[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
# * IMPORTANT: Additional settings that can override those from this file!
#  The files must end with '.cnf', otherwise they'll be ignored.
!includedir /etc/mysql/conf.d/

Die ganzen Kommentare habe ich mal weggelassen, damit das ganze etwas kleiner bleibt.

Hier noch einige rot-markierte Werte unter Status in phpmyadmin:

Code:
Slow_queries    40
Innodb_buffer_pool_pages_dirty    3
Innodb_buffer_pool_reads    13
Innodb_row_lock_time_avg    90
Innodb_row_lock_time_max    5,268
Innodb_row_lock_waits    121
Handler_read_rnd    287 k


Handler_read_rnd_next    14 M


Created_tmp_disk_tables    9,039
Select_full_join    654
Sort_merge_passes    5
Opened_tables    2,937
Table_locks_waited    34

Außerdem wurden seit dem start vor 5 Tagen fast 1,5 Mio Abfragen an den Server gesandt.

Tja, so schauts aus. Ich bitte um hilfe!


Mit freundlichen Grüßen,
lighters
 
Werbung:

Margit

Fleissiger Benutzer
Teammitglied
Beiträge
56
Deine Angaben sind für ein vBulletin-Forum etwas seltsam.

vb verwendet doch normalerweise kein Innodb sondern Myisam? Hast Du das geändert? Bist du dir sicher dass die Tabellen Innodb sind und nicht Myisam?

Und: handelt es sich um vb3 oder vb4? Ist der Server nur für die Datenbank da oder für Datenbank+PHP? Wieviel RAM hat das VPS?
 

lighters

Neuer Benutzer
Beiträge
2
Danke für deine Antwort Margit.

Nein, ich habe an der Engine nichts geändert, bei der Installation wurde anscheinend automatisch InnoDB verwendet. Ja, die meisten Tabellen sind InnoDB, bis auf einige wenige Myisam Tabellen (ca. 10) und eine Memory Tabelle. Außerdem handelt es sich um vB 4 :)

LG
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.830
Danke für deine Antwort Margit.

Nein, ich habe an der Engine nichts geändert, bei der Installation wurde anscheinend automatisch InnoDB verwendet. Ja, die meisten Tabellen sind InnoDB, bis auf einige wenige Myisam Tabellen (ca. 10) und eine Memory Tabelle. Außerdem handelt es sich um vB 4 :)

LG

slow_query_log aktivieren, guggen, wo es klemmt.
 
Oben