第一次服务器上限需要资源评估

2021/8/5 23:09:44

本文主要是介绍第一次服务器上限需要资源评估,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本是小辣鸡。以前也只是写业务代码,全靠领导给机会让我自己负责一个服务器的编写,部署,上线需要的资源评估。记录第一次做上线资源评估的过程。

项目背景是,搭在云服务商上的集群,集群管理是kubernetes。首次内测目标5000个用户。

主要如下

1.服务器需要多少内存
2.服务器需要多少cpu
3.了解购买的云服务参数
4.修改kubernetes部署文件

首先需要做压测,我写的服务器是用golang写的用于聊天服务器,所以在世界聊天的时候,压力就会非常大。压力也是要测试这里,看看需要消耗多少性能。

服务器需要多少内存

我使用了golang的profile进行分析,登录了5000玩家后,在profile中,查看到内存情况总共消耗171000000字节左右。计算出一个玩家大约使用32KB的内存。服务器本身启动不占多少内存,最后评估需要256m的内存。

服务器需要多少cpu

在压测的时候,已经看了cpu的profile,看上去一切正常。剩下就是发消息。我启动服务器的机器是16核,2.2GHz的服务器。在每秒200人同时发消息到世界频道,5000人接收的情况下。使用top命令查看最高的时候,跑了586%的cpu,按6个计算,就是6*2200mhz = 13200mhz。也就是说在最极端的情况下,全部人都不玩游戏,只在大厅聊天,每秒200个人发,按照计算最多需要13200mhz的cpu。

了解购买的云服务参数

集群中总共有8台机器,每台8G内存,4个cpu,每个cpu是3.4Ghz约等于3400mhz,4个cpu大约13600mhz。

修改kubernetes部署文件

因为要充分利用机器性能,所以不能够只部署一个pod,我的服务器之部署一个pod的话,会直接压干一台云服务器的cpu,导致这台云服务器只剩下400mhz的cpu,可能无法起别的pod,上面的内存也将被浪费掉。所以必须起多个pod。最终决定用以下配置,每个pod请求1000M内存,1整个核心的cpu,最大只给2000M内存和两个核心的cpu。

requests:
    memory: 1000Mi
    cpu: 1000m
limits:
    memory: 2000Mi
    cpu: 2000m

这样,一台云机器最少还有6G内存,和3个cpu可以分配给别的pod,不会造成资源浪费。另外,等到真正上线的时候,如果人太多了,资源不够用也是不怕的。kubernetes还有自动扩容。



这篇关于第一次服务器上限需要资源评估的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程