Design and performance

 
Post new topic   Reply to topic    Aprelium Forum Index -> General Questions
View previous topic :: View next topic  
Author Message
itpp13
-


Joined: 28 Aug 2013
Posts: 2

PostPosted: Wed Aug 28, 2013 7:42 pm    Post subject: Design and performance Reply with quote

Hello, looking at this product I have a few questions about the Windows version.

1. Windows has a hard coded file descriptor limit of 2048, is Abyss Web Server using the c-runtime to handle connections, if not what is the limit of simultaneous connections Abyss Web Server can handle given the available resources are limitless?
2. Is Abyss Web Server event-driven like nginx?
3. How does Abyss Web Server compare with nginx?
4. Does Abyss Web Server actually use multiple cores and if so can it be set to increase issue 1 by the number of cores?
5. Does Abyss Web Server have caching?

*1&4: using the api a single process can handle 16k connections simultaneously, with 2 cores that should be 32k.

To put it simple I am looking to replace nginx with something else which is properly developed for Windows without any of the excuses that performance can't be programmed as a poor excuse due to the lack of api knowledge.

Currently I am using nginx with many subroutine changes and getting fat-up with the nginx developers not putting in the effect for Windows.
Back to top View user's profile Send private message
aprelium-support
-


Joined: 20 Feb 2009
Posts: 356

PostPosted: Thu Aug 29, 2013 3:47 pm    Post subject: Re: Design and performance Reply with quote

[quote="itpp13"]1. Windows has a hard coded file descriptor limit of 2048, is Abyss Web Server using the c-runtime to handle connections, if not what is the limit of simultaneous connections Abyss Web Server can handle given the available resources are limitless?
[quote]

Abyss Web Server uses the Windows API directly and is not subject to the limitations of the C runtime. Depending on your Windows version, the maximum number of handles differs but is usually larger than 2048 (see http://blogs.technet.com/b/markrussinovich/archive/2009/09/29/3283844.aspx ).

Quote:
2. Is Abyss Web Server event-driven like nginx?


It uses a mixture of event-driven and classical threading. This is mainly to accommodate all versions of Windows (starting from 95) since not all support event-driven architectures.

Quote:
3. How does Abyss Web Server compare with nginx?


All depends on what you are going to compare. If you are going to hammer the server with a bunch of static files requests, nginx may win. But when you add scripting and Web applications to the load, Abyss Web Server takes the lead (and especially on Windows.) Anyway, do your own tests as it really depends on your applications and typical use cases.

Quote:
4. Does Abyss Web Server actually use multiple cores and if so can it be set to increase issue 1 by the number of cores?


Abyss Web Server will adapt itself to the available resources on your computer. So if you have more than one core, work will be balanced between these cores.

Quote:
5. Does Abyss Web Server have caching?


Are you referring to HTTP caching or to static file caching? The first is well implemented and the server negotiates with the clients without any special configuration. Static file caching is better done nowadays by the operating system. So depending on your RAM and your disks, the OS will optimize file access and the application hasn't to do that on its side (it's even a bad optimization that novice programmers tend to implement ignoring that they are replicating what the OS already does and better than them.)
_________________
Support Team
Aprelium - http://www.aprelium.com
Back to top View user's profile Send private message Visit poster's website
itpp13
-


Joined: 28 Aug 2013
Posts: 2

PostPosted: Fri Aug 30, 2013 7:43 pm    Post subject: Re: Design and performance Reply with quote

aprelium-support wrote:
All depends on what you are going to compare. If you are going to hammer the server with a bunch of static files requests, nginx may win. But when you add scripting and Web applications to the load, Abyss Web Server takes the lead (and especially on Windows.) Anyway, do your own tests as it really depends on your applications and typical use cases.


All clear except this one, what kind of back-end interface do you use? for example Apache embeds a php run-time as a child which is not really non-blocking event-driven, nginx uses a unix socket or tcp port, for windows you only have pipes (which php does not support) or tcp, I'd prefer a real pipe/socket on windows but no one seems to be able to program this. Tcp works good when using apc or xcache but with hundreds of concurrent users tcp won't be able to keep up which is why a unix socket works so much better, so what kind of method are you using to optimize back-end communication with for example php or ror?

For example a direct interface with php core thread safe and event driven could have a performance like a unix socket.
Back to top View user's profile Send private message
aprelium-support
-


Joined: 20 Feb 2009
Posts: 356

PostPosted: Mon Sep 09, 2013 7:09 pm    Post subject: Re: Design and performance Reply with quote

itpp13,

We invite you to check the configuration options of scripting parameters http://www.aprelium.com/data/doc/2/abyssws-win-doc-html/hosts-configuration.html#HOSTS-SCRIPTING .

There you can find reference to several modes of access to scripts/interpreters/Web applications. Actually Abyss Web Server supports more kinds of "interfaces" than the servers you named. FastCGI for example is support using TCP/IP, unix sockets on Unix, and Windows pipes on Windows.

Regarding the performance suggestions, we may surprise you. But the bottleneck when dealing with PHP and other scripting languages is not the connection to the Web server. Improving the connection speed between the Web server and the Web application isn't going to be noticeable. A language such as PHP or Ruby are already very slow and spend most of their times reading/compiling to byte code/executing the scripts.

Also we prefer sticking to standards (CGI/FastCGI/ISAPI) for maximum interoperability instead of inventing another solution (as Microsoft used to.)
_________________
Support Team
Aprelium - http://www.aprelium.com
Back to top View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Aprelium Forum Index -> General Questions All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB phpBB Group