我正在对laravel堆栈应用程序进行docker化。
我有一个名为app
的服务,该服务正在运行php-fpm
,并且其中包含laravel源代码。
我想复制此服务,以便可以从高可用性和零停机功能中受益。
我不知道如何处理OPcache:
app
容器中运行opache优化吗?如果这样,这种方法会保留大量服务器的内存app
服务的任务(容器)之间共享opcache?答案 0 :(得分:1)
无论何时编译脚本,该过程都会检查PHP OPcode 缓存并在共享内存中找到已经编译的代码。如果 找不到代码,自动启动编译并保存 到内存之后生成输出。
现在我们可以根据上述Opcache流程讨论您的问题
我应该在每个应用程序容器中运行opcache优化吗?如果是这样 这种方法可保留大量服务器内存
是的,您应该在每个容器中运行OpCache,因为每个容器都在其自己的空间上运行,第二件事将节省大量的容器内存,否则,如果没有OpCache,您的容器将在繁重的负载下无法响应。
Both tests reported about 50% decrease in response time after installing OpCache.
opcache-configuration-to-avoid-caching-suprises
是否有任何方法可以在应用程序的任务(容器)之间共享opcache 服务在同一台docker机器上?
首先,一个容器没有高特权就无法访问另一个容器的内存,并且这需要额外的配置;第二件事应该避免这样做,容器被设计为独立运行,并且每个容器管理一个进程(规则的拇指)。
假设这是可能的,这种方法是否可以纠正这种情况? 问题还是被视为反模式?
不,在Docker容器中不建议使用,应将容器解耦。
通常,解耦架构是用于复杂工作的框架 允许组件完全自治且不了解 彼此。有时据说云计算已脱钩 架构,因为云提供商管理物理 基础架构,而不是托管在其上的应用程序或数据。