Anyone else read this? It has a very good
high level description of livelock and deadlock in multithreaded
programs in the middle of a very good description of high-performance
server programming.
http://pl.atyp.us/content/tech/servers.html
- Dan
I was shamed into updating my c10k page a bit;
someone at Red Hat commented on how out of date
it was :-(
It now covers recent Linux activity better,
and I've excised some of the dead-end poll alternatives
in favor of the ones that seem to be going forward.
- Dan
http://www.kegel.com/c10k.html
cheryl huntington wrote:
> Sorry to bother the group with this, but I am consistently getting more
> spam at work and this is the only external e-mail list I am on. So, I'm
> wondering if they got my e-mail address from this list.
>
> The spam is html and in asian text (I'm ignorant of asian texts so I
> don't know what it is), looks like an add, but obviously I can't read
> it. It is sent directly to my work e-mail address. It was about one a
> day, but is now creeping up to 2 or more per day, which I won't tolerate.
>
> Is anyone else getting this? It will help me to know how my address got
> on a spam list.
I get a ton of that kind of spam, but then, my email address is
widely published. (If it weren't for SpamAssasin, I'd get no work done.)
I just did a google search for your email address, and it popped up
in a couple places, mainly:
http://groups.google.com/groups?selm=94ou9i%241p0%241%40nnrp1.deja.com
so we may not be able to pin the blame on this mailing list;
it's possible some spammer harvested your name from a google
search of old usenet posts.
- Dan
Sorry to bother the group with this, but I am consistently getting more
spam at work and this is the only external e-mail list I am on. So, I'm
wondering if they got my e-mail address from this list.
The spam is html and in asian text (I'm ignorant of asian texts so I
don't know what it is), looks like an add, but obviously I can't read
it. It is sent directly to my work e-mail address. It was about one a
day, but is now creeping up to 2 or more per day, which I won't tolerate.
Is anyone else getting this? It will help me to know how my address got
on a spam list.
Thanks,
Cheryl
Kenneth Eaton wrote:
>I am using version egcs-2.91.66.
>
>
That's a tad old, particularly for compiling C++ code. I suggest you
update to one of the newer versions of g++, as it looks like your
compiler is getting confused.
--Chris
Hmm. I wonder if you might need to use gcc3... what compiler are you
using?
- Dan
Kenneth Eaton wrote:
>
> Upon attempting to compile the program I receive the below output and
> error. Can anyone help out?
>
> g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
> -DPACKAGE_
> STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"dkftpbench\"
> -DVERSION=\"0.45\"
> -DHAVE_LIBNSL=1 -Din_addr_t=int -DHAVE_INET_ATON=1 -DHAVE_DEVPOLL=0
> -DHAVE_DEVE
> POLL=0 -D_GNU_SOURCE=1 -DHAVE_F_SETSIG=1 -DSTDC_HEADERS=1
> -DHAVE_SYS_TYPES_H=1 -
> DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
> -DHAVE_
> STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
> -DHAVE_PTHRE
> AD_H=1 -D__x86__=1 -I. -I. -Wall -W -Wmissing-prototypes
> -Wstrict-prototyp
> es -Wmissing-declarations -Wwrite-strings -O2 -c Poller_test.cc
> Poller_test.cc: In method `void
> Poller_test<Poller_poll>::testRejection<Poller_p
> oll>(const char *, int)':
> Poller_test.cc:128: instantiated from
> `Poller_test<Poller_poll>::unitTest<Poll
> er_poll>()'
> Poller_test.cc:397: instantiated from here
> Poller_test.cc:253: `volatile' undeclared (first use this function)
> Poller_test.cc:253: (Each undeclared identifier is reported only once
> Poller_test.cc:253: for each function it appears in.)
> Poller_test.cc:253: warning: qualifier ignored on asm
> Poller_test.cc: In method `void
> Poller_test<Poller_select>::testRejection<Poller
> _select>(const char *, int)':
> Poller_test.cc:128: instantiated from
> `Poller_test<Poller_select>::unitTest<Po
> ller_select>()'
> Poller_test.cc:401: instantiated from here
> Poller_test.cc:253: confused by earlier errors, bailing out
> make: *** [Poller_test.o] Error 1
Upon attempting to compile the program I receive the below output and
error. Can anyone help out?
g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_
STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"dkftpbench\"
-DVERSION=\"0.45\"
-DHAVE_LIBNSL=1 -Din_addr_t=int -DHAVE_INET_ATON=1 -DHAVE_DEVPOLL=0
-DHAVE_DEVE
POLL=0 -D_GNU_SOURCE=1 -DHAVE_F_SETSIG=1 -DSTDC_HEADERS=1
-DHAVE_SYS_TYPES_H=1 -
DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
-DHAVE_
STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
-DHAVE_PTHRE
AD_H=1 -D__x86__=1 -I. -I. -Wall -W -Wmissing-prototypes
-Wstrict-prototyp
es -Wmissing-declarations -Wwrite-strings -O2 -c Poller_test.cc
Poller_test.cc: In method `void
Poller_test<Poller_poll>::testRejection<Poller_p
oll>(const char *, int)':
Poller_test.cc:128: instantiated from
`Poller_test<Poller_poll>::unitTest<Poll
er_poll>()'
Poller_test.cc:397: instantiated from here
Poller_test.cc:253: `volatile' undeclared (first use this function)
Poller_test.cc:253: (Each undeclared identifier is reported only once
Poller_test.cc:253: for each function it appears in.)
Poller_test.cc:253: warning: qualifier ignored on asm
Poller_test.cc: In method `void
Poller_test<Poller_select>::testRejection<Poller
_select>(const char *, int)':
Poller_test.cc:128: instantiated from
`Poller_test<Poller_select>::unitTest<Po
ller_select>()'
Poller_test.cc:401: instantiated from here
Poller_test.cc:253: confused by earlier errors, bailing out
make: *** [Poller_test.o] Error 1
I and Vasan Sundar recently ported Poller_poll.cc to c,
and I'm using it in a fun little load test app at work.
While debugging that app, I happened to run valgrind on it,
and valgrind found an uninitialized memory bug in Poller_poll.c.
Here's the fix; the corresponding fix to the C++ version is identical.
(I'm starting to really like Valgrind... it's in debian testing,
so all I had to do to get it was 'apt-get install valgrind',
but it's a real easy compile and install from source, too.
It's at http://developer.kde.org/~sewardj/ )
--- ../se4/Poller_poll.c Fri Sep 27 15:36:17 2002
+++ Poller_poll.c Thu Oct 3 11:54:17 2002
@@ -29,6 +29,7 @@
int Poller_poll_init(Poller_poll *pp)
{
+ int i;
DPRINT(("init()\n"));
// Allocate things indexed by file descriptor.
@@ -37,6 +38,9 @@
pp->m_fd2pfdnum = (int *)malloc(sizeof(int) *
pp->m_fd2client_alloc);
if (!pp->m_fd2pfdnum)
return ENOMEM;
+ // Clear new elements
+ for (i=0; i<pp->m_fd2client_alloc; i++)
+ pp->m_fd2pfdnum[i] = -1;
// Allocate things indexed by client number.
pp->m_pfds_used = 0;
Saubra Gargh sent in a patch fixing a couple minor Solaris
compile failures. Still doesn't pass the unit test with
/dev/poll, though. It's having trouble removing fd's from the
interest set...
I have a Solaris 8 box set up at home, but getting it online is
a bit of a challenge. I think I've figured out how to mount a floppy...
damn, but that gui gets in the way...
- Dan
----------
diff -u dkftpbench-0.45/Poller_devpoll.cc dkftpbench-0.45_new/Poller_devpoll.cc
--- dkftpbench-0.45/Poller_devpoll.cc Tue Jan 15 22:21:58 2002
+++ dkftpbench-0.45_new/Poller_devpoll.cc Thu Aug 15 12:47:38 2002
@@ -27,7 +27,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/poll.h>
-#include <sys/devpoll.h>
+#include "devpoll.h"
#include "Poller_devpoll.h"
#include <errno.h>
@@ -219,7 +219,7 @@
return EINVAL;
}
- DPRINT(("setMask(%d, %x): new mask %x\n", fd, eventmask, tmp_pfd.events));
+ DPRINT(("setMask(%d, %x): new mask %x\n", fd, eventmask,
m_clivents[fd].events));
return 0;
}
@@ -292,7 +292,7 @@
return EINVAL;
}
- DPRINT(("andMask(%d, %x): new mask %x\n", fd, eventmask, tmp_pfd.events));
+ DPRINT(("andMask(%d, %x): new mask %x\n", fd, eventmask,
m_clivents[fd].events));
return 0;
}
diff -u dkftpbench-0.45/Poller_test.cc dkftpbench-0.45_new/Poller_test.cc
--- dkftpbench-0.45/Poller_test.cc Wed Jul 31 07:59:52 2002
+++ dkftpbench-0.45_new/Poller_test.cc Thu Aug 15 12:07:01 2002
@@ -35,6 +35,7 @@
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/socket.h>
+#include <signal.h>
/*----------------------------------------------------------------------
Portable function to set a socket into nonblocking mode.
@@ -255,6 +256,12 @@
DPRINT(("connecting to host %s port %d, expect rejection\n", theHost,
thePort));
CHECK(-1, connect (sock, reinterpret_cast<struct sockaddr *>(&sin), sizeof
(sin)));
+ if(errno == ECONNREFUSED) {
+ /* Connection was immediatly rejected
+ */
+ close(sock);
+ return;
+ }
CHECK(errno, EINPROGRESS);
/* Don't add the socket to the Poller until after you've
[Non-text portions of this message have been removed]
That is very usefull - i will have to have a go with that. I'm currently stuck
with a 10/100 switch - 1 x 100MB port and 12 x 10MB ports - so i could load my
machine with some extra cards to get more load on the server.
I shall give it a try and let you know how i get on!
Francis
>>> dank@... 07/30/02 05:48am >>>
Have you tried setting up a bunch of alias interfaces, and using
the -a flag to ftpbench to spread out the clients over those
interfaces? Helps avoid running out of ports.
- Dan
Francis little wrote:
>
> It seems to work fine. I'm using it to hammer an ftpd i've been working on :o)
>
> Francis
>
> >>> dank@... 07/28/02 12:41pm >>>
> oggy@... wrote:
> >
> > Hello heres a patch to get dkftpbench to compile on FreeBSD.
> >
> > *** ./old/getifaddrs.h Sun Jul 28 09:53:10 2002
> > --- ./getifaddrs.h Sun Jul 28 09:51:40 2002
> > ***************
> > *** 1,4 ****
> > --- 1,5 ----
> > #if HAVE_GETIFADDRS
> > + #include <sys/types.h>
> > #include <ifaddrs.h>
> > #else
> > #ifdef __cplusplus
> >
> > Enjoy!
>
> Thanks, Francis!
> (So, now that it compiles, does it actually work? :-)
Community email addresses:
Post message: ftpbench@onelist.com
Subscribe: ftpbench-subscribe@onelist.com
Unsubscribe: ftpbench-unsubscribe@onelist.com
List owner: ftpbench-owner@onelist.com
Shortcut URL to this page:
http://www.onelist.com/community/ftpbench
Code:
http://www.kegel.com/dkftpbench/
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Have you tried setting up a bunch of alias interfaces, and using
the -a flag to ftpbench to spread out the clients over those
interfaces? Helps avoid running out of ports.
- Dan
Francis little wrote:
>
> It seems to work fine. I'm using it to hammer an ftpd i've been working on :o)
>
> Francis
>
> >>> dank@... 07/28/02 12:41pm >>>
> oggy@... wrote:
> >
> > Hello heres a patch to get dkftpbench to compile on FreeBSD.
> >
> > *** ./old/getifaddrs.h Sun Jul 28 09:53:10 2002
> > --- ./getifaddrs.h Sun Jul 28 09:51:40 2002
> > ***************
> > *** 1,4 ****
> > --- 1,5 ----
> > #if HAVE_GETIFADDRS
> > + #include <sys/types.h>
> > #include <ifaddrs.h>
> > #else
> > #ifdef __cplusplus
> >
> > Enjoy!
>
> Thanks, Francis!
> (So, now that it compiles, does it actually work? :-)
Hello heres a patch to get dkftpbench to compile on FreeBSD.
*** ./old/getifaddrs.h Sun Jul 28 09:53:10 2002
--- ./getifaddrs.h Sun Jul 28 09:51:40 2002
***************
*** 1,4 ****
--- 1,5 ----
#if HAVE_GETIFADDRS
+ #include <sys/types.h>
#include <ifaddrs.h>
#else
#ifdef __cplusplus
Enjoy!
Francis Little
This release fixes the bug reported by Jeon where
Poller_select::getNextEvent could return a deleted client,
adds a type() method to ftp_client_*, and
makes robouser call type("I") so we benchmark binary transfer performance.
Also, Poller_bench no longer complains when it gets spurious readiness events,
and we're closer to running under orbit-cpp.
Thanks to Jeon and Ian for sending in the patches that
inspired this release. (I didn't use your code for various
reasons, but your patches shamed me into action.)
Also thanks to John Palmieri who actually did much of
the work, with me breathing over his shoulder.
- Dan
Hi Jeon! Thanks so much for the bugfix!
- Dan
ÀüÂù¼® wrote:
>
>
> Hi. My name is Jeon.
>
> First of all, thank you abut the Poller product.
> I adopted the Poller of dkftpbench to my project for better performance.
>
> While I and my coworker do our project,
> we have found something wrong.
>
> When we look up the source code,
> we realized that there is no checking the invalid m_clients[fd] in '
> Poller_select::getNextEvent(Poller::PollEvent *e) '.
>
> Like other Poller( eg. Poller_devpoll ) , I think, need to check the null.
> The rare core dump occured because of deleting the other poller child.
>
> 253 // Find the next fd with bits set
> 254 for (revents=0; m_cur_fd++ < m_max_fd; ) {
> 255 // Avoiding branches inside this loop only improves
> benchmark by 2%,
> 256 // so don't bother.
> 257
> 258 // ¸ñ 5¿ù 16 11:34:58 KST 2002
> 259 // Patched bug.
> 260 if ( m_clients[m_cur_fd] == NULL ) continue;
> 261
> 262 if (FD_ISSET(m_cur_fd, &m_testrfds)) revents = POLLIN;
> 263 if (FD_ISSET(m_cur_fd, &m_testwfds)) revents |= POLLOUT;
> 264 #ifdef Poller_URGENT
> 265 if (FD_ISSET(m_cur_fd, &m_testefds)) revents |= POLLPRI;
> 266 #endif
> 267 if (revents)
> 268 break;
> 269 }
>
> Sincerely.
Ian Willis wrote:
> The ChangeLog for dkftpbench mentions that the transfer type still defaults
> to ascii. Included below is a patch (diffs vs dkftpbench-0.42) which changes
> the transfer type to image so you get binary transfers and thus a more
> realistic test of an FTP server.
Thanks, Ian!
- Dan
>
> --- ftp_client_proto.h.00 Fri Apr 26 17:33:21 2002
> +++ ftp_client_proto.h Fri Apr 26 17:37:37 2002
> @@ -72,6 +72,7 @@
> FCPS_USER, // waiting for response to USER
> FCPS_PASS, // waiting for response to PASS
> FCPS_IDLE, // central logged-in state, waiting
for user
> + FCPS_TYPE, // waiting for response to TYPE
> FCPS_CWD, // waiting for response to CWD or CDUP
> FCPS_SIZE, // waiting for response to SIZE
> FCPS_PORT, // waiting for response to PORT
> --- ftp_client_proto.cc.00 Fri Apr 26 17:31:39 2002
> +++ ftp_client_proto.cc Fri Apr 26 17:32:37 2002
> @@ -194,7 +194,8 @@
> case FCPS_USER:
> if ((status >= 200) && (status < 300)) {
> DPRINT(("ftp_client_proto_t::giveInput: no password
needed\n"));
> - SETSTATE(FCPS_IDLE);
> + m_obuflen = sprintf(m_obuf, "TYPE I\r\n");
> + SETSTATE(FCPS_TYPE);
> } else if ((status >= 300) && (status < 400)) {
> /* Send the password. Actually, this could have been
> * queued at the same time as the connect and the
USER,
> @@ -211,9 +212,20 @@
> case FCPS_PASS:
> if ((status >= 200) && (status < 300)) {
> DPRINT(("ftp_client_proto_t::giveInput::PASS ok,
%s\n", ibuf));
> - SETSTATE(FCPS_IDLE);
> + m_obuflen = sprintf(m_obuf, "TYPE I\r\n");
> + SETSTATE(FCPS_TYPE);
> } else {
> DPRINT(("ftp_client_proto_t::giveInput::PASS failed,
%s\n", ibuf));
> + SETSTATE(FCPS_INIT);
> + }
> + break;
> +
> + case FCPS_TYPE:
> + if ((status >= 200) && (status < 300)) {
> + DPRINT(("ftp_client_proto_t::giveInput::TYPE ok,
%s\n", ibuf));
> + SETSTATE(FCPS_IDLE);
> + } else {
> + DPRINT(("ftp_client_proto_t::giveInput::TYPE failed,
%s\n", ibuf));
> SETSTATE(FCPS_INIT);
> }
> break;
sasha oblak wrote:
> I was wondering if there was any progress on fixing the
> Poller_devpoll::waitForEvents() bug on Solaris?
No - been too busy. Dang it. And I have a copy of Solaris
ready to install, too. It's probably an easy change
(maybe just adding a couple ifdefs),
but I'm so swamped I won't get to it anytime soon.
Can you run with just Poller_poll() initially?
- Dan
On 2002-04-19 14:07:34 -0700, zhang li wrote:
> hi,
>
> how can i measuer the cpu usage of ftp server?
>
> I use "time dkftpbench ..." on ftp client
> machine(different host from ftp server) and get
>
> "real ?
> user ?
> sys ?
> "
>
> but I think they are the time measurement on client,
> not on server, right? So how can I measure cpu usage
> on server host?
If you're measuring on an otherwise idle server, there are a number of
commands you can use to see system load.
For instance, on a Linux system you can use "vmstat". On FreeBSD you
can use "iostat" or "vmstat". On Slowlaris you can use "sar", "iostat",
or "vmstat".
Note that these won't give you precise numbers about any given process,
but I don't know any way to do this for a daemon process that does not
have support for this information built-in.
--
Shane
Carpe Diem
hi,
how can i measuer the cpu usage of ftp server?
I use "time dkftpbench ..." on ftp client
machine(different host from ftp server) and get
"real ?
user ?
sys ?
"
but I think they are the time measurement on client,
not on server, right? So how can I measure cpu usage
on server host?
thanks.
sincerely,
li
__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/
"man time" says:
These statistics consist of (i) the
elapsed real time between invocation and termination, (ii)
the user CPU time (the sum of the tms_utime and tms_cutime
values in a struct tms as returned by times(2)), and (iii)
the system CPU time (the sum of the tms_stime and
tms_cstime values in a struct tms as returned by
times(2)).
On Sun, Apr 07, 2002 at 01:32:09PM -0700, zhang li wrote:
> Anybody know what does this mean when running "time
> dkftpbench ..."
>
> "real 1m0.259s
> user 0m0.060s
> sys 0m0.200s"
>
> what does "real", "user", "sys" mean respectively?
>
> Thanks.
>
> li
>
> --- Dan Kegel <dank@...> wrote:
> > zhang li wrote:
> > >
> > > Dan Kegel wrote:
> > > > zhang_zoe wrote:
> > > > >
> > > > > I run "time dkftpbench -hssl-2.cs.unm.edu
> > -n3000
> > > > > -t180 -b1000 -u? -p?
> > > > > -fglobus.eps -sp" in host where ftp client is
> > > > > running. but i got error message:
> > > > > ...
> > > > > robouser0::ftpCmdDone:GETTING: xerr 0, status
> > 550,
> > > > > aborting
> > > > >
> > > > > What's wrong with it?
> > > >
> > > > The status value of 550 is from the FTP server.
> > It
> > > > is defined in the FTP RFC as
> > > > 550 Requested action not taken.
> > > > File unavailable (e.g., file not
> > found,
> > > > no access).
> > > > Most likely, the file globus.eps was not found.
> > >
> > > but four processes are successfully(get the file
> > > successfully) before the error pops up.
> >
> > Are you sure? The log you posted made it look like
> > two robousers had *started* but it wasn't clear
> > they'd actually
> > fetched any files.
> >
> > Try it with just 1 user first, and crank up the
> > verbosity.
> > - Dan
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Tax Center - online filing with TurboTax
> http://taxes.yahoo.com/
>
>
> Community email addresses:
> Post message: ftpbench@onelist.com
> Subscribe: ftpbench-subscribe@onelist.com
> Unsubscribe: ftpbench-unsubscribe@onelist.com
> List owner: ftpbench-owner@onelist.com
>
> Shortcut URL to this page:
> http://www.onelist.com/community/ftpbench
>
> Code:
> http://www.kegel.com/dkftpbench/
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
Anybody know what does this mean when running "time
dkftpbench ..."
"real 1m0.259s
user 0m0.060s
sys 0m0.200s"
what does "real", "user", "sys" mean respectively?
Thanks.
li
--- Dan Kegel <dank@...> wrote:
> zhang li wrote:
> >
> > Dan Kegel wrote:
> > > zhang_zoe wrote:
> > > >
> > > > I run "time dkftpbench -hssl-2.cs.unm.edu
> -n3000
> > > > -t180 -b1000 -u? -p?
> > > > -fglobus.eps -sp" in host where ftp client is
> > > > running. but i got error message:
> > > > ...
> > > > robouser0::ftpCmdDone:GETTING: xerr 0, status
> 550,
> > > > aborting
> > > >
> > > > What's wrong with it?
> > >
> > > The status value of 550 is from the FTP server.
> It
> > > is defined in the FTP RFC as
> > > 550 Requested action not taken.
> > > File unavailable (e.g., file not
> found,
> > > no access).
> > > Most likely, the file globus.eps was not found.
> >
> > but four processes are successfully(get the file
> > successfully) before the error pops up.
>
> Are you sure? The log you posted made it look like
> two robousers had *started* but it wasn't clear
> they'd actually
> fetched any files.
>
> Try it with just 1 user first, and crank up the
> verbosity.
> - Dan
>
__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/
zhang li wrote:
>
> Dan Kegel wrote:
> > zhang_zoe wrote:
> > >
> > > I run "time dkftpbench -hssl-2.cs.unm.edu -n3000
> > > -t180 -b1000 -u? -p?
> > > -fglobus.eps -sp" in host where ftp client is
> > > running. but i got error message:
> > > ...
> > > robouser0::ftpCmdDone:GETTING: xerr 0, status 550,
> > > aborting
> > >
> > > What's wrong with it?
> >
> > The status value of 550 is from the FTP server. It
> > is defined in the FTP RFC as
> > 550 Requested action not taken.
> > File unavailable (e.g., file not found,
> > no access).
> > Most likely, the file globus.eps was not found.
>
> but four processes are successfully(get the file
> successfully) before the error pops up.
Are you sure? The log you posted made it look like
two robousers had *started* but it wasn't clear they'd actually
fetched any files.
Try it with just 1 user first, and crank up the verbosity.
- Dan
but four processes are successfully(get the file
successfully) before the error pops up.
li
--- Dan Kegel <dank@...> wrote:
> zhang_zoe wrote:
> >
> > I run "time dkftpbench -hssl-2.cs.unm.edu -n3000
> -t180 -b1000 -u? -p?
> > -fglobus.eps -sp" in host where ftp client is
> running. but i got erro
> > message:
> > ...
> > robouser0::ftpCmdDone:GETTING: xerr 0, status 550,
> aborting
> >
> > What's wrong with it?
>
> The status value of 550 is from the FTP server. It
> is
> defined in the FTP RFC as
> 550 Requested action not taken.
> File unavailable (e.g., file not found,
> no access).
> Most likely, the file globus.eps was not found.
>
> - Dan
>
__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/
zhang_zoe wrote:
>
> I run "time dkftpbench -hssl-2.cs.unm.edu -n3000 -t180 -b1000 -u? -p?
> -fglobus.eps -sp" in host where ftp client is running. but i got erro
> message:
> ...
> robouser0::ftpCmdDone:GETTING: xerr 0, status 550, aborting
>
> What's wrong with it?
The status value of 550 is from the FTP server. It is
defined in the FTP RFC as
550 Requested action not taken.
File unavailable (e.g., file not found, no access).
Most likely, the file globus.eps was not found.
- Dan
I run "time dkftpbench -hssl-2.cs.unm.edu -n3000 -t180 -b1000 -u? -p?
-fglobus.eps -sp" in host where ftp client is running. but i got erro
message:
"Option values:
......
1 users alive, 0 users dead; at least 180 seconds to end of test
2 users alive, 0 users dead; at least 180 seconds to end of test
robouser0::ftpCmdDone:GETTING: xerr 0, status 550, aborting
ftp_client_pipe_t::shutdown(): m_state 1, cfd 3, dfd -1, id 0
1 users alive, 1 users dead; at least 180 seconds to end of test
robouser1::ftpCmdDone:GETTING: xerr 0, status 550, aborting
ftp_client_pipe_t::shutdown(): m_state 1, cfd 5, dfd -1, id 1
All users dead. Test failed.
real 0m0.076s
user 0m0.010s
sys 0m0.010s
"
What's wrong with it?
sincerely,
li
There aren't a lot of people writing FTP servers out there in Java. :-(
I'm surprised noone has one with non-blocking I/O though.
--Chris
On Sun, 2002-03-17 at 23:24, Dan Kegel wrote:
> I'm looking for a well-written Java ftp daemon
> to benchmark. In a quick Google search, I found four
> candidates:
>
> 1. http://www.mycgiserver.com/~ranab/ftp/
> Rana Bhattacharyya's FTP Server - multithreaded; resumable; lots of features;
"now part of Apache Avalon project"; - 17KLOC
>
> 2. http://jakarta.apache.org/builds/jakarta-avalon/release/
> Apache Avalon project - the ftp server is in the Cornerstone component, which
hasn't been released yet?!
> The Avalon web page is very full of itself, quite sure it is the Way to Write
Servers.
>
> 3. http://jftpd.prominic.org/
> jFTPd - multithreaded;
> resumable; remote console - 5.1KLOC. When I compiled it with Jikes and
> ran with sun j2sdk1.4 on linux, and did 'ls', I got
> "150 Opening ASCII mode data connection.[C@fa3ac1226 Transfer complete."
> and the client was very confused.
>
> 4. http://sourceforge.net/projects/wrabbitftp/
> wrabbitftp - 2.7KLOC. Too strange to try to run.
>
> Of all of these, Rana's ftp server is the only one I was
> able to run. It handled 29 users in a test with an 8KByte file
> at 3KBytes/sec; each session took about 5.5 megabytes of RAM (ouch).
> I ran it with the vanilla jdk1.4 for Linux from Sun on a machine
> with 128MB RAM, so it's not too suprising it crapped out at 29 users.
>
> His server looks fairly well structured inside. He clearly knows how
> to write code. I'm not suprised the 'Apache Avalon Project' is using
> a derivative of his code as an example server component.
>
> Have I missed a good server? Anyone have a favorite pure java open
> source ftp server I should look at?
>
> Thanks,
> Dan
>
>
> Community email addresses:
> Post message: ftpbench@onelist.com
> Subscribe: ftpbench-subscribe@onelist.com
> Unsubscribe: ftpbench-unsubscribe@onelist.com
> List owner: ftpbench-owner@onelist.com
>
> Shortcut URL to this page:
> http://www.onelist.com/community/ftpbench
>
> Code:
> http://www.kegel.com/dkftpbench/
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
There aren't a lot of people writing FTP servers out there in Java. :-(
I'm surprised noone has one with non-blocking I/O though.
--Chris
On Sun, 2002-03-17 at 23:24, Dan Kegel wrote:
> I'm looking for a well-written Java ftp daemon
> to benchmark. In a quick Google search, I found four
> candidates:
>
> 1. http://www.mycgiserver.com/~ranab/ftp/
> Rana Bhattacharyya's FTP Server - multithreaded; resumable; lots of features;
"now part of Apache Avalon project"; - 17KLOC
>
> 2. http://jakarta.apache.org/builds/jakarta-avalon/release/
> Apache Avalon project - the ftp server is in the Cornerstone component, which
hasn't been released yet?!
> The Avalon web page is very full of itself, quite sure it is the Way to Write
Servers.
>
> 3. http://jftpd.prominic.org/
> jFTPd - multithreaded;
> resumable; remote console - 5.1KLOC. When I compiled it with Jikes and
> ran with sun j2sdk1.4 on linux, and did 'ls', I got
> "150 Opening ASCII mode data connection.[C@fa3ac1226 Transfer complete."
> and the client was very confused.
>
> 4. http://sourceforge.net/projects/wrabbitftp/
> wrabbitftp - 2.7KLOC. Too strange to try to run.
>
> Of all of these, Rana's ftp server is the only one I was
> able to run. It handled 29 users in a test with an 8KByte file
> at 3KBytes/sec; each session took about 5.5 megabytes of RAM (ouch).
> I ran it with the vanilla jdk1.4 for Linux from Sun on a machine
> with 128MB RAM, so it's not too suprising it crapped out at 29 users.
>
> His server looks fairly well structured inside. He clearly knows how
> to write code. I'm not suprised the 'Apache Avalon Project' is using
> a derivative of his code as an example server component.
>
> Have I missed a good server? Anyone have a favorite pure java open
> source ftp server I should look at?
>
> Thanks,
> Dan
>
>
> Community email addresses:
> Post message: ftpbench@onelist.com
> Subscribe: ftpbench-subscribe@onelist.com
> Unsubscribe: ftpbench-unsubscribe@onelist.com
> List owner: ftpbench-owner@onelist.com
>
> Shortcut URL to this page:
> http://www.onelist.com/community/ftpbench
>
> Code:
> http://www.kegel.com/dkftpbench/
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
I'm looking for a well-written Java ftp daemon
to benchmark. In a quick Google search, I found four
candidates:
1. http://www.mycgiserver.com/~ranab/ftp/
Rana Bhattacharyya's FTP Server - multithreaded; resumable; lots of features;
"now part of Apache Avalon project"; - 17KLOC
2. http://jakarta.apache.org/builds/jakarta-avalon/release/
Apache Avalon project - the ftp server is in the Cornerstone component, which
hasn't been released yet?!
The Avalon web page is very full of itself, quite sure it is the Way to Write
Servers.
3. http://jftpd.prominic.org/
jFTPd - multithreaded;
resumable; remote console - 5.1KLOC. When I compiled it with Jikes and
ran with sun j2sdk1.4 on linux, and did 'ls', I got
"150 Opening ASCII mode data connection.[C@fa3ac1226 Transfer complete."
and the client was very confused.
4. http://sourceforge.net/projects/wrabbitftp/
wrabbitftp - 2.7KLOC. Too strange to try to run.
Of all of these, Rana's ftp server is the only one I was
able to run. It handled 29 users in a test with an 8KByte file
at 3KBytes/sec; each session took about 5.5 megabytes of RAM (ouch).
I ran it with the vanilla jdk1.4 for Linux from Sun on a machine
with 128MB RAM, so it's not too suprising it crapped out at 29 users.
His server looks fairly well structured inside. He clearly knows how
to write code. I'm not suprised the 'Apache Avalon Project' is using
a derivative of his code as an example server component.
Have I missed a good server? Anyone have a favorite pure java open
source ftp server I should look at?
Thanks,
Dan