禁止memcached使用SWAP
来源:互联网 发布:软件开发视频教程 编辑:程序博客网 时间:2024/04/29 12:19
我对memcached不是很熟悉,只会基本的使用,但常听到人们讨论memcached使用SWAP的问题。一种说法是memcached使用SWAP可能会导致memcached拒绝连接,对此我不太了解,也无法理解:SWAP对应用程序来说应该是透明的,不应该导致程序出现异常反应。但SWAP导致memcached响应变慢,那是板上钉钉的事实。有些人为了防止memcached使用SWAP,在系统中禁止SWAP,造成系统内存不足时宕机,真是得不偿失。我不太同意在系统中禁用SWAP、或者是把SWAP设置得很小的做法。SWAP导致程序运行变慢,但总比程序不能运行或系统崩溃要好。
其实在linux系统中,可以使用mlockall系统调用阻止程序使用SWAP:
mlock() and mlockall() respectively lock part or all of the calling process's virtual address space into RAM, preventing that memory from being paged to the swap area.
按理说只要在memcached进程内调用mlockall,memcached就不会使用到SWAP。grep一下memcached源码就知道memcached有使用mlockall,但必须在启动时加上-k参数:
int main (int argc, char **argv) { bool lock_memory = false; ...... while (-1 != (c = getopt(argc, argv, ......)) { switch (c) { ...... case 'k': lock_memory = true; break; ...... } } ...... if (lock_memory) { int res = mlockall(MCL_CURRENT | MCL_FUTURE); ......}
从memcached的帮助可以看到-k参数的说明:
-k Lock down all paged memory. This is a somewhat dangerous option with large caches, so consult the README and memcached homepage for configuration suggestions.
帮助说明memcache已经提供了禁止程序使用SWAP的功能,只需加参数-k即可启用。具体情况我没有深入研究、也没有实验过(验证这个问题挺麻烦的),有需要的朋友可研究一下。
- 禁止memcached使用SWAP
- swap 使用
- 配置Memcached禁止公网访问
- Memcached使用
- memcached 使用
- 使用memcached
- memcached使用
- memcached 使用
- memcached 使用
- Memcached使用
- memcached使用
- Memcached使用
- Linux swap 使用
- swap 的使用
- swap 什么时候使用
- swap的使用技巧
- 使用文件构建swap
- Linux使用swap分区
- Installing wxWidgets for Windows
- 非模态对话框的销毁和一些与窗口消息相关的函数
- The speed of light is just too slow - SI go thru #1
- 备份系统的各种因素
- Zend_Soap_AutoDiscover自动生成wsdl
- 禁止memcached使用SWAP
- 0.ring0-内核重载详解(NTOS)
- Qt 程序 支持中文 设置
- wxWidgets学习2--框架解释[转载]
- JAVA对象序列化保存为XML文件的工具类
- PowerPC下PCI、PCI-E设备的配置空间
- Java中hashcode()和equals()的详解
- ASP.NET 中动态添加JS
- xp 自动登陆