0

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

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

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

谢谢你。

4

1 回答 1

1

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

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

我看不出还有什么要说的,还有什么要问的?

于 2016-07-06T15:32:59.290 回答