tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: NIO Connector: "Possible key leak"
Date Wed, 27 May 2009 13:32:21 GMT
-----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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message