手工填写的操作码缓对于整个应用程序使用apc_compile_file,然后开关于新的释放
-
26-09-2019 - |
题
任何人都不会有一个很大的系统,或任何想法,这样做如标题所说的吗?
我想到开关生产版的网络应用程序--PHP编写和通过阿帕奇--从释放1234释放1235,但在此之前发生的,所有文件已在操作码的高速缓冲存储器(APC)。然后换、删除旧的高速缓存项文件释放1234.
尽我所能想到有三个简单的方法的原子方式交换从一个版本。
- 有一个象征性的链接,例如/生活,这是总的文件的根源,但是改变从一个版本。
同样,有一个 目录 /生活,始终是该文件的根源,但使用
mv活oldversion&&mv newversion生活
切换到新的版本。
- 编辑apache configuration改变该文件根newversion,然后重新启动apache.
我认为这是最好不要做3,但我不认为无论如何预编译所有php文件,并使用1或2个以交换释放。
因此有人可以要么让我相信它的好依靠在备选案文3,或者告诉我如何工作有1或2个,或透露的一些其他选择,我不在想什么?
解决方案
为什么你要这么做?
当我切换到一个新的版本,我只是阻止我的Apache,替换PHP服务器上的文件通过的结帐离我的风险,并重新启动Apache.它主要不到30秒拉这一关,它甚至可编写脚本.所有被执行的,当时几乎没有或没有的用户。在这之后,操作码缓空和将填补本身尽快有人使用的文件。
也许一些将不会有最佳表现但这不应该那么糟糕。在我的生产系统没有一个没有注意到这短暂的性能下降。并且有一些非常沉重的负载系统的其中之一。
你甚至可以将简单的"升级...很快回来"屏幕上你的服务器更换的文件,以避免任何令人不安的错误消息给你的用户。
其他提示
然后换、删除旧的 高速缓存项文件释放 1234.
你只可以清楚整个缓或根本没有。这不是一个选择性的进程。这可以改变你的方法的问题。如果预编译是最重要的你可能会被迫以降低服务期间的切换。
不隶属于 StackOverflow