pro*_*nce 0 linux networking scala
我有一个使用Actors的并发Scala程序的工作原型.我现在正在尝试微调不同演员的数量等.
处理的一个阶段需要通过互联网获取新数据.当然,我无法真正做到加快这方面的速度.但是,我想如果我并行启动一堆请求,我可以减少总时间.因此,问题是:
=> Scala或Unix系统(例如max num sockets)上的并发网络是否有限制?如果是这样,我怎么能知道它是什么.
在Linux中,每个程序可以打开的打开文件描述符的数量是有限制的.这可以通过使用ulimit -n.有一个系统范围的限制/proc/sys/kernel/file-max.
另一个限制是Linux防火墙可以跟踪的连接数.如果您使用的是iptables连接跟踪防火墙,则此值为/proc/sys/net/netfilter/nf_conntrack_max.
另一个限制当然是TCP/IP本身.您只能与同一个远程主机和端口建立65534连接,因为每个连接都需要(localIP,localPort,remoteIP,remotePort)的唯一组合.
关于通过并发连接加快速度:它并不像使用更多连接那么容易.
这取决于瓶颈在哪里.如果您的本地连接被完全使用,添加更多连接只会减慢速度.如果要连接到同一个远程服务器并且其连接已完全使用,则更多只会减慢它的速度.
如果您没有充分使用本地连接并且连接到多个远程主机,那么您可以从中获益.
如果您查看Web浏览器,您将看到它们对同一远程服务器的连接数有限制.它们还限制了总共将建立多少连接.
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |