Thanks Chris,
the warning would only print when a GC happens and there are some keys that haven't been cancelled but dereferenced. I will work on this, but it should not cause any problems since the keys will be cleaned out.

Filip

Christopher Schultz wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Filip,

On 5/27/2009 8:45 AM, Filip Hanik - Dev Lists wrote:
Christopher Schultz wrote:
These are the warnings I received:

May 23, 2009 5:03:20 AM
org.apache.tomcat.util.net.NioBlockingSelector$KeyReference finalize
WARNING: Possible key leak, cancelling key in the finalizer.
Its a warning that the key shows isValid()==true when the finalizer has
been invoked, and that the key is being closed.
It should not affect your system, since the key is being cancelled out.
If you have a test that you are running, I can reproduce it, and make
the warning go away

I'm just running a load test against all the combinations of connectors
I have configured including two NIO connectors (one with and one without
sendFile enabled). I'm not sure which one is complaining, and it doesn't
issue the same number of warnings each time through the whole battery of
tests.

If you read the thread "Apache httpd vs Tomcat static performance"
you'll see my test setup. I'm happy to provide the script I'm using for
the actual test (see below). (Apologies in advance for any wrapping
problems.) The different configurations are identified only by their
port number, but are commented as such.

- -chris

runalltests.sh
- --------------
#!/bin/sh

# Enough requests to fill 10 minutes?
REQUESTS=10000000
# 10 minutes
#TIME_LIMIT=600
#TIME_LIMIT=10
TIME_LIMIT=480
CONCURRENCY=40
REPORT_DIR=${1:-.}
SLEEP_TIME=5s

function stop_vmstat {
  if [ "" != "${VMSTAT_PID}" ] ; then
    echo 'Stopping vmstat'

    kill -HUP ${VMSTAT_PID}

    unset VMSTAT_PID
  fi
}

trap "stop_vmstat" INT TERM EXIT

vmstat -n 5 > ${REPORT_DIR}/vmstat.log &
VMSTAT_PID=$!

# httpd
./runtests.sh 1 1 0 http://localhost:8180/ >/dev/null
sleep ${SLEEP_TIME}
./runtests.sh ${REQUESTS} ${CONCURRENCY} ${TIME_LIMIT}
http://localhost:8180/ | tee ${REPORT_DIR}/results_httpd.txt 2>&1

# Coyote non-APR
./runtests.sh 1 1 0 http://localhost:8001/ >/dev/null
sleep ${SLEEP_TIME}
./runtests.sh ${REQUESTS} ${CONCURRENCY} ${TIME_LIMIT}
http://localhost:8001/ | tee ${REPORT_DIR}/results_coyote.txt 2>&1

# Coyote APR
./runtests.sh 1 1 0 http://localhost:8002/ >/dev/null
sleep ${SLEEP_TIME}
./runtests.sh ${REQUESTS} ${CONCURRENCY} ${TIME_LIMIT}
http://localhost:8002/ | tee ${REPORT_DIR}/results_coyote_apr.txt 2>&1

# Coyote APR w/o sendfile
./runtests.sh 1 1 0 http://localhost:8003/ >/dev/null
sleep ${SLEEP_TIME}
./runtests.sh ${REQUESTS} ${CONCURRENCY} ${TIME_LIMIT}
http://localhost:8003/ | tee ${REPORT_DIR}/results_coyote_apr_ns.txt 2>&1

# Coyote NIO
./runtests.sh 1 1 0 http://localhost:8004/ >/dev/null
sleep ${SLEEP_TIME}
./runtests.sh ${REQUESTS} ${CONCURRENCY} ${TIME_LIMIT}
http://localhost:8004/ | tee ${REPORT_DIR}/results_coyote_nio.txt 2>&1

# Coyote NIO w/o sendfile
./runtests.sh 1 1 0 http://localhost:8005/ >/dev/null
sleep ${SLEEP_TIME}
./runtests.sh ${REQUESTS} ${CONCURRENCY} ${TIME_LIMIT}
http://localhost:8005/ | tee ${REPORT_DIR}/results_coyote_nio_ns.txt 2>&1

runtests.sh
- -----------
#!/bin/sh

AB=/usr/sbin/ab
REQUESTS=${1:-1000}
CONCURRENCY=${2:-1}
TIME_LIMIT=${3:-0}
BASE_URL=${4:-http://localhost:8180/}
FILES="4kiB.bin 8kiB.bin 16kiB.bin 32kiB.bin 64kiB.bin 128kiB.bin
256kiB.bin 512kiB.bin 1MiB.bin 2MiB.bin 4MiB.bin 8MiB.bin 16MiB.bin
32MiB.bin"

if [ "$TIME_LIMIT" == "0" ] ; then
TIME_LIMIT=""
else
TIME_LIMIT="-t $TIME_LIMIT"
fi

for f in ${FILES} ; do
  echo `date`
  echo Fetching ${BASE_URL}${f} -c ${CONCURRENCY} ${TIME_LIMIT} -n
${REQUESTS}

  echo ${AB} -c ${CONCURRENCY} ${TIME_LIMIT} -n ${REQUESTS} ${BASE_URL}${f}
  ${AB} -c ${CONCURRENCY} ${TIME_LIMIT} -n ${REQUESTS} ${BASE_URL}${f}
done
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkodQOUACgkQ9CaO5/Lv0PAm8ACgsG886u/60g9fEUF4KcHZYwvL
7r0An3Brv79ab1qo6xDce01qUAVWpxdw
=QsU8
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to