[MySQL] Process neemt alle resources over

Pagina: 1
Acties:

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 08-02 12:48
Sinds enkele dagen hebben wij op ene webserver problemen met MySQL. Na de constatering dat er veel locking problemen zijn hebben we een aantal grote tables omgezet naar InnoDB. Vervolgens heeft de server 4 dagen stabiel en snel gedraaid. De locking problemen waren opgelost en de load daalde 6 puntjes tot 4. Nog niet optimaal maar beter.
Afgelopen dinsdag ging het fout, er blijft ene MySQL process draaien wat soms wel uren in beslag neemt en langzaam sluit het alle resources op.
MySQL mag geen threads meer aanmaken, en zo kan je dus ook niet inloggen. De logs wijzen nits uit. Het enige wat we zien is een lang draaiend procss.

Heeft iemand hier toevallig vaker van gehoord? We draaien MySQL 4.0.21 op een Dual Xeon 2,8 met 2 Gig aan RAM.

Edit:
Beter nog, hebben jullie tips, en zijn er andere zaken waar we op kunnen letten?

[ Voor 7% gewijzigd door Alex op 30-10-2004 16:55 ]

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


  • Cyril
  • Registratie: Juli 2000
  • Laatst online: 16-02 11:29

Cyril

it's all in my mind

Zet slow queries eens aan in my.conf, dan kan je kijken welke query precies zo zwaar is.

log_slow_queries=/var/log/slow-queries.log

Real Men don't make backups. They upload it via ftp and let the world mirror it. -Linus Torvalds


  • Alex
  • Registratie: Juli 2001
  • Laatst online: 08-02 12:48
Dat hebben we ens dat wijst niets uit. Ja op een enkele query na in het begin die 'time-out' op het moment dat de cache nog niet helemala gevuld is...

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


  • Wilke
  • Registratie: December 2000
  • Laatst online: 16-02 19:49
Post je configuratie eens? Draaien zowel MySQL als Apache op 1 machine, of op verschillende? Hoeveel requests/seconde moet die server ongeveer afhandelen?

Een load van 4-6 op zo'n systeem is hoog, het zou (misschien afgezien van piektijden) gewoon onder de 1 moeten liggen.

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 08-02 12:48
De webserver is ene vergelijkbare server met een vergelijkbare config.
MySQL doet tussen de 200 en 500 q/s. Waarbij het gem. overdag iets boven de 400 ligt. Na middernacht zit het rond de 250. Vrij zware balasting dus.
Maandelijks doen we met deze 2 servers zo'n 140 milj. pageviews met een dataverkeer van rond de 500Gb. We zijn bezig met een 2e webserver, maar dan hebben we wel een stabiele database server nodig...

MySQL config:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe]
err-log         = /var/log/mysql/mysql.err
socket          = /var/run/mysqld/mysqld.sock
open_files_limit = 8192

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306

basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/english
#skip-locking

thread_stack            = 128K
max_connections = 500
key_buffer = 512M
myisam_sort_buffer_size = 48M
join_buffer_size = 64M
read_buffer_size = 64M
sort_buffer_size = 64M
table_cache = 1500
thread_cache_size = 128
wait_timeout = 120
connect_timeout = 5
max_allowed_packet = 4M
max_connect_errors = 10
query_cache_limit = 2M
query_cache_size = 1024M
query_cache_type = 1

# Slow query
log_slow_queries = /var/log/mysql/slow-queries.log
long_query_time  = 250

#InnoDB
innodb_data_file_path = ibdata1:100M:autoextend
innodb_buffer_pool_size=500M
innodb_additional_mem_pool_size=20M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50


[mysqldump]
quick
max_allowed_packet      = 16M

[isamchk]
key_buffer = 128M
sort_buffer = 128M
read_buffer = 16M
write_buffer = 16M


Als jullie nog meer configs willen zien o.i.d. graag! ;) Met man en macht wordt op dit moment naar de oplossing gezocht maar we krijgen de oplossing niet gevonden...

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 16-02 15:03
Alex de Groot schreef op 30 oktober 2004 @ 16:52:
Afgelopen dinsdag ging het fout, er blijft ene MySQL process draaien wat soms wel uren in beslag neemt en langzaam sluit het alle resources op.
MySQL mag geen threads meer aanmaken, en zo kan je dus ook niet inloggen. De logs wijzen nits uit. Het enige wat we zien is een lang draaiend procss.
Met dit probleem hadden wij ook te maken toen we nog 3.23 draaiden. Dit is inmiddels omgezet naar 4.0 waardoor de meeste problemen opgelost waren. Het 'hangend' proces bleef echter aan. Een echte oplossing heb ik niet echt voor je. Wel een opmerking, MySQL gaat er in jouw config vanuit dat het zoveel geheugen tot z'n beschikking heeft:

key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections
512 + ((64 + 64) * 500) = 64512 MB

Beetje veel, ook met je swap kom je daar bij lange na niet aan :D. Ik zou vooral de read en sort buffers eens omzetten naar een MB of 10, deze functie gaat uiteraard praktisch vaak niet op, maar geeft wel een goede indicatie.

zeroxcool.net - curity.eu

Pagina: 1