我目前正在测试在数据库Redis (在本地)中插入关键字。我有500多万个密钥,而我只有4 4GB的RAM,所以在某个时刻,我达到了RAM的容量并交换了内存(然后我的PC就宕机了)……
我的问题:如何在拥有Redis数据库的机器上监控内存使用情况,并以这种方式告警不再在Redis数据库中插入一些键?
谢谢。
发布于 2011-06-23 18:10:24
关于内存使用,我建议您查看redis.io FAQ和这篇关于using redis as a LRU cache的文章。
您可以通过maxmemory配置设置来限制内存使用,在这种情况下,一旦达到内存限制,所有写请求都将失败并返回错误,或者您可以将maxmemory-policy设置为allkeys-lru,例如,开始使用当前需要的内容覆盖服务器上最近最少使用的数据,等等。对于大多数使用情况,您有足够的灵活性通过适当的配置来处理此类问题。
我的建议是让事情变得简单,并通过配置redis服务器来管理这个问题,而不是通过操作系统级别的监控或类似的方式引入额外的复杂性。
发布于 2011-06-23 16:09:16
有一个很好的Unix实用程序,名为vmstat。它就像命令行一样,所以你可以得到内存使用情况,并在系统停止之前做好准备。您还可以使用ps v PID来获取有关特定进程的信息。Redis的PID可以这样检索:pidof redis-server
https://stackoverflow.com/questions/6450932
复制相似问题