我有两个 EC2 实例。一个具有 1GB RAM 和 1vCPU,另一个具有 32GB RAM 和 12vCPU。
我正在 cron job 上运行一个脚本,但两者的性能仍然相同。
我尝试在 php.in 中更改 max_memory、max_connection,并且我使用的是 PHP 8,但仍然没有成功。
在 32GB 的服务器上,我尝试多次并行运行我的脚本,但似乎没有任何效果。
如何才能让我的 PHP 充分利用 RAM 并运行得更快?
答案1
由于我们不知道您的程序做什么,因此无法判断添加资源是否会提高其性能。
无论你做什么,都要小心过早优化。在运行期间对资源使用情况进行采样(例如使用 vmstat)将得出您的程序是否资源匮乏的结论。建立基线,添加资源并验证您的程序是否确实从添加资源中受益。
如果没有瓶颈,添加资源不会让您的程序运行得更快。在较新的 CPU 型号上运行它可能会加快一点速度。
正如您所说,您的程序是由 cron 调用的,我假设您正在运行独立软件(可能偶尔会调用 Web 应用程序)。因此,您的代码必须准备好利用更多 CPU 核心,使用某种并行操作范例,如线程、分叉等。
如果我们只谈论 Web 应用程序,并且您的 cron 作业是美化的 wget 调用,请检查您是否正在使用 php-fpm 和 PHP opcache 模块。