Sinds enige tijd valt mijn MySQL regelmatig uit. Eerst was dit heel af en toe, om de paar maanden, maar sinds vorige week ongeveer dagelijks. Hoe begin ik er aan om te ontdekken wat de reden hiervan is en hoe ik dit kan oplossen.
Sinds enige tijd valt mijn MySQL regelmatig uit. Eerst was dit heel af en toe, om de paar maanden, maar sinds vorige week ongeveer dagelijks. Hoe begin ik er aan om te ontdekken wat de reden hiervan is en hoe ik dit kan oplossen.
eens kijken in je syslogs om te beginnen zou ik zeggen..
Xenius.be | Our solutions, our products, your success !
Wat ik in m'n syslog vaak zie terugkomen is
mysqld invoked oom-killer: gfp_mask=0x1201d2, order=0, oomkilladj=0
Pid: 1623, comm: mysqld Not tainted 2.6.24-19-xen #1
- - - Updated - - -
Wat ik in m'n syslog vaak zie terugkomen is
mysqld invoked oom-killer: gfp_mask=0x1201d2, order=0, oomkilladj=0
Pid: 1623, comm: mysqld Not tainted 2.6.24-19-xen #1
Dan heb je te weinig geheugen waardoor mysqld wordt afgeschoten. OOM = Out Of Memory
Je kunt je geheugen uitbreiden of (als je eigenlijk meer dan genoeg zou moeten hebben) proberen uit te vinden waarom er af en toe te weinig geheugen beschikbaar is.
Sebastiaan Hoogeveen (NederHost)
OK, hier is een wat grotere block uit m'n syslog, ik geraak er zelf niet aaan uit. Is het mogelijk hieruit te achterhalen waarom ie out of memory geraakt?
Code:Jun 23 21:18:29 vps528 kernel: [1182363.034605] apache2 invoked oom-killer: gfp_mask=0x1201d2, order=0, oomkilladj=0 Jun 23 21:18:29 vps528 kernel: [1182363.034615] Pid: 26308, comm: apache2 Not tainted 2.6.24-19-xen #1 Jun 23 21:18:29 vps528 kernel: [1182363.034617] Jun 23 21:18:29 vps528 kernel: [1182363.034618] Call Trace: Jun 23 21:18:29 vps528 kernel: [1182363.034625] [<ffffffff80275e26>] oom_kill_process+0xf6/0x110 Jun 23 21:18:29 vps528 kernel: [1182363.034628] [<ffffffff802762ae>] out_of_memory+0x19e/0x1e0 Jun 23 21:18:29 vps528 kernel: [1182363.034631] [<ffffffff80278bd9>] __alloc_pages+0x389/0x3c0 Jun 23 21:18:29 vps528 kernel: [1182363.034635] [<ffffffff8027af54>] __do_page_cache_readahead+0x104/0x260 Jun 23 21:18:29 vps528 kernel: [1182363.034637] [<ffffffff8027520e>] filemap_fault+0x2de/0x3e0 Jun 23 21:18:29 vps528 kernel: [1182363.034641] [<ffffffff80281f3a>] __do_fault+0x6a/0x5d0 Jun 23 21:18:29 vps528 kernel: [1182363.034644] [<ffffffff80287551>] handle_mm_fault+0x1d1/0xd60 Jun 23 21:18:29 vps528 kernel: [1182363.034646] [<ffffffff8028a1f6>] __vma_link+0x26/0x50 Jun 23 21:18:29 vps528 kernel: [1182363.034648] [<ffffffff8028ade2>] vma_link+0x82/0x140 Jun 23 21:18:29 vps528 kernel: [1182363.034653] [<ffffffff80473553>] do_page_fault+0x1f3/0x11e0 Jun 23 21:18:29 vps528 kernel: [1182363.034655] [<ffffffff8028c028>] do_mmap_pgoff+0x3a8/0x3d0 Jun 23 21:18:29 vps528 kernel: [1182363.034660] [<ffffffff8033a122>] __up_write+0x22/0x130 Jun 23 21:18:29 vps528 kernel: [1182363.034662] [<ffffffff80471bf7>] error_exit+0x0/0x79 Jun 23 21:18:29 vps528 kernel: [1182363.034664] Jun 23 21:18:29 vps528 kernel: [1182363.034666] Mem-info: Jun 23 21:18:29 vps528 kernel: [1182363.034667] DMA per-cpu: Jun 23 21:18:29 vps528 kernel: [1182363.034670] CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0 Jun 23 21:18:29 vps528 kernel: [1182363.034673] DMA32 per-cpu: Jun 23 21:18:29 vps528 kernel: [1182363.034676] CPU 0: Hot: hi: 186, btch: 31 usd: 156 Cold: hi: 62, btch: 15 usd: 5 Jun 23 21:18:29 vps528 kernel: [1182363.034680] Active:95932 inactive:393 dirty:0 writeback:0 unstable:0 Jun 23 21:18:29 vps528 kernel: [1182363.034681] free:5128 slab:3420 mapped:1 pagetables:2387 bounce:0 Jun 23 21:18:29 vps528 kernel: [1182363.034686] DMA free:11540kB min:28kB low:32kB high:40kB active:0kB inactive:0kB present:16160kB pages_scanned:0 all_unreclaimable? yes Jun 23 21:18:29 vps528 kernel: [1182363.034689] lowmem_reserve[]: 0 4024 4024 4024 Jun 23 21:18:29 vps528 kernel: [1182363.034694] DMA32 free:8972kB min:8100kB low:10124kB high:12148kB active:383728kB inactive:1572kB present:4120800kB pages_scanned:658564 all_unreclaimable? yes Jun 23 21:18:29 vps528 kernel: [1182363.034696] lowmem_reserve[]: 0 0 0 0 Jun 23 21:18:29 vps528 kernel: [1182363.034699] DMA: 3*4kB 3*8kB 3*16kB 4*32kB 3*64kB 1*128kB 1*256kB 1*512kB 2*1024kB 0*2048kB 2*4096kB = 11540kB Jun 23 21:18:29 vps528 kernel: [1182363.034707] DMA32: 266*4kB 0*8kB 2*16kB 1*32kB 0*64kB 1*128kB 0*256kB 1*512kB 1*1024kB 1*2048kB 1*4096kB = 8936kB Jun 23 21:18:29 vps528 kernel: [1182363.034715] Swap cache: add 0, delete 0, find 0/0, race 0+0 Jun 23 21:18:29 vps528 kernel: [1182363.034716] Free swap = 0kB Jun 23 21:18:29 vps528 kernel: [1182363.034717] Total swap = 0kB Jun 23 21:18:29 vps528 kernel: [1182363.034719] Free swap: 0kB Jun 23 21:18:29 vps528 kernel: [1182363.044250] 1048576 pages of RAM Jun 23 21:18:29 vps528 kernel: [1182363.044260] 21255 reserved pages Jun 23 21:18:29 vps528 kernel: [1182363.044262] 20189 pages shared Jun 23 21:18:29 vps528 kernel: [1182363.044264] 0 pages swap cached Jun 23 21:18:29 vps528 kernel: [1182363.044267] Out of memory: kill process 25278 (apache2) score 73738 or a child Jun 23 21:18:29 vps528 kernel: [1182363.044280] Killed process 25278 (apache2) Jun 23 21:18:31 vps528 /USR/SBIN/CRON[26334]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Jun 23 21:19:01 vps528 kernel: [1182395.730776] mysqld invoked oom-killer: gfp_mask=0x1201d2, order=0, oomkilladj=0 Jun 23 21:19:01 vps528 kernel: [1182395.730789] Pid: 13220, comm: mysqld Not tainted 2.6.24-19-xen #1 Jun 23 21:19:01 vps528 kernel: [1182395.730791] Jun 23 21:19:01 vps528 kernel: [1182395.730792] Call Trace: Jun 23 21:19:01 vps528 kernel: [1182395.730802] [<ffffffff80275e26>] oom_kill_process+0xf6/0x110 Jun 23 21:19:01 vps528 kernel: [1182395.730806] [<ffffffff802762ae>] out_of_memory+0x19e/0x1e0 Jun 23 21:19:01 vps528 kernel: [1182395.730810] [<ffffffff80278bd9>] __alloc_pages+0x389/0x3c0 Jun 23 21:19:01 vps528 kernel: [1182395.730815] [<ffffffff8027af54>] __do_page_cache_readahead+0x104/0x260 Jun 23 21:19:01 vps528 kernel: [1182395.730818] [<ffffffff8027520e>] filemap_fault+0x2de/0x3e0 Jun 23 21:19:01 vps528 kernel: [1182395.730822] [<ffffffff80281f3a>] __do_fault+0x6a/0x5d0 Jun 23 21:19:01 vps528 kernel: [1182395.730824] [<ffffffff80287551>] handle_mm_fault+0x1d1/0xd60 Jun 23 21:19:01 vps528 kernel: [1182395.730829] [<ffffffff80229f63>] set_next_entity+0x23/0x50 Jun 23 21:19:01 vps528 kernel: [1182395.730835] [<ffffffff80473553>] do_page_fault+0x1f3/0x11e0 Jun 23 21:19:01 vps528 kernel: [1182395.730840] [<ffffffff8046f7e9>] thread_return+0x3a/0x481 Jun 23 21:19:01 vps528 kernel: [1182395.730845] [<ffffffff80471bf7>] error_exit+0x0/0x79 Jun 23 21:19:01 vps528 kernel: [1182395.730848] Jun 23 21:19:01 vps528 kernel: [1182395.730850] Mem-info: Jun 23 21:19:01 vps528 kernel: [1182395.730851] DMA per-cpu: Jun 23 21:19:01 vps528 kernel: [1182395.730853] CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0 Jun 23 21:19:01 vps528 kernel: [1182395.730855] DMA32 per-cpu: Jun 23 21:19:01 vps528 kernel: [1182395.730857] CPU 0: Hot: hi: 186, btch: 31 usd: 172 Cold: hi: 62, btch: 15 usd: 14 Jun 23 21:19:01 vps528 kernel: [1182395.730861] Active:94084 inactive:618 dirty:0 writeback:0 unstable:0 Jun 23 21:19:01 vps528 kernel: [1182395.730861] free:4898 slab:3594 mapped:0 pagetables:3925 bounce:0 Jun 23 21:19:01 vps528 kernel: [1182395.730866] DMA free:11540kB min:28kB low:32kB high:40kB active:0kB inactive:0kB present:16160kB pages_scanned:0 all_unreclaimable? yes Jun 23 21:19:01 vps528 kernel: [1182395.730869] lowmem_reserve[]: 0 4024 4024 4024 Jun 23 21:19:01 vps528 kernel: [1182395.730875] DMA32 free:8052kB min:8100kB low:10124kB high:12148kB active:376336kB inactive:2472kB present:4120800kB pages_scanned:767723 all_unreclaimable? yes Jun 23 21:19:01 vps528 kernel: [1182395.730878] lowmem_reserve[]: 0 0 0 0 Jun 23 21:19:01 vps528 kernel: [1182395.730881] DMA: 3*4kB 3*8kB 3*16kB 4*32kB 3*64kB 1*128kB 1*256kB 1*512kB 2*1024kB 0*2048kB 2*4096kB = 11540kB Jun 23 21:19:01 vps528 kernel: [1182395.730900] DMA32: 62*4kB 4*8kB 3*16kB 4*32kB 2*64kB 0*128kB 1*256kB 0*512kB 1*1024kB 1*2048kB 1*4096kB = 8008kB Jun 23 21:19:01 vps528 kernel: [1182395.730908] Swap cache: add 0, delete 0, find 0/0, race 0+0 Jun 23 21:19:01 vps528 kernel: [1182395.730910] Free swap = 0kB Jun 23 21:19:01 vps528 kernel: [1182395.730911] Total swap = 0kB Jun 23 21:19:01 vps528 kernel: [1182395.730912] Free swap: 0kB Jun 23 21:19:01 vps528 kernel: [1182395.740886] 1048576 pages of RAM Jun 23 21:19:01 vps528 kernel: [1182395.740893] 21255 reserved pages Jun 23 21:19:01 vps528 kernel: [1182395.740894] 39897 pages shared Jun 23 21:19:01 vps528 kernel: [1182395.740895] 0 pages swap cached Jun 23 21:19:01 vps528 kernel: [1182395.740898] Out of memory: kill process 25246 (apache2) score 73450 or a child Jun 23 21:19:01 vps528 kernel: [1182395.740913] Killed process 25246 (apache2)
Ik zou eens via TOP kijken wat er zoal draait en wat er bovenaan staat ...
Xenius.be | Our solutions, our products, your success !
Aangezien TOP constant veranderd, hoe weet ik dan wat het juist is?
mysqld staat daar regelmatig bij, maar lijkt niet boven 10.7 %MEM te gaan
apache2 komt er ook veel in voor en gaat soms tot 30 %MEM, alhoewel dat wat moeilijk te zien is aangezien er verschillende processen bezig zijn
Hier een stukje uit my.cnf, is het zinvol hier wat aan te veranderen? Lijkt dat die nog op standaard waarden staan.Code:top - 14:17:47 up 15 days, 9:41, 2 users, load average: 0.13, 0.30, 0.42 Tasks: 58 total, 1 running, 57 sleeping, 0 stopped, 0 zombie Cpu(s): 19.7%us, 2.7%sy, 0.0%ni, 77.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 524508k total, 415200k used, 109308k free, 0k buffers Swap: 0k total, 0k used, 0k free, 72404k cached
Of is heeft mijn VPS pakket gewoon onvoldoende memory voor hetgeen er op draait?Code:# * Fine Tuning # key_buffer = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8
Tweaken zal niet veel uithalen vrees ik aangezien je apache en mysql een out of memory gegeven en je maar 512MB ram en geen swap hebt. Dit zal hoogst waarschijnlijk in jouw geval betekenen dat je effectief te weinig geheugen hebt voor je applicaties. Misschien dat je even kunt meedelen wat er precies op die server draait.
Dennis de Houx - All In One ~ Official ISPsystem partner
Lees hier de webhostingtalk.nl forum regels en voorwaarden!
Er staan een tiental websites op, maar bijna allemaal met zeer weinig of geen trafiek. Meeste zijn Drupal, enkele Wordpress en en paar custom made. Met geen trafiek bedoel ik dat het websites zijn die in test staan en waarvan de url dus niet publiek is, waardoor ze geen bezoekers krijgen.
Kan je de hele my.cnf posten?
512 MB zit je vrij snel overheen. Een Apache proces kan makkelijk 40 MB gebruiken, dus als je 10 processen open hebt staan, zit je al op 400 MB. Dan heb je nog maar iets meer dan 100 MB over voor al je andere dingen, waaronder MySQL. Een klein piekje kan er al voor zorgen dat je dit probleem krijgt.
Ik zou gewoon een VPS zoeken met fors meer geheugen en het liefst ook een beetje swapspace.
Treden de problemen rond dezelfde tijden op? Of is het random? Je hebt toevallig geen zware cronjobs draaien die je mysql flink belasten met grote / zware queries?
512 MB is niet erg ruim. Afhankelijk van de kosten zou ik een upgrade naar 1 GB zeker overwegen, dat geeft je veel meer ademruimte. Wat je in ieder geval zou moeten doen is een swapfile of -partitie toevoegen: er worden dan in ieder geval minder snel processen afgeschoten. Merk op dat gebruik van swap op een VPS vaak wel behoorlijk traag is (afhankelijk van het storage-platform waar je op draait).
Sebastiaan Hoogeveen (NederHost)
my.cnf:
Code:# # The MySQL database server configuration file. # # You can copy this to one of: # - "/etc/mysql/my.cnf" to set global options, # - "~/.my.cnf" to set user-specific options. # # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html # This will be passed to all mysql clients # It has been reported that passwords should be enclosed with ticks/quotes # escpecially if they contain "#" chars... # Remember to edit /etc/mysql/debian.cnf when changing the socket location. [client] port = 3306 socket = /var/run/mysqld/mysqld.sock # Here is entries for some specific programs # The following values assume you have at least 32M ram # This was formally known as [safe_mysqld]. Both versions are currently parsed. [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] # # * Basic Settings # 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-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 # # * Fine Tuning # key_buffer = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 # This replaces the startup script and checks MyISAM tables if needed # the first time they are touched myisam-recover = BACKUP #max_connections = 100 #table_cache = 64 #thread_concurrency = 10 # # * Query Cache Configuration # query_cache_limit = 1M query_cache_size = 16M # # * Logging and Replication # # Both location gets rotated by the cronjob. # Be aware that this log type is a performance killer. # As of 5.1 you can enable the log at runtime! #general_log_file = /var/log/mysql/mysql.log #general_log = 1 # # Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. # # Here you can see queries with especially long duration log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 2 log-queries-not-using-indexes # # The following can be used as easy to replay backup logs or for replication. # note: if you are setting up a replication slave, see README.Debian about # other settings you may need to change. #server-id = 1 #log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M #binlog_do_db = include_database_name #binlog_ignore_db = include_database_name # # * InnoDB # # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. # Read the manual for more InnoDB related options. There are many! # # * Security Features # # Read the manual, too, if you want chroot! # chroot = /var/lib/mysql/ # # For generating SSL certificates I recommend the OpenSSL GUI "tinyca". # # ssl-ca=/etc/mysql/cacert.pem # ssl-cert=/etc/mysql/server-cert.pem # ssl-key=/etc/mysql/server-key.pem [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] #no-auto-rehash # faster start of mysql but no tab completition [isamchk] key_buffer = 16M # # * 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/
Ik heb mijn cron jobs ingesteld met telkens 5 minuten er tussen, dat zijn Drupal cron.php jobs.