我的网站在 AWS EC2 上。
我用这个命令检查了 TTFB(到第一个字节的时间):
curl --output /dev/null --silent --write-out "time_namelookup=%{time_namelookup}\ntime_connect=%{time_connect}\ntime_appconnect=%{time_appconnect}\ntime_pretransfer=%{time_pretransfer}\ntime_redirect=%{time_redirect}\ntime_starttransfer=%{time_starttransfer}\ntime_total=%{time_total}\n" --url http://13.37.46.163/
这是我在计算机上运行命令时的结果:
time_connect=0,014614
time_appconnect=0,000000
time_pretransfer=0,014657
time_redirect=0,000000
time_starttransfer=0,119092
time_total=0,134436
这是我在网络服务器本身上运行命令时的结果:
time_namelookup=0.000058
time_connect=0.001296
time_appconnect=0.000000
time_pretransfer=0.001336
time_redirect=0.000000
time_starttransfer=0.084576
time_total=0.085031
我注意到在这两种情况下,最长的时间都是 time_starttransfer。我怎样才能减少这个时间?
什么是 time_starttransfer?
从开始到第一个字节即将被传输所用的时间(以秒为单位)。这包括 time_pretransfer 以及服务器计算结果所需的时间。
我的网站配置
我的网站链接是:http: //13.37.46.163/
这是一个使用EC2 + ServerPilot + PHP7运行的 Grav CMS女巫
Amazon 系统映像 (AMI)
Ubuntu Server 20.04 LTS (HVM),EBS 通用 (SSD) 卷类型。64 位 (x86)
EC2 实例类型
t2.micro
网络服务器
Nginx
编程语言
PHP
反向代理
Nginx
缓存
我已经使用了已启用的Opcache,您可以在此处看到:http: //13.37.46.163/info.php#module_zend+opcache
关于CDN,我已经使用 Grav CDN 插件。( https://github.com/getgrav/grav-plugin-cdn )
我的网站日志(请求/分钟)
1 00:02
1 00:38
1 00:54
1 01:06
1 01:12
1 01:23
1 03:49
1 04:32
1 04:57
6 05:15
1 05:17
1 05:31
1 05:37
1 06:08
1 06:32
1 07:30
1 07:38
1 07:55
1 08:31
1 10:07
1 10:35
1 10:52
1 10:59
1 12:53
1 13:00
1 14:18
1 14:28
1 14:29
1 14:48
1 16:05
1 18:40
1 19:20
1 20:24
1 20:30
即,平均 1 个请求/分钟
进行的测试
- 尝试对 Php 不托管的静态文件运行 TTFB 测试
我对“main.js”文件进行了 TTFB 测试。
结果如下:
time_namelookup=0.000034
time_connect=0.002659
time_appconnect=0.000000
time_pretransfer=0.002702
time_redirect=0.000000
time_starttransfer=0.003983
time_total=0.004026
结果分析:
结果令人满意(time_starttransfer=0.003983)。但我认为这个结果是由于文件的重量与整个网站相比很轻。我们可以推断出问题在于 PHP 而不是 NGINX。
- 运行
top
和free
命令以检查正在运行的内容/正在使用的资源,我不需要什么?
这是top
命令的结果:
+-----------+--------------+-------------+-------------+------------------+---------+---------+---------+--------+
| %Cpu(s): | 4.0 us, | 0.3 sy, | 0.0 ni, | 95.7 id, | 0.0 wa, | 0.0 hi, | 0.0 si, | 0.0 st |
+-----------+--------------+-------------+-------------+------------------+---------+---------+---------+--------+
| MiB Mem : | 978.6 total, | 75.8 free, | 332.2 used, | 570.6 buff/cache | | | | |
+-----------+--------------+-------------+-------------+------------------+---------+---------+---------+--------+
| MiB Swap: | 512.0 total, | 427.2 free, | 84.8 used. | 461.7 avail Mem | | | | |
+-----------+--------------+-------------+-------------+------------------+---------+---------+---------+--------+
当我重新加载我的网站以检查 CPU 百分比时,我得到了结果。
这是free
命令的结果:
+-------+---------+--------+--------+--------+------------+-----------+
| | total | used | free | shared | buff/cache | available |
+-------+---------+--------+--------+--------+------------+-----------+
| Mem: | 1002052 | 334392 | 83368 | 16940 | 584292 | 478628 |
+-------+---------+--------+--------+--------+------------+-----------+
| Swap: | 524284 | 86784 | 437500 | | | |
+-------+---------+--------+--------+--------+------------+-----------+
结果分析:
我可能不应该使用t3.micro
-t2.micro
稍微快一点,稍微便宜一点。(?)