上一次说了采用 1核2G服务器 来支撑一个cms系统。
在开发系统的时候我们初步选型了 go 语音,采用 gofiber框架。
Fiber 是一个受到 Express 启发的 Web 框架,基于使用 Go 语言编写的最快的 HTTP 引擎 Fasthttp 构建。旨在通过零内存分配和高性能服务,使快速开发更加简便。
系统很快就可以搭建完成,并且也高效的运行起来。
先开发一个cms系统,简单的首页、列表页、文章页面很快就可以开发出来。
这些在数据量都不大的情况下是没有问题的,可是在数据量比较大的时候,你写出的代码可能就会消耗比较高的资源。在运行的过程中,我们可以很方便的通过 腾讯云小程序对我们的机器进行监控。
经过一段时间的运行,由于数据量比较大,我们的服务器有点撑不住了,到底是什么原因造成的呢?
如果是采用其他编程语言可能不太好发现问题,可是我们采用go语言,并且采用 fibber 框架,可以很方便的查看原因。
首先 采用 fibber的 moniter插件
https://github.com/gofiber/fiber/tree/master/middleware/monitor
可以很方便的查看当前服务资源利用情况,我的2G内存,才占用了 不到600M,不得不说,fibber在内存占用方面还真是做的不错。
现在的 响应时间 是 49ms,这个也是相应很快的。
案例分析:
1.CPU使用率飙升,占用100% 服务器load average 超高。
这个时候我们 启用了 fibber的 pprof middleware
https://github.com/gofiber/fiber/tree/master/middleware/pprof
编译重启之后,继续运行,当监控到CPU 100%的时候,去拉取一下profile数据
go tool pprof -http=:8000 https://127.0.0.1:3000/debug/pprof/profile?debug=1
之后访问 127.0.0.1:8000端口,就可以分析了
可以很轻松的分析出,是哪些服务占用的CPU资源比较多,再去对照代码,看看是不是写的有问题。
轻松解决各种性能问题。
而且可以查看各种图标:
还可以查看 火焰图:
这里我就不再 意义介绍 go的pprof的使用了。
解决了这些问题,服务器资源得到了有效的利用。
下次我们再说一下,如何解决 cms的一个难点,搜索问题。
脑叶公司EGO防具怎么排名?-脑叶公司EGO防具排名教程攻略
脑叶公司EGO防具怎么排名?-脑叶公司EGO防具排名教程攻略