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

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

项目背景是,搭在云服务商上的集群,集群管理是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还有自动扩容。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值