The Apache Haus Forum

Forum Topics => Apache 2.4 => Topic started by: mario on December 10, 2010, 03:32:46 PM

Title: 2.3.10
Post by: mario on December 10, 2010, 03:32:46 PM
Guess it will come next week or so. At least it compiles again on Windows ;-)

----


guess this will be the last alpha  :)
Title: Re: 2.3.10
Post by: Gregg on December 13, 2010, 08:54:47 PM
Quote from: mario on December 10, 2010, 03:32:46 PM
Guess it will come next week or so. At least it compiles again on Windows ;-)

Looks like that is today says the zen master

Quote from: mario on December 10, 2010, 03:32:46 PM
guess this will be the last alpha  :)

We'll see said the Zen Master

However, I think it's ok for beta.

Of course, you would have to watch a 'merican movie to understand the zen master bit, I am not calling myself one  ;D
Title: Re: 2.3.10
Post by: mario on December 13, 2010, 10:54:28 PM
I know only the Zen Master from MTv and there he's a very mean guy. How was it called? Fist of Zen or so.
This time there is this    suspicious pretest tarball again  ;)
Title: Re: 2.3.10
Post by: Gregg on December 13, 2010, 11:53:50 PM
Nope, screw MTV!

One day a young boy from a small town received a pony for his birthday.
Everyone in the town said "Oh, isn't that wonderful" to which the Zen Master replied, "We'll see."

A few weeks later the young boy fell off his pony and broke his leg.
Everyone in the town said "Oh, isn't that awful" to which the Zen Master replied, "We'll see."

Many years later war came to his country and all the young men were being called to fight except the young
man that had broken his leg when he fell from the pony all those years ago. Everyone in the town said "Oh,
isn't that wonderful" to which the Zen Master replied,

"We'll see."

I know, it's lame! It's message is probably lost if your understanding of English is not to good.
As I see it, it means do not try to predict the future outcome since you never know what could change the
future outcome between now and then.

