我使用的服务器具有以下硬件:
Cpu: AMD Ryzen 9 5950X 16核
Ram: 128 ECC DDR4 ECC
NVMe可持续发展HD
在那里,我已经安装了Ubuntu18.04LTS的最新内核。没有面板,只需为我的php应用程序提供以下服务:
Nginx 1.19.10
Php7.4-fpm
Elasticsearch 7.11.2
RabbitMQ broker
Varnish 6.4.0
Redis cache
Percona mysql 8.0.22-13我将不再详细介绍如何为这些服务共享服务器资源。我要说的是,所有与RAM分离的工作都需要有以下优先考虑:
Mysql
PHP FPM
NGINX
Varnish
Elasticsearch
and some little amount I need for Rabbit and Redis在对此服务器进行进一步监视大约2个月后,使用相同的流量(没有显著变化),看来我的php应用程序在重新启动服务器大约1小时后运行得更平稳和更快,而服务器在没有重新启动的情况下运行了一个星期。
在运行了大约4-5天的服务器之后,在128 in的htop中,RAM将上升到40-45GB。从这一点开始,就再也不会有更多了。我从未见过超过45的填充率。此外,CPU永远不会超过4.00负载。
在最高统帅部我通常有:
Tasks: 595 total, 1 running, 429 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.1 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 13196481+total, 44963736 free, 27595196 used, 59405888 buff/cache
KiB Swap: 71303160 total, 71303160 free, 0 used. 10288868+avail Mem在vmstat 10 4中,我现在有:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 44972896 6995364 52411440 0 0 9 37 12 12 2 0 98 0 0
1 0 0 44972676 6995400 52411536 0 0 0 296 1667 2226 3 1 96 0 0
1 0 0 44970704 6995400 52411544 0 0 0 558 1186 1610 2 0 98 0 0
1 0 0 44965440 6995400 52411540 0 0 0 52 986 1555 0 0 100 0 0在免费的-m里
total used free shared buff/cache available
Mem: 128871 26809 44046 262 58015 100615
Swap: 69631 0 69631正如我所看到的,大多数RAM都是用于缓存的,这是我为mysql、php和nginx设置的。掉期几乎不用了。在山顶,我只看到顶部约3.00米.我在那里见过高达6.00米的山峰。
问题是,为什么这个服务器不是在缓存中表现得更好,而是相反呢?当RAM未被填充时,它的工作速度似乎更快了。
有什么需要进一步调查的东西吗?
提前谢谢你!
发布于 2021-05-06 07:22:26
依赖“手动”测试应该是第一步,但容易出错。现在,您必须深入挖掘,并使用适当的工具进行一些调查,以获得综合基准数据。
根据我的经验,我建议:
这将为您提供足够的数据,以分析和显示更多的细节,以帮助您。使用当前的设置,在进行了大量的基准测试之后,您应该观察到较慢的响应。
查看解释它们的清漆统计数据、mysql慢速日志、清漆日志(工人、队列、等待工作人员等)、Elasticsearch的Xms和Xmx设置,检查兔子计数器(队列)等等。这应该会告诉你更多关于根本问题的信息。
在应用程序中实现APM之前,最后的方法是检查上面提到的所有已使用服务的所有指标。在我看来,实施APM是不可避免的。
https://serverfault.com/questions/1062689
复制相似问题