在生产中,我们将部署Redis服务器,并且需要设置overcommit_memory=1
并禁用内核中的“透明大页面”。
当前问题是我们只有一台巨型服务器,该服务器将由许多其他应用共享。我们只需要redis服务器中的那些内核配置。我想知道我们是否可以通过拆分专用VM来实现Redis。在docker中这样做当然没有意义。我的问题是:
即使主机操作系统没有相同的内核配置,这些内核配置也会在redis VM中生效吗?我对此表示怀疑,因为硬件资源最终是由主机分配的。
redis VM中的内核配置会影响运行其他应用程序的其他VM吗?我认为不会,只是想确认一下。
要实现该目标,我们应该使用哪种VM或虚拟机管理程序?
如果无法在VM中执行此操作,唯一的方法是使用单独的服务器(硬件)进行Redis操作吗?
答案 0 :(得分:1)
如果您在虚拟机上运行真实的内核,则VM应该能够正确处理过量使用的内存。
主机服务器将为VM分配固定的内存块。 VM应该根据需要管理该内存,包括过量使用自己的地址空间。
这不会影响主机上运行的其他应用程序(除了可用内存较少的事实)。如果可以,则说明您的管理程序存在问题。
这适用于任何系统管理程序。 KVM是一个很好的起点。
请注意,我实际上并未尝试过-欢迎实验结果!