Want to give each account its own InnoDB buffer pool to avoid noisy neighbor issue
Announcement
Collapse
No announcement yet.
separate mysqld instance for each CageFS / LVE?
Collapse
X
-
Our goal is to give each account its own InnoDB buffer pool, so that table indexes can stay in RAM for better performance (and possibly tables too), as we prioritize performance over server density and do not oversell our servers resources. Otherwise a noisy neighbor could bump off this account from the shared global InnoDB buffer pool.
It seems the only way to give each account its own InnoDB buffer pool is to have a separate MySQL instance for each account. Or let us know if this is simply not a good idea. Dealing with multiple MySQL instances is not an issue for our control panel since we are updating a custom one.
Here are the two possible solutions weve come up with:
Solution 1 - accounts MySQL running inside CageFS / LVE
- With this approach, we do not need to use the MySQL Governor, right? As the mysqld will have the LVE resource limits applied.
- What happens when the LVE runs out of RAM, could there potentially be database corruption? It seems you cannot give an LVE virtual memory disk space to use once its physical RAM is depleted.
Solution 2 - accounts MySQL running outside the CageFS / LVE
- Would use MySQL Governor - can we run multiple MySql Governors on the same server without any issues?
Thanks for any feedback!
-
I was actually looking into getting an automated system (maybe using docker) to create private database instances for customers.
There would be multiple advantages of running multiple mysql instances :
With our large mysql server, we have hit scalability issues :
1) It takes about 1 minute to empty our 70 GB of innodb cache to restart mysql
2) MySQL doesn like more that 128 MB of query cache, and this isn enough for large servers
We would love to have a mysql instance per user. Would this be possible with cagefs ? I belive it could be, and hadn actually though of using cagefs for this. I guess it would need some developement, but we give our +1 for this feature request. It would me amazing !
Comment
-
Hello,
Solution 1 - you are right, in this case no need in using governor, when mysql will be in LVE. About memory limiting, I recommend to disable memory limiting for this LVE or make it enough large. MySQL shouldn be corrupted when reach memory limit, but if memory will be not enough - caching can work effectively.
Solution 2 - at this moment on one server can be started more than one governor service.
Comment
-
Ive just found this article :
Any news, ETA for beginning beta ? It says beginning April 2 but as nothing has been announced yet I presume theres nothing to see just now.
I like the Kuberdock logo
Comment
Comment