R
rebek
Unregistered / Unconfirmed
GUEST, unregistred user!
程序设计:
采用多线程的tcp协议做文件传输。
server: 启动1监听线程监听某端口,收到连接请求后为此连接创建新的线程发送数据给客户端,测试程序中线程未做任何处理,一次发送1-8k数据,测试程序中线程会不停的给客户端发送速度,而客户端也会不停的收数据并直接丢弃
client:测试程序中客户端收到数据后立刻丢弃,并取新的数据。
目前状况:
100M局域网。
server端的总传输最大能力为6M byte/s左右。
如只有一个client client1连接上,此连接的传输速度为6M byte/s左右。
在新连接上一个client client2,这时client1和client2基本平分6M byte/s的速度。
client1 和clinet2分别为3M byte/s。
再有新的连接上来,都是平分server的总速度。
server的总的传输速度固定在6M byte/s,连接多的时候略有下降。
而此时cpu使用率为40%多。内存使用也不高。
疑问描述:
个人理解,在cpu和内存富余的情况下 对于单个连接应该都能达到极限速度,随着
连接到server的客户端越多,server的总发送速度应该是变大。
测试程序中发送。接收线程都未做任何处理,瓶颈不在互斥量,和硬盘读取速度上。
各位高手有无做过类似应用。一些ftp server的总发送速度,是怎么达到一个比较高
的水平。
盼解答
采用多线程的tcp协议做文件传输。
server: 启动1监听线程监听某端口,收到连接请求后为此连接创建新的线程发送数据给客户端,测试程序中线程未做任何处理,一次发送1-8k数据,测试程序中线程会不停的给客户端发送速度,而客户端也会不停的收数据并直接丢弃
client:测试程序中客户端收到数据后立刻丢弃,并取新的数据。
目前状况:
100M局域网。
server端的总传输最大能力为6M byte/s左右。
如只有一个client client1连接上,此连接的传输速度为6M byte/s左右。
在新连接上一个client client2,这时client1和client2基本平分6M byte/s的速度。
client1 和clinet2分别为3M byte/s。
再有新的连接上来,都是平分server的总速度。
server的总的传输速度固定在6M byte/s,连接多的时候略有下降。
而此时cpu使用率为40%多。内存使用也不高。
疑问描述:
个人理解,在cpu和内存富余的情况下 对于单个连接应该都能达到极限速度,随着
连接到server的客户端越多,server的总发送速度应该是变大。
测试程序中发送。接收线程都未做任何处理,瓶颈不在互斥量,和硬盘读取速度上。
各位高手有无做过类似应用。一些ftp server的总发送速度,是怎么达到一个比较高
的水平。
盼解答