[KPhotoAlbum] Benchmarks on Robert's preload settings

Andreas Schleth schleth_es at web.de
Sat Oct 26 20:27:13 BST 2019

Hi Robert,

I did quite a few runs in a more or less controlled setting (normal KDE
desktop with a few terminals open but no "real" activity):

~1400 images to read

rm index.xml exif-info.db .thumbnails/*
kphotoalbum -c index.xml

before each run, I cleared the cache in a separate window (as root):

sync;echo 3 > /proc/sys/vm/drop_caches

These are the results sorted by duration (only the time it takes to
read/process the images after rescan...):

storage 	Preset 	preload 	Threads preload 	Threads pre thumbs 	Threads
Thumbs 	second 	avg cpu %
Nfs – repeat 	manual 	x 	8 	8 	8 	13 	96.7
ssd 	manual 	x 	4 	4 	4 	18 	69.2
ssd 	manual 	x 	4 	4 	0 	18 	92.6
ssd 	manual 	x 	2 	2 	2 	19 	44.2
Nfs – repeat 	NET 	x 	4 	4 	4 	19 	75.2
ssd 	manual 	0 	1 	1 	4 	20 	61.0
ssd 	manual 	0 	1 	1 	0 	20 	76.1
Ssd – repeat 	SSD SATA 	x 	4 	4 	4 	20 	76.3
ssd 	manual 	x 	8 	8 	8 	20 	78.6
ssd 	manual 	x 	2 	4 	0 	20 	87.4
ssd 	manual 	x 	1 	1 	0 	23 	73.7
ssd 	SSD SATA 	x 	4 	4 	4 	36 	43.9
nfs 	manual 	0 	4 	4 	4 	154 	13.1
nfs 	manual 	x 	4 	4 	4 	154 	16.6
nfs 	manual 	x 	8 	8 	8 	154 	16.8
nfs 	manual 	x 	4 	4 	0 	155 	16.5
nfs 	manual 	x 	2 	2 	2 	162 	15.7
nfs 	manual 	0 	1 	1 	4 	175 	10.8
nfs 	manual 	0 	1 	1 	0 	175 	10.9
nfs 	NET 	0 	1 	1 	0 	176 	11.0

It took a while until I found out, that the thread settings have an
effect only if the checkbox "do preload" is checked.

There are 3 lines with "repeat" in the table. These runs were done
without clearing the cache beforehand.

If the images were copied or otherwise read by any process before
reading the images, the files get transferred from memory instead from
disk. If you have enough memory.

My NFS is on a RAID1 spinning rust server via GB-Ethernet. While reading
from NFS, the transfer rate was around 70 MB per sec in all these cases.
My ssd delivers around 480 MB per sec.

Thus, the repeat - results are for an optimal disk (reading from memory).

My machine is a Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (skylake, 4 real
cores with hyperthreading enabled, reporting as 8 cores in top), memory
is 32 GB.

The measurements were done with: dstat -a --output xxx.csv

This gives one reading per second. I just counted the seconds with high
transfer or CPU rates. Thus the values might be off by a second or two.

My conclusions from this test are:

- preloading speeds things up, at least a little.

- funny enough, nfs seems to gain a bit more (175 to 155 sec) than the
ssd (20 to 18 sec).

- using as many threads as there are logical cpus does not clog the
pipes: nfs just spits out its usual 70 MB/sec and takes its time without
having any adverse effects on the rest of the system (except using a lot
of bandwidth). Thus, my worries were not justified.

- The presets are slower than manual settings.

- I will keep the x-8-8-8 scheme for the time being (even while working
over nfs). I might just find a few files in the cache.

- It might be a good idea to start up KPA directly after you copied the
images into their folders: copy also loads the files into the cache
where KPA finds them faster than from disk. (I tested this.)

- it is absolutely necessary to flush the cache before you do any of
these test. Otherwise you get overly fast results.

- for tests of different SSDs you would need more images to get a better

I like what I saw and will keep the current version (v5.5-150-g323e2b29)
"in production" (until the next tests are due).

Thanks for working on and improving KPA!

Cheers, Andreas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kphotoalbum/attachments/20191026/a63e5902/attachment.htm>

More information about the Kphotoalbum mailing list