Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 笔记本电脑和服务器的性能差异,如何解决?_Php_Performance_Symfony_Twig_Solid State Drive - Fatal编程技术网

Php 笔记本电脑和服务器的性能差异,如何解决?

Php 笔记本电脑和服务器的性能差异,如何解决?,php,performance,symfony,twig,solid-state-drive,Php,Performance,Symfony,Twig,Solid State Drive,我已经用symfony3.1和php7构建了一个web应用程序。在我自己的电脑上运行良好,但在网络服务器上运行非常慢。现在我想知道为什么。不仅要让web应用运行得更快,还要对软件本身有更多的了解 我自己的电脑有一个英特尔i7处理器和8GB内存,运行在Ubuntu 16.10上。该服务器有两个内核,4 GB RAM,运行在CentOS 6上 笔记本电脑与服务器的比较 我的笔记本电脑 web服务器: 它们在硬件和软件方面都不同,所以我不希望它们完全相同,但我不明白它们之间为什么会有巨大的差异:S

我已经用symfony3.1和php7构建了一个web应用程序。在我自己的电脑上运行良好,但在网络服务器上运行非常慢。现在我想知道为什么。不仅要让web应用运行得更快,还要对软件本身有更多的了解

我自己的电脑有一个英特尔i7处理器和8GB内存,运行在Ubuntu 16.10上。该服务器有两个内核,4 GB RAM,运行在CentOS 6上

笔记本电脑与服务器的比较 我的笔记本电脑

web服务器:

它们在硬件和软件方面都不同,所以我不希望它们完全相同,但我不明白它们之间为什么会有巨大的差异:Symfony初始化速度快13倍,细枝模板的渲染速度快25倍

我使用Symfony profiler和Blackfire.io来找出我的应用程序速度慢的原因,但这只能解释应用程序本身的性能。由于我的计算机上的页面速度快得多,我必须找出为什么我的web服务器上的应用程序速度较慢

眼压? 我发现了如何使用
fio
测试磁盘性能。我发现我的电脑性能比服务器高20倍(19.9K/6718 vs 1056/375 iops)。似乎眼压是瓶颈

下一步是什么? 一个解决方案非常简单:获得一个iops性能更好的服务器


但是,我如何找到改进我的应用程序的方法呢?或者我的网络服务器的设置?我已经安装了Opcache,据我所知(使用),它工作正常。

1-检查Opcache是否已激活且配置良好。将
opcache.max\u accelerated\u files
的值增加到最大值,因为Symfony会加载成吨的文件

2-为自动加载进程生成更丰富的类映射,运行以下命令:
composer dump autoload--optimize

3-在服务器上安装SSD磁盘。您不需要很多空间,128gb对于Symfony来说已经足够了,如果您需要很多额外空间,请使用普通磁盘作为您的资产

4-使用诸如Redis或Memcache之类的RAM缓存。例如,在我安装Redis并在
config.yml
文件中正确配置Doctrine之后,我在Windows上的加载时间减少了200%

orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    auto_mapping: true
    metadata_cache_driver:
        type: service
        id: doctrine.cache
    query_cache_driver:
        type: service
        id: doctrine.cache
    result_cache_driver:
        type: service
        id: doctrine.cache
和服务文件:

  doctrine.cache:
    class: Doctrine\Common\Cache\PredisCache
    arguments: [ "@redis" ]

如果什么都不起作用,请另找一台服务器:)

您尝试过http缓存组件吗?检查php OpCache是否已在两种平台上安装并处于活动状态。@MathieuDormeval是的,但这将如何提高iops性能?在这种情况下,我想说“伟大的缓存就像伟大的性爱。它隐藏了所有真正的问题。”。你在渲染什么?@MathieuDormeval mopaboostrappundle中的一个小树枝模板。谢谢!1.Opcache已激活且工作正常。2.已经做了。3.服务器的SSD很小,但提供商表示,他们的新设置具有更快的存储速度。将尝试移动到较新的VPS。4.我会试试的!