1

我一直在研究如何调整环境的性能,并设置了许多参数来提高 NFS 性能,从设置挂载选项等简单的事情到设置 sysctl 参数等高级设置,甚至考虑在 NIC 上启用巨型帧和防火墙。

我在同一台服务器上运行 NFS 和 memcached,我觉得我可以通过消除 memcached 网络开销来提高性能。

首先是一些环境信息:

dsr 设置中的 4 个负载平衡 Web 服务器,连接到 ASA 5510。主/主复制中的 2 个 mysql 服务器。1 个运行 memcached 和 nfs 的应用程序/文件服务器。

添加额外的服务器不在讨论范围内。

Web 服务器通过导出的 NFS 安装来提供其内容。Web 服务器上的 NFS 挂载设置为使用 udp 而不是 tcp。

Web 服务器在 apache/php 之前运行 varnish,varnish 设置为仅通过单独的子域提供图像、css 和 javascript。

大多数情况下,网站在 5 秒内加载,但偶尔,即使在流量较低的晚上,我们也会看到加载时间更长。有时长达 10 秒。当然这还不错,但我们没有理由不能看到更好的性能。所有文件都通过 NFS 提供。顺便说一句,我最近获得了这个客户,在他们原来的技术转换职位之后。

由于服务器现在针对 NFS 连接进行了优化,我认为我可以/应该做的是将 memcached 设置为在 unix 套接字模式下运行,这会禁用其网络功能,然后将 unix 套接字放在导出的文件系统上。这样,Web 服务器仍然可以连接到 memcached,但它会消除一些开销,因为我有 NFS 挂载运行 udp 而不是 tcp。

4

1 回答 1

1

文件系统上的 unix 套接字文件只是两个进程连接到同一个套接字的句柄;所有的通信都是本地的,将它放在 NFS 上(如果可能的话)将无法实现跨机器的通信。此外,即使 NFS 有一些机制,它也可能比直接使用 memcache 更糟糕。

于 2012-06-05T14:54:13.950 回答