在linux服务器上使用所有的内存是否安全,而不是为caching留下任何东西?

我有一个CentOS服务器完全专用于MySQL 5.5(主要是innodb表)。 服务器具有32 GB RAM,SSD磁盘和平均内存使用情况如下所示:

自由

所以大约25GB正在使用中,大约6.5GB被caching。 我遇到了WRITE查询的性能问题,所以我在想,这是最佳的caching大小吗? 我可能会增加innodb缓冲区的大小,这样linux的caching会变小,或者减less,所以会更大。

什么是Linux上繁忙的MySQL服务器的最佳使用/caching内存平衡?

caching的内存存在,以利用未使用的内存来加速请求。 所以如果你把所有的内存都放在一个可以使用它的应用程序上,你将会看到性能提升。 所以要回答你的问题,没有一个最佳平衡的东西。

一般来说,如果您担心MySQL的性能,我会尽可能多地为MySQL分配caching。 它知道要caching什么,而操作系统caching则不知道 – 它只是caching经常访问的文件。

关于性能问题,如果可能的话,可以尝试从RAM磁盘运行数据库。 否则,请使用可以使用caching设备的文件系统。

直接回答你的问题的标题:不,这将是一个非常糟糕的主意。

如果您将所有可用内存(+/-几MB)分配给某个程序,那么将使用某些系统内存的任何其他程序(例如,如果您经常使用find或cronjobs,则每日,每周等上)将不得不交换。

如果你的系统要交换,你会注意到整体性能的巨大下降。