Boomfelled wrote:
(...)
The results of the MySQL error log file can be seen at the bottom of this post, I can't make much of it.
(...)
This is most likely the main issue:
Code:
141030 8:19:48 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
141030 8:19:48 InnoDB: Completed initialization of buffer pool
141030 8:19:48 InnoDB: Fatal error: cannot allocate memory for the buffer pool
The InnoDB storage engine can't allocate its main pool (looks like you have 128MB configured) so punts, which then blocks regular the rest of startup since MySQL can't manage any InnoDB tables.
Now, 128MB is not a ton of memory, so it sounds like your Linode may be seriously memory constrained. That might (just a guess) also explain why the database goes away spontaneously, if you get low enough the Linux OOM killer might be killing it off, as it's a long running process that is probably also a heavy memory user.
So my first suggestion would be to look into memory usage. See what "free" shows, check your active processes, and if you have any OOM logs (look for killed process messages, probably in kern.log, or you can look for recent logs on the Lish console).
How are you serving the Wordpress site? If with Apache and mod_php, you might have a worker configuration that can use far too much memory under load (default distribution Apache configurations are often horrible for smaller memory configurations, and there are lots of posts in the forums about tuning Apache configurations for such a case), or if php-fpm you might have a pool definition with a maximum servers too high. Essentially, check roughly how much memory each Wordpress process (Apache worker with mod_php, or php-fpm pool process) is using, then figure out how many requests you should let run in parallel and make sure your worker limit or php-fpm pool limit stays below that.
-- David