gpt4 book ai didi

api - Tomcat API : how to improve performance when client are closing connection after each request?

转载 作者:行者123 更新时间:2023-12-03 17:10:33 27 4
gpt4 key购买 nike

我有一个简单的 Tomcat API,我的目标是管理更多的请求/秒。
我的问题如下:
场景 1:当客户端使用一些持久连接时,我设法使用 API 的单个实例达到大约 20000 请求/秒。服务器已加载,服务器的 CPU 几乎用尽。
场景二:客户端每次请求后关闭连接时,API只管理600个请求/秒,根本不使用服务器资源。所以我想无论是全局连接数还是服务器每秒能够管理的连接数都存在瓶颈。
我想知道的是,在场景 2 期间,我是否可以更改配置(在 tomcat 或服务器上)以提高性能。
如果没有,哪种资源是有限的?我可以通过部署多个 1 CPU 服务器来解决这个问题吗?
我目前所期待的:

  • Tomcat config 中的线程数和连接数:
    我已经将论文数量从默认调整为 200 个线程和 2000 个连接,在场景 2 中我没有看到任何影响。
  • Ulimit 设置为无限制
  • JVM 配置如下: JAVA_OPTS: -Xmx8g
  • 最佳答案

    如果您提供有关部署的更多信息会更好,但通常有一些工作可以帮助您获得更好的性能。
    首先,您应该衡量每个请求的成本并尽可能对其进行优化。例如,如果您的 API 对每个请求,在本地数据库上执行查询,并且此查询消耗大量 CPU 使用率,则您应该优化查询。通过这样做,您的服务器可以在其 CPU 变为 100% 之前承受更多请求。
    注意一些工具,如 JProbe可以帮助您优化 API。
    其次,在测试期间监控您的资源并找出其中哪一项被充分利用。您应该检查 网络连接 , 磁盘 , 内存 CPU 在测试期间加载并识别资源的弱点。跟踪线程块和死锁,因为它们对性能很重要。
    您可以根据这些信息扩展您的服务器资源,或者决定实现分布式架构或向您的解决方案添加负载平衡器或为您的项目添加缓存策略。
    在您的 Tomcat 配置中,有一些可以提高性能的设置,例如:
    配置连接器
    将 maxThreads 设置为足够高的值
    将 acceptCount 设置为足够高的值
    配置缓存
    将 cacheMaxSize 属性设置为适当的值。
    配置内容压缩
    打开内容压缩并使用 GZIP 压缩

    关于api - Tomcat API : how to improve performance when client are closing connection after each request?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63936077/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com