qnet Bandwidth Limits?

I’m implementing (I hope) a system that employs qnet and the resource
manager to provide shared pathnames over a small number of nodes (fewer than
9). I’ve written some test programs that install a pathname on
/net/master/dev/master_in and allow some “slaves” to send data to that
directory. I’m disappointed in the performance (i.e. MB/sec) that I’m
getting using this method. Even with just two computers on the network I
seem to be getting only about 300kb a second on 10BaseT. The computers are
a 200MHz pentium and a 66MHz 486. I can increase the speed of the machines,
but unfortunately moving to 100BaseT is not an option since one of my system
does not have a 100BaseT card available.

I’ve dug around and can’t come up with any theoretical numbers on the max
bandwidth of qnet using the resource manager approach. I realize that qnet
is the slowest way to go here, but the resource manager interface greatly
simplifies the design of my system if I can use it. Does anyone have any
comments on this? Is there anything I can do to optimize qnet (like change
packet sizes, etc.)?

Jason A. Farqué
CDI at http://www.pigging.com/

Jason A. Farque’ <jasonf@pigging.com> wrote:

I’m implementing (I hope) a system that employs qnet and the resource
manager to provide shared pathnames over a small number of nodes (fewer than
9). I’ve written some test programs that install a pathname on
/net/master/dev/master_in and allow some “slaves” to send data to that
directory. I’m disappointed in the performance (i.e. MB/sec) that I’m
getting using this method. Even with just two computers on the network I
seem to be getting only about 300kb a second on 10BaseT. The computers are
a 200MHz pentium and a 66MHz 486. I can increase the speed of the machines,
but unfortunately moving to 100BaseT is not an option since one of my system
does not have a 100BaseT card available.

How does “cp -V /net/master/ /net/slave/tmp” report?
With 2 133Mhz on a 10MB network, I usually get something arround
700KBytes/s.

The performance of QNET quite bundle with the data block each
MsgSend() handled. That is:

MsgSend() 1024k is far more faster then MsgSend() 1k x 1024

This is understandable, cause each MsgSend() have to wait till the
Reply() cross network.

Another thing I could found is the name resolve is rather expansive.
So once you find the server, keep the fd, (and dup it if necessary),
rather then close()/open() it a lot more times.

-xtang

Thanks for the tip, I was unaware of the -V option to cp. Very handy.

Using it I get about 360kb/sec on my network. Perhaps my only real problem
then is the slower computer being only a 66MHz 486?

Jason A. Farqué
CDI at http://www.pigging.com/



“Xiaodan Tang” <xtang@qnx.com> wrote in message
news:9gqj5f$beo$1@nntp.qnx.com

Jason A. Farque’ <> jasonf@pigging.com> > wrote:
I’m implementing (I hope) a system that employs qnet and the resource
manager to provide shared pathnames over a small number of nodes (fewer
than
9). I’ve written some test programs that install a pathname on
/net/master/dev/master_in and allow some “slaves” to send data to that
directory. I’m disappointed in the performance (i.e. MB/sec) that I’m
getting using this method. Even with just two computers on the network
I
seem to be getting only about 300kb a second on 10BaseT. The computers
are
a 200MHz pentium and a 66MHz 486. I can increase the speed of the
machines,
but unfortunately moving to 100BaseT is not an option since one of my
system
does not have a 100BaseT card available.

How does “cp -V /net/master/ /net/slave/tmp” report?
With 2 133Mhz on a 10MB network, I usually get something arround
700KBytes/s.

The performance of QNET quite bundle with the data block each
MsgSend() handled. That is:

MsgSend() 1024k is far more faster then MsgSend() 1k x 1024

This is understandable, cause each MsgSend() have to wait till the
Reply() cross network.

Another thing I could found is the name resolve is rather expansive.
So once you find the server, keep the fd, (and dup it if necessary),
rather then close()/open() it a lot more times.

-xtang

Jason A. Farque’ <jasonf@pigging.com> wrote:

Thanks for the tip, I was unaware of the -V option to cp. Very handy.

Using it I get about 360kb/sec on my network. Perhaps my only real problem
then is the slower computer being only a 66MHz 486?

It could be the 486 but is also very likely as much the network card inside
of the 486. What network card are you using on that machine?

chris

cdm@qnx.com > “The faster I go, the behinder I get.”

