--- Begin Message ---
Package: apt-proxy
Version: 1.9.32
Severity: minor
Hi
On Monday 12 Dec 2005 12:56, Micha wrote:
> I wonder if the db debug level triggers a whole db lookup which somehow's
> using up rather much resources (both hd and cpu) ?
I think your analysis is exactly right. running the database at full debug
does generate a *lot* of log output, including complete dumps of the
databases. Normally it is not necessary to enable debug so I have not looked
at optimising this.
> This is ap 19.x, debian testing/unstable, kernel 2.6.13 with a
> low-latency-desktop kernel (*)
Maybe this makes the usage worse. I am opening a bug to make sure this is not
forgotten. Thanks for the report
Chris
--------------
Full message:
Hi,
just made the regular daily update (well, this time after it was suspendet
for some edays) and noticed ap's running very slow, with pauses between
every download (which run at normal speed themwselves) and sometimes
even within a single download.
Parallel streaming is _not_ enabled in the config.
After 60 packages or so i interrupted the update.
Debug level was all:9 so i got some logging (last lines):
(...)
2005/12/12 13:14 CET [FetcherHttp,client] [db] openssh-server:
2005/12/12 13:14 CET [FetcherHttp,client]
[db] /debian/pool/main/o/openssh/openssh-server_4.2p1-5_i386.deb
2005/12/12 13:14 CET [FetcherHttp,client] [db] gstreamer0.8-ffmpeg:
2005/12/12 13:14 CET [FetcherHttp,client]
[db] /debian/pool/main/g/gst-ffmpeg/gstreamer0.8-ffmpeg_0.8.5-2_i386.deb
2005/12/12 13:14 CET [FetcherHttp,client]
[db] /debian/pool/main/g/gst-ffmpeg/gstreamer0.8-ffmpeg_0.8.7-4_i386.deb
2005/12/12 13:14 CET [FetcherHttp,client] [db] binutils:
2005/12/12 13:14 CET [FetcherHttp,client]
[db] /debian/pool/main/b/binutils/binutils_2.15-6_i386.deb
2005/12/12 13:14 CET [FetcherHttp,client]
[db] /debian/pool/main/b/binutils/binutils_2.16.1-2_i386.deb
2005/12/12 13:14 CET [FetcherHttp,client]
[db] /debian/pool/main/b/binutils/binutils_2.16.1cvs20051117-1_i386.deb
2005/12/12 13:14 CET [FetcherHttp,client] [Fetcher] Last request removed
2005/12/12 13:14 CET [FetcherHttp,client] [http-client] XXX
clientConnectionLost
2005/12/12 13:14 CET [FetcherHttp,client] Stopping factory
<apt_proxy.apt_proxy.ClientFactory instance at 0xb6a5d88c>
2005/12/12 13:14 CET [Channel,73,127.0.0.1] [debug] Client connection closed
2005/12/12 13:14 CET [Channel,73,127.0.0.1] Top 10:
2005/12/12 13:14 CET [Channel,73,127.0.0.1] 282 WeakKeyDictionary
2005/12/12 13:14 CET [Channel,73,127.0.0.1] 94 Exception
2005/12/12 13:14 CET [Channel,73,127.0.0.1] 32 DBError
2005/12/12 13:14 CET [Channel,73,127.0.0.1] 31 SelectReactor
2005/12/12 13:14 CET [Channel,73,127.0.0.1] 28
ProtocolToConsumerAdapter
2005/12/12 13:14 CET [Channel,73,127.0.0.1] 28 DBError
2005/12/12 13:14 CET [Channel,73,127.0.0.1] 26 Protocol
2005/12/12 13:14 CET [Channel,73,127.0.0.1] 24 StandardError
2005/12/12 13:14 CET [Channel,73,127.0.0.1] 17 Warning
2005/12/12 13:14 CET [Channel,73,127.0.0.1] 17 ValueError
Apparently, ap2 was busy with recreating (? or whatever) the database
in the background. This is only an AMD K6 (500mhz) with 512MB, but
anything is fully optimized and it's rarely grunting under load. But i
suspect
a bottleneck somewhere. I set debug = all:9 db:0, restarted ap, and bingo it
worked fast as usual again. After some 20 packages i interrupted the update
agian, and here are the last logline:
(...)
2005/12/12 13:28 CET [Channel,28,127.0.0.1] [Fetcher.activate] (debian)
servers:1/debian/pool/main/d/dbus/python2.3-dbus_0.23.4-8_i386.deb
2005/12/12 13:28 CET [Channel,28,127.0.0.1] Starting factory
<apt_proxy.apt_proxy.ClientFactory instance at 0xb6adc1cc>
2005/12/12 13:28 CET [Uninitialized] [http_client]
GET:/debian/pool/main/d/dbus/python2.3-dbus_0.23.4-8_i386.deb
2005/12/12 13:28 CET [Uninitialized] [http_client] host:ftp2.de.debian.org
2005/12/12 13:28 CET [FetcherHttp,client] [http_client] handleStatus 200 - OK
2005/12/12 13:28 CET [FetcherHttp,client] [debug] Received: Date Mon, 12 Dec
2005 12:28:56 GMT
2005/12/12 13:28 CET [FetcherHttp,client] [debug] Received: Server
Apache/2.0.54 (Debian GNU/Linux)
2005/12/12 13:28 CET [FetcherHttp,client] [debug] Received: Last-Modified Mon,
28 Nov 2005 22:02:07 GMT
2005/12/12 13:28 CET [FetcherHttp,client] [debug] Received: ETag
"165c084-23470-410515c0"
2005/12/12 13:28 CET [FetcherHttp,client] [debug] Received: Accept-Ranges
bytes
2005/12/12 13:28 CET [FetcherHttp,client] [debug] Received: Content-Length
144496
2005/12/12 13:28 CET [FetcherHttp,client] [debug] Received: Connection close
2005/12/12 13:28 CET [FetcherHttp,client] [debug] Received: Content-Type
application/x-debian-package
2005/12/12 13:28 CET [Channel,28,127.0.0.1] [Fetcher] Last request removed
2005/12/12 13:28 CET [Channel,28,127.0.0.1] [debug] Client connection closed
2005/12/12 13:28 CET [Channel,28,127.0.0.1] Top 10:
2005/12/12 13:28 CET [Channel,28,127.0.0.1] 274 WeakKeyDictionary
2005/12/12 13:28 CET [Channel,28,127.0.0.1] 93 Exception
2005/12/12 13:28 CET [Channel,28,127.0.0.1] 32 DBError
2005/12/12 13:28 CET [Channel,28,127.0.0.1] 28 DBError
2005/12/12 13:28 CET [Channel,28,127.0.0.1] 27 SelectReactor
2005/12/12 13:28 CET [Channel,28,127.0.0.1] 26 Protocol
2005/12/12 13:28 CET [Channel,28,127.0.0.1] 24 StandardError
2005/12/12 13:28 CET [Channel,28,127.0.0.1] 24
ProtocolToConsumerAdapter
2005/12/12 13:28 CET [Channel,28,127.0.0.1] 17 Warning
2005/12/12 13:28 CET [Channel,28,127.0.0.1] 17 ValueError
2005/12/12 13:28 CET [FetcherHttp,client] [Fetcher] Finished receiving data,
status:200 saveData:1
2005/12/12 13:29 CET [FetcherHttp,client] [max_versions] [['0.23.4-8',
'/debian/pool/main/d/dbus/python2.3-dbus_0.23.4-8_i386.deb'], ['0.23.4-7',
'/debian/pool/main/d/dbus/python2.3-dbus_0.23.4-7_i386.deb'], ['0.23.4-1',
'/debian/pool/main/d/dbus/python2.3-dbus_0.23.4-1_i386.deb']]
2005/12/12 13:29 CET [FetcherHttp,client] [apt_pkg] No Packages files
available for cyril backend
2005/12/12 13:29 CET [FetcherHttp,client] [apt_pkg] No Packages files
available for java backend
2005/12/12 13:29 CET [FetcherHttp,client] [apt_pkg] No Packages files
available for videolan backend
2005/12/12 13:29 CET [FetcherHttp,client] [max_versions] Current Versions:
[('0.23.4-1', 'debian/pool/main/d/dbus/python2.3-dbus_0.23.4-1_i386.deb')]
2005/12/12 13:29 CET [FetcherHttp,client] [max_versions]
Deleting
/var/cache/apt-proxy//debian/pool/main/d/dbus/python2.3-dbus_0.23.4-7_i386.deb
2005/12/12 13:29 CET [FetcherHttp,client] [max_versions] reset at
debian/pool/main/d/dbus/python2.3-dbus_0.23.4-1_i386.deb
2005/12/12 13:29 CET [FetcherHttp,client] [http-client] XXX
clientConnectionLost
2005/12/12 13:29 CET [FetcherHttp,client] Stopping factory
<apt_proxy.apt_proxy.ClientFactory instance at 0xb6adc1cc>
But was the database process also running time ? I didn't know how to
determine that. So i tried with debug = all:9 again to see if it would run
slow again. I couldn't see any database activity this time, it just said,
2005/12/12 13:44 CET [-] [debug] Verifying
database: /var/cache/apt-proxy/.apt-proxy/db/access.db
2005/12/12 13:44 CET [-] [debug] Opening
database /var/cache/apt-proxy/.apt-proxy/db/access.db
and that's all. But hey, the database activity started immediately again
when the update continued again ! Like shown above, it went through all
kind of packages which are completely unrelated to the actual update.
And again the download/serving was heavily disrupted.
The last loglines until finishing were:
2005/12/12 13:50 CET [FetcherHttp,client] [db] gstreamer0.8-ffmpeg:
2005/12/12 13:50 CET [FetcherHttp,client]
[db] /debian/pool/main/g/gst-ffmpeg/gstreamer0.8-ffmpeg_0.8.5-2_i386.deb
2005/12/12 13:50 CET [FetcherHttp,client]
[db] /debian/pool/main/g/gst-ffmpeg/gstreamer0.8-ffmpeg_0.8.7-4_i386.deb
2005/12/12 13:50 CET [FetcherHttp,client] [db] binutils:
2005/12/12 13:50 CET [FetcherHttp,client]
[db] /debian/pool/main/b/binutils/binutils_2.15-6_i386.deb
2005/12/12 13:50 CET [FetcherHttp,client]
[db] /debian/pool/main/b/binutils/binutils_2.16.1-2_i386.deb
2005/12/12 13:50 CET [FetcherHttp,client]
[db] /debian/pool/main/b/binutils/binutils_2.16.1cvs20051117-1_i386.deb
2005/12/12 13:50 CET [FetcherHttp,client] [Fetcher] Last request removed
2005/12/12 13:50 CET [FetcherHttp,client] [http-client] XXX
clientConnectionLost
2005/12/12 13:50 CET [FetcherHttp,client] Stopping factory
<apt_proxy.apt_proxy.ClientFactory instance at 0xb5831e6c>
2005/12/12 13:50 CET [Channel,14,127.0.0.1] [debug] Client connection closed
2005/12/12 13:50 CET [Channel,14,127.0.0.1] Top 10:
2005/12/12 13:50 CET [Channel,14,127.0.0.1] 265 WeakKeyDictionary
2005/12/12 13:50 CET [Channel,14,127.0.0.1] 93 Exception
2005/12/12 13:50 CET [Channel,14,127.0.0.1] 41 SelectReactor
2005/12/12 13:50 CET [Channel,14,127.0.0.1] 32 DBError
2005/12/12 13:50 CET [Channel,14,127.0.0.1] 28 DBError
2005/12/12 13:50 CET [Channel,14,127.0.0.1] 26 Protocol
2005/12/12 13:50 CET [Channel,14,127.0.0.1] 24 StandardError
2005/12/12 13:50 CET [Channel,14,127.0.0.1] 20 DelayedCall
2005/12/12 13:50 CET [Channel,14,127.0.0.1] 20
ProtocolToConsumerAdapter
2005/12/12 13:50 CET [Channel,14,127.0.0.1] 17 Warning
I wonder if the db debug level triggers a whole db lookup which somehow's
using up rather much resources (both hd and cpu) ?
This is ap 19.x, debian testing/unstable, kernel 2.6.13 with a
low-latency-desktop kernel (*)
HTH,
micha
*) The respective description of the kernel source is,
CONFIG_PREEMPT:
This option reduces the latency of the kernel by making
all kernel code (that is not executing in a critical section)
preemptible. This allows reaction to interactive events by
permitting a low priority process to be preempted involuntarily
even if it is in kernel mode executing a system call and would
otherwise not be about to reach a natural preemption point.
This allows applications to run more 'smoothly' even when the
system is under load, at the cost of slighly lower throughput
and a slight runtime overhead to kernel code.
Select this if you are building a kernel for a desktop or
embedded system with latency requirements in the milliseconds
range.
--- End Message ---