www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/04/30/10:35:00

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
From: "Dave Korn" <dk AT artimi DOT com>
To: <cygwin AT cygwin DOT com>
Subject: RE: Nessus Performance on Cygwin
Date: Fri, 30 Apr 2004 15:32:52 +0100
MIME-Version: 1.0
In-Reply-To: <BAY15-F37cG03zlDADs0004a7f7@hotmail.com>
Message-ID: <NUTMEG9Uy0ZsGGg1CB900000107@NUTMEG.CAM.ARTIMI.COM>
X-OriginalArrivalTime: 30 Apr 2004 14:32:52.0375 (UTC) FILETIME=[04E23A70:01C42EC0]

> -----Original Message-----
> From: cygwin-owner On Behalf Of Abhijit .
> Sent: 30 April 2004 15:06

> Hi,
> 
> I have ported Nessus (a network security scanner on Unix) to
> Cygwin, 

  Can I have a copy of your patches please?

> and I was running some performance tests on it.
> Here are some observations about the Cygwin port performance:
> 
> The performance gap between the Linux and Cygwin versions is
> large - the Cygwin port takes at least 10 times longer than the
> linux version. Also, the Cygwin port takes longer if more plugins
> are run simultaneously i.e., it performances better with one plugin
> at a time than with ten plugins at a time (ten plugins = 10 
> fork() calls
> and 10 processes communicating over a pipe with the spawning
> process). I ran a total of 800 plugins with 1 plugin at a time, and
> it took 12 minutes on Cygwin! The linux version took just under a
> minute to finish. On linux, performance actually increases 
> with running
> more plugins simultaneously.
> 
> I am trying to find out why Nessus performance on Cygwin degrades
> when we run more plugins at a time.  Nessus uses a lot of 
> fork() calls,
> along with socket and pipe IO, and I was wondering whether these
> operations contribute to the large performance gap on Cygwin.


  This is a known issue.  forking is a *much* more system intensive process
under cygwin than native *nix; because the windoze API doesn't quite supply
the semantics needed by fork, cygwin has to do a whole boatload of extra
operations behind the scenes.  In particular I'd guess the requirement for
parent and child to wait and sync with each other at startup rather than
both just going at their own rate must cause a big performance hit.

  The cygwin overhead on sockets should be minimal; IIUIC it's a fairly thin
wrapper/shim layer over the native winsock.  Having said that, select (...)
is going to be heavier work on cygwin than on native, owing to the fact that
'doze has different types of handles for files and sockets which can't be
interspersed.



    cheers, 
      DaveK
-- 
Can't think of a witty .sigline today....


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019