2

我想知道在绑定服务器的 IP 和端口后是否分叉了一个进程。分叉是否能够接受连接。如果我有 10 个分叉都在尝试接受,那么扩展它是否有可能超过 1 个可以接受相同的连接,或者是否有一些锁定?

前几天想用php写一个http服务器。因此它一次可以处理多个连接。接受连接的主进程读取数据并通过 unix 套接字将其传递给线程。到目前为止,在我的笔记本电脑上,我可以在一个给出当前日期和时间的小页面上每秒获得 1000 个连接。瓶颈之一是主流程。最初我很想获得连接的文件描述符并将它们传递给套接字并让它们读取数据然后处理它。

4

1 回答 1

1

是的,分叉的孩子将能够在同一个(继承的)监听套接字上接受新的连接。

假设您socket_accept()在所有子进程中使用阻塞,即使它增加到 100 个进程,您也不应该遇到任何性能问题;操作系统将唤醒一个子进程来处理连接。

应该提到的是,使用ab或类似的负载生成器工具对其进行基准测试是一种很好的做法。

于 2013-03-29T10:23:21.173 回答