Open beaudet opened 7 years ago
Date: 5/12/2017 Server: 2.3 GHz Xeon x 8 cores, 24 GB RAM / Memcache 6GB Cache / Varnish 4GB malloc cache / proxy to varnish for all requests not received from localhost Tool: siege with 8 concurrent users and no delay, 900 requests total per user with file containing 900 unique URLs, each retrieving a 400x400 JPG from a wide variety of art object images, some of which are as large as 30k pixels in the longest dimension, but most of which are between 3000 and 4000 pixels in the longest dimension. Pyramidal TIFF sources generated with vips im_vips2tiff $targetFile $sourcefile$fileExt:jpeg:90,tile:256x256,pyramid
Example Line from Data File: http://server-name/iiif/public/objects/5/0/7/9/1/50791-primary-0-nativeres.ptif/full/400,/0/default.png
IIP Build: Custom build from github.com/beaudet/iipsrv/nga_prod branch incorporating IIIF url support, lanczos filter, caching enhancements, png output support, icc profile enhancement, and oversampling enhancements
IIP Config: FcgidInitialEnv MEMCACHED_SERVERS "localhost:11211" FcgidInitialEnv MEMCACHED_TIMEOUT 300 FcgidInitialEnv ALLOW_UPSCALING 0 FcgidInitialEnv LOGFILE "/var/log/iipsrv/iipsrv.log" FcgidInitialEnv VERBOSITY 1 FcgidInitialEnv FILESYSTEM_PREFIX "/my/secret/image/prefix/" FcgidInitialEnv JPEG_QUALITY 90 FcgidInitialEnv MAX_CVT 8192 FcgidInitialEnv MAX_HEADERS_IN_METADATA_CACHE 10000 FcgidInitialEnv MAX_IMAGE_CACHE_SIZE 0 FcgidInitialEnv DISABLE_PRIMARY_MEMCACHE 0 FcgidInitialEnv INTERPOLATION 2 <-- Lanczos FcgidInitialEnv OVERSAMPLING_FACTOR 1.5 FcgidInitialEnv IIIF_PREFIX "/iiif" FcgidInitialEnv RETAIN_SOURCE_ICC_PROFILE 1
Testing Procedure:
Results:
Conclusions:
despite this https://www.varnish-cache.org/docs/trunk/phk/ssl_again.html
there might actually be hope here: https://www.varnish-software.com/plus/ssl-tls-support/ and therefore here https://github.com/varnish/hitch
I reran the May 12 test listed above with varnish and the IIP primary cache as well as the image tile cache disabled and with 8 users as well as 1 user. I then enabled tile caching only to assess the effectiveness of that option alone.
Results and Conclusions:
Ruven has indicated that native Intel Lanczos code is being successfully integrated into IIP and provides an additional 7-8x speedup w.r.t. the resampling operations. That processing is perhaps 40% of the total time handling a non-cached requests, so I would expect it to speed up IIP by a factor of perhaps 2x once that's in place.
This issue can be appended with various performance tests being conducted against the IIP server. Perhaps the following format can be used:
Date of Test:
Server Description (cores, memory, cpu model, etc.):
Tool used for performance testing and / or command line:
Data file description / sample of data file contents
Testing Procedure (for replication):
IIP release or branch build & date built + configuration, e.g. Kakadu, OpenJPEG, PNG, etc.:
Results: