[Openvas-devel] New NVT server side cache to overcome NVT size limits

Jan-Oliver Wagner Jan-Oliver.Wagner at greenbone.net
Thu Jun 4 21:18:08 CEST 2009


I was unhappy with the current cache for the major reason that
the cache as designed by the Nessus people limits NVTs in various ways.
E.g. length of description, number of dependencies, number of CVEs etc.
are all limited.

The current cache works with fixed sizes, and just dumps binary
memory blocks to/from filesystem.

I've designed a keyfile approach where each cache file is a keyfile
corresponding to a NVT.
The limits of the keyfiles are far beyond what we have currently.

I've used the nvti.c module which you find in current openvas-libraries
of trunk and did some measurements:

Applied for: openvas-plugins rev 3609
 + a couple of personal scripts
 = 12028 scripts

Patch for measurement with time command:

Index: openvasd/pluginload.c
--- openvasd/pluginload.c       (Revision 3609)
+++ openvasd/pluginload.c       (Arbeitskopie)
@@ -219,6 +219,7 @@
   if ( be_quiet == 0 )
          printf("\rAll plugins loaded                                   \n");

   return plugins;


Keyfile solution: Initial start with empty cache:
time openvasd
real    4m4.297s
user    1m15.853s
sys     1m16.549s

Keyfile solution: Start with cache:
time openvasd
real    0m6.960s
user    0m5.892s
sys     0m0.700s

Keyfile solution: Size of Cache:
du -sh .
48M     .

Old cache version with same NVTs:

Current binary cache: Start without cache:
time openvasd
real    5m42.230s
user    1m15.465s
sys     1m7.948s

Current binary cache: Start with cache:
real    0m3.453s
user    0m2.808s
sys     0m0.496s

Current binary cache: Cache size:
du -sh .
142M    .

* Building the cache anew duration is almost the same
* Loading existing cache duration doubles with keyfiles, but still at ~2000 
NVTs per second
* Harddisk consumption drops to ~1/3 of the current solution
* There is still more opportunities to increase speed, as I did not optimize
   for speed yet.
* No limits for description, CVEs, dependencies, ... 

This patch could be integrated after we branch openvas-libraries for 2.1-

Worth a Change Request?



Dr. Jan-Oliver Wagner |  ++49-541-335084-0  |  http://www.greenbone.net/
Greenbone Networks GmbH, Neuer Graben 17, 49074 Osnabrück
AG Osnabrück, HR B 202460 | Geschäftsführer: Lukas Grunwald, Dr. Jan-Oliver 

More information about the Openvas-devel mailing list