1核2G服务器如何做到最高效使用?-系统开发

上一次说了采用 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的一个难点,搜索问题。

版权声明:
作者:jerryteng
链接:https://jkboy.com/archives/10873.html
来源:随风的博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
1核2G服务器如何做到最高效使用?-系统开发
Fiber 是一个受到 Express 启发的 Web 框架,基于使用 Go 语言编写的最快的 HTTP 引擎 Fasthttp 构建。旨在通过零内存分配和高性...
<<上一篇
下一篇>>