IIRC this was said about 2.3.9, and that is where?  ;)
Title: Re: 2.3.10
Post by: mario on December 14, 2010, 11:54:53 AM
That pretty easy english to me (-:

OK than I tell: I think 2.3.10 is gonna happen
Title: Re: 2.3.10
Post by: Gregg on December 14, 2010, 07:45:16 PM
I do as well.

Why do I feel like he's waiting for me to say ok? I don't think that's the case but it feels that way again.
Title: Re: 2.3.10
Post by: DnvrSysEngr on December 14, 2010, 10:03:05 PM
Is there a scheduled release date for 2.3.10?  What new features/improvements will it have over 2.3.8?

- S
Title: Re: 2.3.10
Post by: Gregg on December 14, 2010, 10:17:59 PM
a few days unless something major is found.

The stuff below has been edited:

New features, not anything that I can think of at the moment, there's got to be something though.

as for changes, a lot;
http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?view=co

There is a change that could trip up your config.
mod_disk_cache has been renamed to mod_cache_disk.

We have them built, I'm working on the readme files.

What will change in our distro;

mod_fcgid 2.3.6b now instead of mod_fcgid 2.3.5b
No more mod_noloris, use mod_antiloris instead. This may require a config change.

Third Party Modules that will be included this time;
mod_antiloris/0.4.1
mod_geoip/1.2.5 w/ Sob's IPv6 additions noted here (https://forum.apachehaus.com/index.php?topic=50.0)
mod_limitipconn/0.23.1
mod_log_rotate/1.0.0
mod_macro/1.1.11
mod_security2/2.5.13.1

Hurray, some modules for 2.3! Blue ones should be considered experimental for various reasons. I am hoping you use some, let us know how they work for you.
Title: Re: 2.3.10
Post by: mario on December 17, 2010, 02:54:39 PM
2.3.10 feels fast

static content (html output from observer.php)

C:\Apache23\bin>ab -c 100 -n 10000 http://localhost/php/observer.htm
This is ApacheBench, Version 2.3 <$Revision: 1004962 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache/2.3
Server Hostname:        localhost
Server Port:            80

Document Path:          /php/observer.htm
Document Length:        629 bytes

Concurrency Level:      100
Time taken for tests:   5.594 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      8790000 bytes
HTML transferred:       6290000 bytes
Requests per second:    1787.73 [#/sec] (mean)
Time per request:       55.937 [ms] (mean)
Time per request:       0.559 [ms] (mean, across all concurrent requests)
Transfer rate:          1534.59 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.9      0      16
Processing:    16   55   8.5     62      78
Waiting:       16   55   8.5     62      78
Total:         16   56   8.5     62      78

Percentage of the requests served within a certain time (ms)
  50%     62
  66%     62
  75%     62
  80%     62
  90%     63
  95%     63
  98%     63
  99%     78
100%     78 (longest request)

C:\Apache23\bin>


dynamic content php over fcgid

C:\Apache23\bin>ab -c 100 -n 10000 http://localhost/php/observer.php
This is ApacheBench, Version 2.3 <$Revision: 1004962 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache/2.3
Server Hostname:        localhost
Server Port:            80

Document Path:          /php/observer.php
Document Length:        629 bytes

Concurrency Level:      100
Time taken for tests:   47.203 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      7490000 bytes
HTML transferred:       6290000 bytes
Requests per second:    211.85 [#/sec] (mean)
Time per request:       472.025 [ms] (mean)
Time per request:       4.720 [ms] (mean, across all concurrent requests)
Transfer rate:          154.96 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.9      0      16
Processing:     0  462 2578.3      0   45109
Waiting:        0  462 2578.4      0   45109
Total:          0  462 2578.3      0   45109

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%     16
  80%     16
  90%     16
  95%   1016
  98%  10000
  99%  13000
100%  45109 (longest request)

C:\Apache23\bin>


observer.php

<?php
interface observer {
    public function 
update(Observeable $Subject);
}
  
interface 
observeable {
public function attach(Observer $Observer);
    public function 
detach(Observer $Observer);
    public function 
notify();
}

class 
auto implements observeable {

    private 
$_Observers = Array();

    
//.... Eigenschaften vom auto ...
    // ...
    
public $Tank 100;

    public function 
attach(Observer $Observer){
        
$this->_Observers[] = $Observer;
    }
    
    public function 
detach(Observer $Observer){
        
$this->_Observers array_diff($this->_Observers, Array($Observer));
    }
    
    public function 
notify(){
        foreach(
$this->_Observers as $Observer){
            
$Observer->update($this);
        }
    }

    public function 
fahr($strecke){
if($this->Tank 1)
echo "Auto kann so nicht fahren :( Leider kein Tank ... <br/>";
$this->notify(); // Anzeige beobachten... 
echo "auto soll $strecke km fahren...<br/>";
// pro km verbraucht das auto 1l Tank
$tankNeu $this->Tank $strecke;

if($tankNeu <0){
$stecke $this->Tank;
$tankNeu 0;   
echo "Auto ist nach $this->Tank liegengeblieben :/... WIESO passt keiner auf die Anzeige auf?!?!?<br/>";
}
else 
{
echo "Auto ist gefahren ... (Noch ".($this->Tank-$strecke)." Liter im Tank ...)<br/>";  

$this->Tank $tankNeu;
    }
}

class 
superMegaAutomatischerTankBeobachter implements Observer{
public function update(Observeable $Subject){
if($Subject->Tank == 0){
echo "ALARM: TANK IST LEER <br/>";
}

if($Subject->Tank 5){
echo "ALARM: Bald Kein Tank mehr!!! Tank wird wieder gefuellt <br/>";
$Subject->Tank 100;
}

}


$Auto = new Auto;
$Auto->fahr(50);
$Auto->fahr(48); // Nun wird es knapp
$Auto->fahr(5);

echo 
"<h1>Nun mit Tank beobachtung...</h1>";
$Auto2 = new Auto;
$Auto2->attach(new superMegaAutomatischerTankBeobachter);
$Auto2->fahr(50);
$Auto2->fahr(48);
$Auto2->fahr(5)
?>

Title: Re: 2.3.10
Post by: Gregg on December 17, 2010, 05:02:29 PM
c:\Apache23\bin>ab -c 100 -n 10000 http://localhost/observer.php
This is ApacheBench, Version 2.3 <$Revision: 1004962 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
apr_socket_recv: An existing connection was forcibly closed by the remote host.   (730054)
Total of 5100 requests completed


[Fri Dec 17 08:00:27.015000 2010] [mpm_winnt:warn] [pid 3552:tid 1668] Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
Title: Re: 2.3.10
Post by: Gregg on December 17, 2010, 05:10:10 PM
I will assume it just needed some time to recover threads cause doing it again after a little time worked.

c:\Apache23\bin>ab -c 100 -n 10000 http://localhost/observer.php
This is ApacheBench, Version 2.3 <$Revision: 1004962 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache/2.3.10
Server Hostname:        localhost
Server Port:            80

Document Path:          /observer.php
Document Length:        629 bytes

Concurrency Level:      100
Time taken for tests:   55.244 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      9350000 bytes
HTML transferred:       6290000 bytes
Requests per second:    181.02 [#/sec] (mean)
Time per request:       552.440 [ms] (mean)
Time per request:       5.524 [ms] (mean, across all concurrent requests)
Transfer rate:          165.28 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.5      0       6
Processing:     5  534 2234.3     86   51111
Waiting:        4  534 2234.3     86   51111
Total:          5  534 2234.3     86   51111

Percentage of the requests served within a certain time (ms)
  50%     86
  66%     89
  75%     92
  80%     97
  90%    142
  95%   2085
  98%   9065
  99%  10765
100%  51111 (longest request)

c:\Apache23\bin>ab -c 100 -n 10000 http://localhost/observer.htm
This is ApacheBench, Version 2.3 <$Revision: 1004962 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache/2.3.10
Server Hostname:        localhost
Server Port:            80

Document Path:          /observer.htm
Document Length:        842 bytes

Concurrency Level:      100
Time taken for tests:   12.286 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      12320000 bytes
HTML transferred:       8420000 bytes
Requests per second:    813.93 [#/sec] (mean)
Time per request:       122.860 [ms] (mean)
Time per request:       1.229 [ms] (mean, across all concurrent requests)
Transfer rate:          979.27 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.5      0       8
Processing:    41  122  22.6    117     266
Waiting:       37  117  19.5    115     263
Total:         41  122  22.6    117     267

Percentage of the requests served within a certain time (ms)
  50%    117
  66%    120
  75%    121
  80%    124
  90%    152
  95%    175
  98%    194
  99%    206
100%    267 (longest request)
Title: Re: 2.3.10
Post by: mario on December 18, 2010, 01:20:16 PM
I got a new warning :) when I enabled extra/httpd-mpm.conf to inscrease some values.

[core:warn] [pid 4688:tid 284] MaxRequestsPerChild is deprecated, use MaxConnectionsPerChild instead.

Title: Re: 2.3.10
Post by: Gregg on December 19, 2010, 11:41:34 PM
I would imagine 2.3.10 will be released sometime on Monday the 20th USA time. I see enough binding votes and no objections. Not a huge turnout for voting this time around. I also have a couple other things to dump on the download page as well. Hopefully I'll get to it shortly after I see the source officially released.
Title: Re: 2.3.10
Post by: Gregg on December 20, 2010, 01:44:35 PM
Quote from: mario on December 18, 2010, 01:20:16 PM
I got a new warning :) when I enabled extra/httpd-mpm.conf to inscrease some values.

[core:warn] [pid 4688:tid 284] MaxRequestsPerChild is deprecated, use MaxConnectionsPerChild instead.

fixed in r1021924 two months ago, we need to update our configs
http://svn.apache.org/viewvc?view=revision&revision=1021924
Title: Re: 2.3.10
Post by: mario on December 20, 2010, 02:08:21 PM
The automatic generated config does that already only existing configs need the update :P
Title: Re: 2.3.10
Post by: mario on December 21, 2010, 05:42:31 PM
I made some performance tests. Best setting for PHP stuff (for me!)

Changed
FcgidMaxProcesses from 8 to 100
FcgidProcessLifeTime from 240 to 120
FcgidMaxRequestsPerProcess 500 to 10000

added
FcgidFixPathinfo 1

That change increased the req/s from 197 to 589
Time for the 10k requests went down from 53 secs to 16

Tested on XP SP3 (32bit) Intel Core Duo E7300 @ 2.66GHz 1.93GB RAM

Apache changed settings from default
ThreadsPerChild 500
access log turned off
ab test
ab -c 450 -n 10000 http://127.0.0.1/php/observer.php


Before I made those changes I noticed that the CPU was often idle even due high server load.

The html test variant are 761 req/s time 13 secs


------ edit -------

The info.lua script
took 27 secs and 366 req/s
Title: Re: 2.3.10
Post by: Gregg on December 21, 2010, 05:57:16 PM
Quote from: mario on December 20, 2010, 02:08:21 PM
The automatic generated config does that already only existing configs need the update :P

Yes, which I use cause it's already set up the way I want it. Drop on drive and start it up.
Title: Re: 2.3.10
Post by: Gregg on December 22, 2010, 10:37:29 AM
send me a zip with files and changes you think should change from what went in 2.3.10. I do see the change in threads per child to 150, blew up that one test for me till I gave it time to cool down from the previous test, I don't like that. I see it was changed from 250 to "match Unix" :-X  back 3 years ago yesterday. It's 150 in 2.2 also.
Title: Re: 2.3.10
Post by: mario on December 22, 2010, 03:55:34 PM
You mean r606133 (http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/extra/httpd-mpm.conf.in?r1=515403&r2=606133&pathrev=606133&diff_format=u)

I've changed only the extra/httpd-fcgid.conf, increased the ThreadsPerChild and disabled the access to serv faster. Well that for an intranet. on the www I hjave turned on logs.  ;)

Those are only default values. it is idiotic not to change the values for your needs and not to purge the config files. Mean remove not needed comments. Create your own include files.
Title: Re: 2.3.10
Post by: mario on December 24, 2010, 12:21:29 PM
What I also don't like is http://svn.apache.org/viewvc?rev=1052419&view=rev
Symlinks don't exist in Windows at all.
Title: Re: 2.3.10
Post by: Sob on December 24, 2010, 02:21:10 PM
Symlinks do exist, at least in Win7 (maybe in Vista too, but I'm not sure, I skipped that OS). Check mklink.exe. And my quick test says they're supported by Apache. Enabling or disabling FollowSymLinks makes difference.
Title: Re: 2.3.10
Post by: Gregg on December 24, 2010, 05:42:55 PM
The official word on the subject
https://issues.apache.org/bugzilla/show_bug.cgi?id=50395

Personally, I think the default ought to be None, but that's just me.
Title: Re: 2.3.10
Post by: Sob on December 24, 2010, 10:18:57 PM
shortcut (.lnk file) != symlink
Title: Re: 2.3.10
Post by: Gregg on December 25, 2010, 12:35:40 AM
True, but Bill's first sentence is "FWIW, Junctions are already supported as symlinks." ... whatever Junctions are
Title: Re: 2.3.10
Post by: Sob on December 25, 2010, 06:03:06 PM
From today's point of view junctions are strange kind of limited links for directories. Exception is ability to mount otherwise unmounted filesystem into empty directory. AFAIK it's not possible using soft links.
For current httpd there's no difference between them. Link is when APR reports it to be APR_FINFO_LINK. And it does that when Windows file attributes contain FILE_ATTRIBUTE_REPARSE_POINT (generally something that points to something else) and it's set for both junctions and soft links.