Php 使用Chrome Headless时如何减少CPU使用
我已经用安装了centos服务器的Laravel构建了一个API 在API中,有一个进程使用类似这样的无头chrome来获取HTML源代码Php 使用Chrome Headless时如何减少CPU使用,php,laravel,nginx,headless-browser,Php,Laravel,Nginx,Headless Browser,我已经用安装了centos服务器的Laravel构建了一个API 在API中,有一个进程使用类似这样的无头chrome来获取HTML源代码 [MyController.php] $url = $request['url']; $browser = $browserFactory->createBrowser( [ 'headless' => true, 'noSandbox' => true, ] ); try{ $t
[MyController.php]
$url = $request['url'];
$browser = $browserFactory->createBrowser(
[
'headless' => true,
'noSandbox' => true,
]
);
try{
$this->page = $browser->createPage();
$this->page->navigate($url)->waitForNavigation(Page::LOAD, 60);
$response = $this->page->evaluate('document.documentElement.outerHTML')->getReturnValue();
$resolvedURL = $this->page->getCurrentUrl();
// too long to load
} catch (OperationTimedOut $e) {
$response = null;
$resolvedURL = null;
// An other page was loaded
} catch (NavigationExpired $e) {
$response = null;
$resolvedURL = null;
} finally {
$browser->close();
}
// analyze retrived html code
.
.
.
现在,由于CPU使用率高,我的服务器出现了高负载平均问题,我试图找出原因
我对这个API有很多HTTP请求,很明显,您可以在屏幕截图上看到许多PHP fpm进程正在运行
我想降低服务器上的平均负载,而不调节PHP fpm max子级的数量,但我并不擅长服务器管理
要降低CPU使用率,我能做什么?我已经尽力优化了我的PHP代码
比如,是否可以在所有PHP fpm进程中共享一个Chrome进程,这样我就不必为每个HTTP请求创建一个Chrome进程