我设置了一个虚拟机,但性能很差。它是 VirtualBox 控制的 Vagrant。我试图理解为什么此虚拟机需要 5 秒到 30 秒才能加载 WordPress 网站上的简单页面。
我已经安装了比托普当我刷新页面时,在虚拟机上查看统计数据。
VM 规格
- 处理器:4
- 基本内存:8192MB
- 操作系统:20.04.2
首要问题:调试时我应该查看eth0
或, 吗? 我在两个界面上都看到了活动,并且正在努力弄清楚什么来自什么以及在这种情况下什么是有趣的。eth1
更多细节
每当我重新加载页面时,我假设请求的传输方式如下:
刷新页面时
(Macbook) (VM)
My browser -->-- Eth1 -->-- Eth0 -->-- Nginx -->-- PHP-stuff -->-- DB-calls --
˅
˅
Reload done --<-- Eth1 --<-- Eth0 --<-- Nginx --<-- PHP-stuff ----------------˅
是对的吗? ...如果是这样,那么我想我必须寻找该链条的薄弱部分。
如果我查看网络接口,刷新页面后,我希望看到漫长的等待在哪里。但我不知道我应该看哪个界面:
Eth1 活动时
Eth0 活动时
我可以通过在我的虚拟机上运行以下命令来查看何时发生情况:tcpdump -i any port not 22
通过 SSH 隧道。
此设置在 Digital Ocean 的临时服务器和生产服务器上运行,响应速度非常快(> 5 秒)。
这让我很恼火,这个设置的在线版本比我的本地版本更快!
解决方案尝试
加载
eth0
我尝试寻找另一个网络监控工具,以便更容易同时查看两者eth1
。我发现的最好的一个是加载。但并没有给我带来任何新的感悟。但由于单位在Bit/s
、kBit/s
和之间移动MBit/s
,因此不可能“一目了然”地获得良好的快速概览。
以下是随机时间点的情况:
尝试一下共享文件夹
我读了很多关于共享文件夹如何给这些虚拟机带来相当大的负担的文章。我nfsd
在我的主机上尝试过 NFS(和)。但根据 TCPdump,看起来它并不是 Nginx 服务器响应缓慢的罪魁祸首。