前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1核2G服务器如何做到最高效使用?-系统开发

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

原创
作者头像
jerryteng
发布2022-09-23 16:41:20
2.3K0
发布2022-09-23 16:41:20
举报
文章被收录于专栏:jerryteng的专栏jerryteng的专栏

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档