有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

限制java进程的网络带宽

有没有一种有效的方法来限制某个java进程的带宽

我熟悉像trickle这样的解决方案,可以在运行时限制某个进程的带宽

sudo trickle -s -d 1024 /path/to/app.sh

但是,在处理java进程时,它更具挑战性,因为应用程序会启动一个JVM或在某些情况下启动一个JVM的包装器服务,这意味着像“trickle”这样的解决方案将无法工作

我可以尝试(使用trickle)限制整个java过程(通过使用/usr/bin/javas.link包装/弄乱)。 有人知道限制java进程带宽的更好的解决方案吗

谢谢


共 (2) 个答案

  1. # 1 楼答案

    这个问题并不十分清楚。 你能控制Java代码吗?否则,你是系统管理员吗

    如果您使用的是Java代码,则可以使用套接字范例,然后使用以下方法限制每个套接字连接:设置性能引用(int-connectionTime、int-latency、int-bandwidth)。 在另一种情况下,带宽限制能力取决于操作系统和Java应用程序的执行方式

  2. # 2 楼答案

    不幸的是,我不认为涓流可以做到这一点。 我也有类似的问题,我通过限制特定端口的带宽来解决。例如,您的应用程序打开端口34567进行通信,然后您可以应用防火墙设置并将其关闭

    在mac电脑上,我使用的是“ipfw”,例如:

    sudo ipfw pipe 1 config bw 5KByte/s
    sudo ipfw add 2 pipe 1 src-port 6666
    

    在linux上,我使用“tc”,示例和;资料来源:http://www.cyberciti.biz/faq/linux-traffic-shaping-using-tc-to-control-http-traffic/

    作为最终的解决方案,您可以创建bash脚本来监视进程,选择需要的进程,并对其进行端口限制