我有一个用 laravel 和 mysql 制作的网页,它对数据库有足够的访问权限,我想知道如何衡量我的页面可以容纳多少同时进行查询的用户。
我在数字海洋中有一个基本服务器,具有以下特点:
512MB (1 CPU) 20GB (SSD 磁盘) 1000GB (传输)
它有许多不同的服务器,最高的一个具有以下特点:
224GB (1 CPU) 500GB (SSD 磁盘) 10TB (传输)
确实有很大的不同,但除此之外,我不知道何时使用一个以及何时扩展到另一个,这将是垂直缩放。同时也不知道什么时候横向扩展,也就是做系统的副本,或者有一个只做数据库的服务器。
我真的很想知道这些问题,在以后遇到问题之前,即使用户很少。
如果我错了,请纠正我,当用户从您的系统请求页面时,会打开与数据库的连接,进行任何必需的查询,显示页面并关闭连接。此操作需要 2 秒。用户可能正在阅读您的页面,例如 10 分钟。
如果您的数据库接受 3 个同时连接,您可以每 2 秒提供 3 个连接或每分钟提供 90 个连接。
但即使有 90 个用户同时阅读您的页面,他们也不是同时连接,因为相关页面已经在客户端中。
如果同时有 5 个客户端到达请求页面,并且您的数据库服务器同时接受 3 个连接,则其中两个客户端将等待 2 秒才能看到您的页面。如果您将 MySQL 限制增加到 5,那么您可以每分钟提供 150 个页面。
显然,您允许的开放连接越多,您的系统消耗的资源就越多。
解决方案是对PHP 生成的数据库查询和页面使用缓冲区、缓存。这个缓存,假设它将响应时间减少到 1/2 秒。
现在我们去你的http服务器。如果您的服务器同时接受 50 个客户端,为 1/2 的缓存页面提供服务,那么它每秒可以同时提供 100 个页面。
但它是一样的,打开一个连接,提供页面并关闭......没有并发用户。
回复
Apache 有一个名为ab的程序,用于压力测试或基准测试。显示您的 Apache 服务器每秒可以服务的请求
http
数,_虽然我认为它适用于任何服务器,因为它在.它是这样使用的:
这样,您可以在 20 个线程中生成 100 个请求,以检查并发性。在这个genbeta:dev页面上,您可以看到一个示例。