用于应用程序缓存和日志的分布式文件系统

时间:2016-07-05 17:25:18

标签: symfony caching filesystems distributed glusterfs

我在单个服务器上安装了一个php symfony应用程序,并在不同节点上使用docker水平扩展。所以在这里我想使用集群文件系统来缓存和日志,以便集中它并安装到docker容器上。

我用glusterfs实现了这一点,并与一位运行良好的用户进行了测试。但随着负载的增加,应用程序出现故障,响应时间增加,有时用户将获得白屏。我删除了glusterfs并使用了本地文件系统,提高了应用程序的性能,并没有看到重负载响应时间的任何增加。由此可见,我认为glusterfs不是用于存储缓存和日志的集群文件系统。

所以问题是,是否还有其他文件系统降低了应用程序的性能?

谢谢。

1 个答案:

答案 0 :(得分:1)

正如您所发现的那样,放置Symfony缓存并登录共享FS确实是一个坏主意。 本地FS是去那里的方式。虽然如果你去多服务器配置,一些建议:

  • 确保会话存储在其他位置,memcached或Redis是IMO的最佳选择。文件会话是PHP的瓶颈
  • 最糟糕的情况,如果您必须坚持使用文件会话,请使您的服务器保持IP平衡(nginx中的“会话粘性”)。否则用户将被断开连接。
  • 从日志文件移动到集中式记录器,理想情况是通过UDP(非阻塞)
  • Symfony缓存的某些部分可以移出FS,以获得更好的性能:Doctrine可以使用不同类型的缓存(再次使用memcache,APCu ......),Symfony基本的反向代理可以被Varnish取代。

我没有看到更多要说的内容,还有更多要问的内容?