Ubuntu mysql stopt bij 'veel' bezoekers

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Gangster93
  • Registratie: Mei 2009
  • Laatst online: 19:45
Informatie:
Ik heb sinds een aantal maanden SMF forum.
Afgelopen maand bezocht door 4500 bezoekers met 41000 pagina weergave's, niet veel bijzonders.
Na het uitsturen van de wekelijkse nieuwsbrief stijgt het aantal actieve bezoekers naar boven de 30. De nieuwsbrief wordt aan 1400 leden verstuurd.

Probleem:
Bij meer dan 30 bezoekers stopt mysql en moet deze handmatig weer aangezet worden anders is de site onbereikbaar.
In de grafieken schommelt CPU usage rond de 50%.

Systeem:
VPS met 512MB ram en 20GB disk
Ubuntu systeem met LAMP
Virtualmin en Webmin geïnstalleerd
Postfix mailserver
Database size van SMF: 16,77 MB

Op internet gezocht naar optimalisatie van mysql omdat ik vermoed dat daar iets misgaat, helaas hier niet veel over kunnen vinden behalve het aanpassen van het aantal connecties.

Zou iemand tips kunnen geven?

Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Waar staat de aantal connecties nu op dan? Staat er niets in je mysql error log?

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • Gangster93
  • Registratie: Mei 2009
  • Laatst online: 19:45
Afvalzak schreef op dinsdag 24 december 2013 @ 15:56:
Waar staat de aantal connecties nu op dan? Staat er niets in je mysql error log?
Onderstaande staat in error.log:
131223 11:59:34 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
131223 11:59:34 [Note] Plugin 'FEDERATED' is disabled.
131223 11:59:34 InnoDB: The InnoDB memory heap is disabled
131223 11:59:34 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131223 11:59:34 InnoDB: Compressed tables use zlib 1.2.3.4
131223 11:59:34 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(135987200 bytes) failed; errno 12
131223 11:59:34 InnoDB: Completed initialization of buffer pool
131223 11:59:34 InnoDB: Fatal error: cannot allocate memory for the buffer pool
131223 11:59:34 [ERROR] Plugin 'InnoDB' init function returned error.
131223 11:59:34 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
131223 11:59:34 [ERROR] Unknown/unsupported storage engine: InnoDB
131223 11:59:34 [ERROR] Aborting

131223 11:59:34 [Note] /usr/sbin/mysqld: Shutdown complete

131223 11:59:35 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
131223 11:59:35 [Note] Plugin 'FEDERATED' is disabled.
131223 11:59:35 InnoDB: The InnoDB memory heap is disabled
131223 11:59:35 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131223 11:59:35 InnoDB: Compressed tables use zlib 1.2.3.4
131223 11:59:36 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(135987200 bytes) failed; errno 12
131223 11:59:36 InnoDB: Completed initialization of buffer pool
131223 11:59:36 InnoDB: Fatal error: cannot allocate memory for the buffer pool
131223 11:59:36 [ERROR] Plugin 'InnoDB' init function returned error.
131223 11:59:36 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
131223 11:59:36 [ERROR] Unknown/unsupported storage engine: InnoDB
131223 11:59:36 [ERROR] Aborting

Acties:
  • 0 Henk 'm!

  • bobsquad
  • Registratie: Maart 2008
  • Niet online
anders even sysbench draaien en kijken wat er gebeurt

Edit: Te weinig RAM waardoor Mysql zichzelf uitschakeld.

[ Voor 21% gewijzigd door bobsquad op 24-12-2013 16:08 ]


Acties:
  • 0 Henk 'm!

  • Gangster93
  • Registratie: Mei 2009
  • Laatst online: 19:45
bobsquad schreef op dinsdag 24 december 2013 @ 16:06:
anders even sysbench draaien en kijken wat er gebeurt

