求救:mina 开发客户端发送数据慢

大辉郎 发布于 2011/09/16 18:56
阅读 2K+
收藏 1

有一个项目要做文件传输,客户端发给转发服务器,由转发服务器转发给文件服务器,把三个程序部署在一台机器上测试,速度正常能达到3~4M/s,但是把服务器和客户端分开部署到两台或者三台机器上数据就传的很慢,一开始以为是转发服务器的性能问题,后来,改成直接发送到文件服务器,不经过转发服务器,部署到两台机器上同样速度很慢,但是从服务器发送数据到客户端(下载)的速度几乎没变,从客户端发送到服务器(上传)速度就变得很慢,请问有没有人碰到类似的问题,求救啊,被这个问题折磨了好久了。。崩溃边缘啊。。。

(PS:客户端和服务器都是采用mina框架开发的,文件传输的命令控制用一个控制端口监听连接,数据传输用一个数据端口监听连接,类似ftp的21 和 20 端口)

加载中
0
闫锋
闫锋

这个问题怀疑跟网络有关系,与Mina没啥关系。你可以做一个简单的测试:

【Server A】部署【客户端】,【Server B】部署【服务端】,测试一下上传和下载的性能

按你所描述的,这时候应该是上传慢,下载快。然后调换一下部署方式,再试试看

【Server A】部署【服务端】,【Server B】部署【客户端】,测试一下上传和下载的性能

按我猜测的,这时候应该是上传快,下载慢。如果我猜对了,那么估计你的网络有问题。

大辉郎
谢谢您的回答和帮助,我把服务器换到其他机器上有的就没问题,我不太明白,到底是mina的问题还是网络的问题,因为都在同一个局域网里,所以不太可能是局域网的问题才对啊?
0
闫锋
闫锋

引用来自“闫锋”的答案

这个问题怀疑跟网络有关系,与Mina没啥关系。你可以做一个简单的测试:

【Server A】部署【客户端】,【Server B】部署【服务端】,测试一下上传和下载的性能

按你所描述的,这时候应该是上传慢,下载快。然后调换一下部署方式,再试试看

【Server A】部署【服务端】,【Server B】部署【客户端】,测试一下上传和下载的性能

按我猜测的,这时候应该是上传快,下载慢。如果我猜对了,那么估计你的网络有问题。

如果你换了一个服务器就没问题,那显然不是你程序的问题了,一定是网络层面的问题

1、有可能交换机机的端口有问题

2、服务器的网卡有可能有问题

3、服务器的网络流量有可能太大

4、服务器与交换机之间的网线有可能问题

这些问题都会导致你的程序出现性能上的问题,建议你先找网管来看看网络的流量以及线路的利用率

然后再看看服务器上网络的丢包率和错包率

0
浪客Dandy
浪客Dandy

你如果怀疑是网络问题 可以把两台机器直连 然后多测试几次试试看

Mina也分同步和异步,而且NIO本来就是很复杂的东西 出什么问题都有可能

0
jingshishengxu
jingshishengxu
mina 用的NIO,本来就不适合大文件传输,大文件还是用BIO的好
0
浪客Dandy
浪客Dandy
其实并不是NIO不适合做大文件传输。大家都认为NIO效率高,但是问题是NIO太复杂,你的代码未必能利用到非阻塞带来的好处。我前段时间用Netty实现了HTTP Server,专门用于流媒体视频文件传输。后来发现实现完整的Http 1.1远比我想的复杂,Netty的作者跟我说不要这么做,去找中间件。我就换成用Apache HTTP Core。我专门测试了我的代码,Netty 阻塞/非阻塞 模式, Apache HTTP Core 以及 Sun Http Server的效率基本上是一致的。
0
大辉郎

引用来自“闫锋”的答案

引用来自“闫锋”的答案

这个问题怀疑跟网络有关系,与Mina没啥关系。你可以做一个简单的测试:

【Server A】部署【客户端】,【Server B】部署【服务端】,测试一下上传和下载的性能

按你所描述的,这时候应该是上传慢,下载快。然后调换一下部署方式,再试试看

【Server A】部署【服务端】,【Server B】部署【客户端】,测试一下上传和下载的性能

按我猜测的,这时候应该是上传快,下载慢。如果我猜对了,那么估计你的网络有问题。

如果你换了一个服务器就没问题,那显然不是你程序的问题了,一定是网络层面的问题

1、有可能交换机机的端口有问题

2、服务器的网卡有可能有问题

3、服务器的网络流量有可能太大

4、服务器与交换机之间的网线有可能问题

这些问题都会导致你的程序出现性能上的问题,建议你先找网管来看看网络的流量以及线路的利用率

然后再看看服务器上网络的丢包率和错包率

再次感谢您的帮助,我后来做了测试:1.用两台配置一样的机器,并且都是Ubantu linux的系统,有一台当服务器可以,一台不行 2.用两台配置相当的windows 7当服务器,都不行,只有下载的速度正常 3.还有另外一台配置较高的windows系统的电脑可以,另外两台XP系统的机器也没问题 4.windows 7和xp我调换客户端和服务器,效果还是一样,上传速度很慢,下载速度很快......    我在想,难道mina跟硬件设备相关或者跟操作系统相关? 如果是局域网络或者电脑的原因,不应该出现3和4的情况才对啊
0
大辉郎

引用来自“浪客Dandy”的答案

你如果怀疑是网络问题 可以把两台机器直连 然后多测试几次试试看

Mina也分同步和异步,而且NIO本来就是很复杂的东西 出什么问题都有可能

恩,我在同一台机器上可以传输,如果是做服务器有问题的机器上测试,就算在同一台机器上也会出现只能下载,上传速度很慢的问题,不知道为什么
返回顶部
顶部