Chris McKillop – Lewis Carroll –
Software Engineer, QSSL
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

The 486 is a Jumptec DIMM-PC. The card they use is one of their own
concoction including a VGA controller and Serial controller, etc. on-board.
The chip they use is the CrystalLAN CS8900 ISA since the system doesn’t have
a PCI bus. The crys8900 driver in QNX booted right up btw.


Jason A. Farqué
CDI at http://www.pigging.com/



“Chris McKillop” <cdm@qnx.com> wrote in message
news:9gqld5$bop$1@nntp.qnx.com

Jason A. Farque’ <> jasonf@pigging.com> > wrote:

Thanks for the tip, I was unaware of the -V option to cp. Very handy.

Using it I get about 360kb/sec on my network. Perhaps my only real
problem
then is the slower computer being only a 66MHz 486?


It could be the 486 but is also very likely as much the network card
inside
of the 486. What network card are you using on that machine?

chris

cdm@qnx.com > “The faster I go, the behinder I get.”
Chris McKillop – Lewis Carroll –
Software Engineer, QSSL

You didn’t say much about what size packets you are sending.
If you are sending small packets, the overhead could end up eating
a lot of the bandwidth.


Previously, Jason A. Farque’ wrote in qdn.public.qnxrtp.os:

I’m implementing (I hope) a system that employs qnet and the resource
manager to provide shared pathnames over a small number of nodes (fewer than
9). I’ve written some test programs that install a pathname on
/net/master/dev/master_in and allow some “slaves” to send data to that
directory. I’m disappointed in the performance (i.e. MB/sec) that I’m
getting using this method. Even with just two computers on the network I
seem to be getting only about 300kb a second on 10BaseT. The computers are
a 200MHz pentium and a 66MHz 486. I can increase the speed of the machines,
but unfortunately moving to 100BaseT is not an option since one of my system
does not have a 100BaseT card available.

I’ve dug around and can’t come up with any theoretical numbers on the max
bandwidth of qnet using the resource manager approach. I realize that qnet
is the slowest way to go here, but the resource manager interface greatly
simplifies the design of my system if I can use it. Does anyone have any
comments on this? Is there anything I can do to optimize qnet (like change
packet sizes, etc.)?

Jason A. Farqué
CDI at > http://www.pigging.com/



\


Mitchell Schoenbrun --------- maschoen@pobox.com

Jason A. Farque’ <jasonf@pigging.com> wrote:

The 486 is a Jumptec DIMM-PC. The card they use is one of their own
concoction including a VGA controller and Serial controller, etc. on-board.
The chip they use is the CrystalLAN CS8900 ISA since the system doesn’t have
a PCI bus. The crys8900 driver in QNX booted right up btw.

Are you using the crys8900 in shared memory or i/o mode?

chris

cdm@qnx.com > “The faster I go, the behinder I get.”

Chris McKillop – Lewis Carroll –
Software Engineer, QSSL
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Umm…

I dunno.

How do I tell?


Jason A. Farqué
CDI at http://www.pigging.com/


“Chris McKillop” <cdm@qnx.com> wrote in message
news:9grucb$6so$2@nntp.qnx.com

Are you using the crys8900 in shared memory or i/o mode?

chris

cdm@qnx.com > “The faster I go, the behinder I get.”
Chris McKillop – Lewis Carroll –
Software Engineer, QSSL

Packet size is the default 4k. Haven’t seen anywhere to adjust this as yet,
and I’ve been looking.

Suggestions?


Jason A. Farqué
CDI at http://www.pigging.com/


“Mitchell Schoenbrun” <maschoen@pobox.com> wrote in message
news:Voyager.010620181912.302D@schoenbrun.com

You didn’t say much about what size packets you are sending.
If you are sending small packets, the overhead could end up eating
a lot of the bandwidth.

Previously, Jason A. Farque’ wrote in qdn.public.qnxrtp.os:

Packet size is the default 4k. Haven’t seen anywhere to adjust this as yet,
and I’ve been looking.

I’m talking about the data size that you are sending. Each Send()/Reply()
will cause one or more packets to be transfered. If the data size is
small, you will get one small packet. The size of the packet may be
two or three times the size of the data if it is small enough, due to
headers.


Mitchell Schoenbrun --------- maschoen@pobox.com