Mysql – Cannot allocate memory for the buffer pool when using remote access MySQL

innodbMySQLremoteweb server

I tried to separate the webserver and mysql server.
MySQL server = 16GB RAM and the config of Innodb_buffer_pool_size = 10GB. And
my Web server = 4GB RAM

My website connect to my database server using remote access with IP assigned. When I running a website it feels very slowly and then web goes down with the log "Cannot allocate memory for the buffer pool"

Does the webserver need more RAM for Innodb_buffer_pool_size too?
Because what I know is that the webserver only run httpd not mysqld. And mysqld handled by remote mysql server.

In my case the web server still need to increase size for Innodb_buffer_pool_size.

Already add "skip-name-resolve" but no luck.

Is anyone here encounter same issue with me?

Best Answer

"Separate" -- meaning they are on 2 different servers?

If so, then 10GB for the buffer_pool should be fine for a mysql-only server with 16GB of RAM.

If you have both on the same server, set the buffer_pool to

70% * (16G - (ram needed for web server))

down with the log "Cannot allocate memory for the buffer pool"

Something is hogging memory. It could be:

  • Other processes
  • Settings in mysql that are too high. Did you change some other settings?

Or are you getting that error on the separate web server? If so, then you have MySQL there!