gpt4 book ai didi

database - 高性能网络服务器设计

转载 作者:搜寻专家 更新时间:2023-10-30 20:41:29 24 4
gpt4 key购买 nike

先简单形式的问题:
为了向大量客户端提供大量静态内容,是让 http 服务器提供文件系统中的内容更好,其中每个主键都存储在一个文件(Inodes!)中,还是实现一个“真正的”数据库? “更好”是指性能、机器负载、内存使用等方面。

问题的更详细版本:
我们目前正在重新设计具有以下要求的数据库服务器:

  • SSL
  • 数以千计的客户 (1-30.000)
  • 客户端请求被序列化,一次一个,2 分钟内约 100 个条目
  • 客户端将在超时后断开连接
  • 一些客户端稍后会重新连接并执行更多(1-10)个请求
  • 数据库将包含 > 100.000 个主键
  • 数据库内容是静态的(或多或少)
  • 请求大小通常 < 80 字节
  • 响应大小通常 < 30 字节

虽然我们的协议(protocol)目前不是 http,但我考虑过使用 Apache 或其他 http 服务器并更改我们的协议(protocol)以适应 http。但是下一个问题是是否使用“真实”数据库(例如 couchdb),或者我们是否只使用文件系统作为数据库,因为 > 95% 的请求将请求静态内容。性能和扩展是这里的一个问题。如果例如1.000 个客户端将在 08:00 AM 准时开机,这 1.000 台机器可能会同时连接并每台执行 100 个请求。所有这些都在两分钟内完成,所有这些都带有建立 ssl 连接的开销。这可能会使任何服务器达到极限。

有什么提示吗?

最佳答案

  • 由于主键后面的数据很小(一些字节),文件系统将不是一个有效的解决方案,考虑使用一些缓存系统作为数据库的 Redis。
  • 作为网络服务器的 Nginx 似乎比 apache 更适合您的需求(小请求和很多人)
  • 如果您的所有数据(~100B * 100k ~ 10MB?)都能放入内存,并且没有大的计算,您应该不会遇到硬性能问题。

关于database - 高性能网络服务器设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17748162/

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