Great Kuma Asked: 2010-04-08 08:49:25 +0800 CST2010-04-08 08:49:25 +0800 CST 2010-04-08 08:49:25 +0800 CST 仅在磁盘上使用 Varnish Cache 772 情况是: 我正在构建一个 PHP 应用程序并且需要 http 缓存。 Varnish 很棒,很多人告诉我 Varnish 将缓存的数据存储在 RAM 中。我希望它缓存在硬盘上。 有没有办法将清漆缓存数据存储在硬盘上? cache varnish disk-cache 3 个回答 Voted Thiago Figueiro 2010-06-10T13:51:59+08:002010-06-10T13:51:59+08:00 Varnish 缓存数据的主要方式有两种: 到内存(使用 malloc 存储配置) 到磁盘(使用文件存储配置) 你要的是#2。在这种方法中,Varnish 将始终将缓存写入磁盘并依靠操作系统虚拟内存子系统将最常用的磁盘页面保存在 RAM 中。 如果您使用的是 Red Hat/CentOS,请编辑您的 /etc/sysconfig/varnish NFILES=131072 MEMLOCK=82000 VARNISH_VCL_CONF=/etc/varnish/default.vcl VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1 VARNISH_ADMIN_LISTEN_PORT=6082 VARNISH_MIN_THREADS=200 VARNISH_MAX_THREADS=2000 VARNISH_THREAD_TIMEOUT=120 VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin VARNISH_STORAGE_SIZE=50% #VARNISH_STORAGE_SIZE=1G VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}" VARNISH_TTL=120 # DAEMON_OPTS is used by the init script. If you add or remove options, make # sure you update this section, too. # -h classic,500009 \ DAEMON_OPTS="-f ${VARNISH_VCL_CONF} \ -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \ -t ${VARNISH_TTL} \ -w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT} \ -u varnish -g varnish \ -s ${VARNISH_STORAGE} \ -p thread_pool_min=200 \ -p thread_pool_max=2000 \ -p thread_pools=8 \ -p listen_depth=4096 \ -p session_linger=50/100/150 \ -p lru_interval=60" 如果没有,你想要这样的东西: varnishd -s file,/var/lib/varnish/varnish_storage.bin,50% 50% 将使用一半的可用磁盘。您也可以使用 10G 等。使用文件存储时,建议将 /var/lib/varnish 挂载到非日志文件系统(例如 ext2),并在挂载 FS 时使用 noatime 和 nodiratime。 gekkz 2010-04-08T09:11:27+08:002010-04-08T09:11:27+08:00 Varnish 将数据存储在磁盘上,然后将其拉入 RAM 以加速请求。没有修改源代码,我怀疑你所要求的是可能的。 Ryan Bair 2010-04-08T11:57:57+08:002010-04-08T11:57:57+08:00 看看建筑师笔记。快速阅读,您应该非常清楚地了解基础知识。需要注意的最重要一点是 Varnish 不区分磁盘和内存,这是内核的工作。
Varnish 缓存数据的主要方式有两种:
你要的是#2。在这种方法中,Varnish 将始终将缓存写入磁盘并依靠操作系统虚拟内存子系统将最常用的磁盘页面保存在 RAM 中。
如果您使用的是 Red Hat/CentOS,请编辑您的 /etc/sysconfig/varnish
如果没有,你想要这样的东西:
50% 将使用一半的可用磁盘。您也可以使用 10G 等。使用文件存储时,建议将 /var/lib/varnish 挂载到非日志文件系统(例如 ext2),并在挂载 FS 时使用 noatime 和 nodiratime。
Varnish 将数据存储在磁盘上,然后将其拉入 RAM 以加速请求。没有修改源代码,我怀疑你所要求的是可能的。
看看建筑师笔记。快速阅读,您应该非常清楚地了解基础知识。需要注意的最重要一点是 Varnish 不区分磁盘和内存,这是内核的工作。