Edit: Te weinig RAM waardoor Mysql zichzelf uitschakeld.
Vreemd, want als ik sysbench draai doorstaat de server de test prima.
Wat kan ik doen om het probleem op te lossen?
Is het mogelijk dat mysql blijft draaien maar voor nieuwe users die de website proberen te bezoeken een foutmelding te genereren? Als er dan minder bezoekers actief zijn dat andere de website dan weer wel kunnen bezoeken.

Acties:
  • 0 Henk 'm!

  • BHQ
  • Registratie: November 2003
  • Laatst online: 15-10 22:32

BHQ

Hmm, ik denk echt dat je te weinig RAM in de VM hebt. Kijk eens of je met 1GB de issues hebt (als je makkelijk heen en weer kan schalen)?

Acties:
  • 0 Henk 'm!

Verwijderd

Post eens de inhoud van my.cnf . Het lijkt erop dat je mysql teveel geheugen verbruikt en stopt.
Je kan ook mysqltuner runnen, dan zie je of het geheugen het probleem is.

Ook kunnen de max connecties het probleem zijn. Hoeveel heb je en hoeveel zijn er dan bezet?

En welke onder welke PHP mode draait je site? Kunnen er genoeg childs gespawned worden? Of worden er misschien juist teveel processen geopend waardoor je server crasht?

Kijk eens met TOP/HTOP wat je ziet.

Acties:
  • 0 Henk 'm!

  • Gangster93
  • Registratie: Mei 2009
  • Laatst online: 19:45
Verwijderd schreef op dinsdag 24 december 2013 @ 16:31:
Post eens de inhoud van my.cnf . Het lijkt erop dat je mysql teveel geheugen verbruikt en stopt.
Je kan ook mysqltuner runnen, dan zie je of het geheugen het probleem is.

Ook kunnen de max connecties het probleem zijn. Hoeveel heb je en hoeveel zijn er dan bezet?

En welke onder welke PHP mode draait je site? Kunnen er genoeg childs gespawned worden? Of worden er misschien juist teveel processen geopend waardoor je server crasht?

Kijk eens met TOP/HTOP wat je ziet.
Inhoud van my.cnf
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[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
lc-messages-dir = /usr/share/mysql
skip-external-locking
key_buffer = 16K
max_allowed_packet = 1M
thread_stack = 128K
myisam-recover = BACKUP
query_cache_limit = 1M
log_error = /var/log/mysql/error.log
expire_logs_days = 10
max_binlog_size = 100M
innodb_file_per_table = 1
net_buffer_length = 2K
read_rnd_buffer_size = 256K
read_buffer_size = 256K
sort_buffer_size = 64K
table_cache = 4
bind-address = 127.0.0.1
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
[isamchk]
key_buffer = 8M
sort_buffer_size = 8M
!includedir /etc/mysql/conf.d/


Ik gebruik PHP 5.3.10
Momenteel met 10 bezoekers
Afbeeldingslocatie: http://s23.postimg.org/x4y71s72j/Knipsel.png

Geheugen upgrade gedaan naar 1 gb. Ik ga een nieuwsbrief versturen om te kijken of de server het met deze verdubbeling van geheugen wel trekt.

Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Kan je niet gewoon 30 sessies openen?:p

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

Verwijderd

Ik zou inderdaad eens proberen 30 sessies te openen. Gewoon met je middelste muisknop even een behoorlijk aantal keer een link op je site openen ;)
Houd dan je top venster goed in de gaten.

Je my.cnf instellingen zijn gelukkig vrij bescheiden. Volgens mij zijn ze gewoon default voor een 512MB systeem. Maar bij veel connecties kan dit net de 512MB overschrijden en zorgen voor swap (en die had je niet > crash)

Zo te zien heb je geen swapfile. Ik raad aan om deze aan te zetten. Natuurlijk wel voorkomen dat er veel geswapped wordt, maar het is wel aan te raden om een swapfile te hebben voor bepaalde situaties op te vangen.

[ Voor 21% gewijzigd door Verwijderd op 24-12-2013 17:04 ]

Pagina: 1