我的服务器上运行了一个守护进程的 ruby 脚本,如下所示:
@server = TCPServer.open(61101)
loop do
@thr = Thread.new(@server.accept) do |sock|
Thread.current[:myArrayOfHashes] = [] # hashes containing attributes of myObject
SystemTimer.timeout_after(5) do
Thread.current[:string] = sock.gets
sock.close
# parse the string and load the data into myArrayOfHashes
Myobject.transaction do # Update the myObjects Table
Thread.current[:myArrayOfHashes].each do |h|
Thread.current[:newMyObject] = Myobject.new
# load up the new object with data
Thread.current[:newMyObject].save
end
end
end
end
@thr.join
end
该服务器接收和管理我在 Mac OS 10.6 上运行的 rails 应用程序的数据。客户端在 15 日每 15 分钟调用一次服务器,而我目前只有 16 个左右的客户端在 15 日每 15 分钟调用一次,我想知道以下几点:
- 如果两个客户端几乎同时调用,一个客户端的连接尝试会失败吗?
- 我如何才能确定我的服务器可以同时容纳多少个客户端连接?
- 如何监控我的服务器使用了多少内存?
另外,是否有一篇文章您可以指点我,讨论实现这种服务器的最佳方式?我的意思是我可以让多个服务器实例监听同一个端口吗?那会有帮助吗?
我正在使用 Bluepill 来监控我的服务器守护进程。