首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java/Scala资源消耗和负载

Java/Scala资源消耗和负载
EN

Stack Overflow用户
提问于 2011-12-04 19:18:21
回答 1查看 247关注 0票数 4

我正在用Scala开发一个web应用程序。这是一个简单的应用程序,它将从客户端(JSON或ProtoBufs)的端口上获取数据,并使用数据库服务器进行一些计算,然后使用JSON / Protobuf对象回复客户端。

这不是一个非常繁重的应用程序。最多1000行代码。它将为每个客户端请求创建一个线程。现在从收到请求到回复的时间在20 -40毫秒之间。

我需要一个建议,我应该使用哪种硬件/设置来为每秒的3000+请求提供服务。我需要采购硬件放在我的数据中心。

任何有大规模部署java应用经验的人,请给我建议。我应该使用一个带有2-4个Xeon 5500和32 GB RAM的大机器,还是使用多个较小的机器。

更新-我们没有太多的客户。3-4个。请求将来自他们中的3个。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-04 23:51:41

如果每个请求平均耗时30ms,那么单个内核每秒只能处理30个请求。假设你的应用是线性扩展的(这是你所期望的最好的情况),那么你至少需要100个内核才能达到3000请求/秒,这比2-4个Xeon还多。

最糟糕的是,如果你的应用依赖IO或DB (就像大多数有用的应用程序一样),你会得到一个次线性缩放,而且你可能需要更多……

因此,首先要做的是分析和优化应用程序。以下是一些小贴士:

  • 创建线程是昂贵的,请尝试创建有限数量的线程并在请求中重用它们(例如,在java中请参见ExecutorService )。
  • 如果您的应用程序是IO密集型的,请尝试使用内存中的缓存并尝试非阻塞IO。
  • 如果您的应用程序依赖于数据库,请考虑缓存,并在可能的情况下尝试分布式解决方案。<代码>H29<代码>F210
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8374912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档