Hello world, it would be great if we could move forward with the menu system. Therefore, I'd like to point your eyes to http://drupal.org/node/ 122876 (patch: permission checking for navigation block). Could we take a close look at that patch, and if possible, make suggestions for improvement/simplification. The sooner we can get the menu system back in shape, the better. And to make the new menu system accessible to developers, it should be as elegant as possible. Please give us a hand. Thanks, -- Dries Buytaert :: http://www.buytaert.net/
In particular, we need benchmarking help, soon I will post a simpler version which does a permission check for every menu item. I wonder how bad that is...
It is there. Please try enabling all core modules in Drupal 5 and bench the front page as anon. Then try the same in Drupal 6-dev.I am really interested in results.
In particular, we need benchmarking help, soon I will post a simpler version which does a permission check for every menu item. I wonder how bad that is...
Here are my results. Drupal 5, is today's checkout, HEAD is also today's checkout. Used ab2 -n20 http://5.example.com HEAD Requests per second: 19.78 [#/sec] (mean) Requests per second: 23.93 [#/sec] (mean) Requests per second: 19.81 [#/sec] (mean) Requests per second: 19.85 [#/sec] (mean) Used ab2 -n20 http://head.example.com Drupal 5 Requests per second: 18.58 [#/sec] (mean) Requests per second: 21.73 [#/sec] (mean) Requests per second: 18.35 [#/sec] (mean) Requests per second: 28.12 [#/sec] (mean) Server is an AMD 64 3000+ with a SATA 7200 Disk with 1GB RAM Ubuntu Edgy 6.10, Apache 2.0.55, MySQL 5.0.24, PHP 5.1.6 On 3/3/07, Karoly Negyesi <karoly@negyesi.net> wrote:
It is there. Please try enabling all core modules in Drupal 5 and bench the front page as anon. Then try the same in Drupal 6-dev.I am really interested in results.
In particular, we need benchmarking help, soon I will post a simpler version which does a permission check for every menu item. I wonder how bad that is...
-- 2bits.com http://2bits.com Drupal development, customization and consulting.
Here is a better set of data: HEAD ab2 -n20 http://head.example.com/| egrep "^Req|^Time" Time taken for tests: 1.16209 seconds Requests per second: 19.68 [#/sec] (mean) Time per request: 50.810 [ms] (mean) Time per request: 50.810 [ms] (mean, across all concurrent requests) Time taken for tests: 1.11599 seconds Requests per second: 19.77 [#/sec] (mean) Time per request: 50.580 [ms] (mean) Time per request: 50.580 [ms] (mean, across all concurrent requests) Time taken for tests: 1.10162 seconds Requests per second: 19.80 [#/sec] (mean) Time per request: 50.508 [ms] (mean) Time per request: 50.508 [ms] (mean, across all concurrent requests) Time taken for tests: 1.14755 seconds Requests per second: 19.71 [#/sec] (mean) Time per request: 50.738 [ms] (mean) Time per request: 50.738 [ms] (mean, across all concurrent requests) Time taken for tests: 1.11669 seconds Requests per second: 19.77 [#/sec] (mean) Time per request: 50.583 [ms] (mean) Time per request: 50.583 [ms] (mean, across all concurrent requests) 5 ab2 -n20 http://5.example.com/| egrep "^Req|^Time" Time taken for tests: 2.672659 seconds Requests per second: 7.48 [#/sec] (mean) Time per request: 133.633 [ms] (mean) Time per request: 133.633 [ms] (mean, across all concurrent requests) Time taken for tests: 1.87295 seconds Requests per second: 18.39 [#/sec] (mean) Time per request: 54.365 [ms] (mean) Time per request: 54.365 [ms] (mean, across all concurrent requests) Time taken for tests: 1.55900 seconds Requests per second: 18.94 [#/sec] (mean) Time per request: 52.795 [ms] (mean) Time per request: 52.795 [ms] (mean, across all concurrent requests) Time taken for tests: 0.887638 seconds Requests per second: 22.53 [#/sec] (mean) Time per request: 44.382 [ms] (mean) Time per request: 44.382 [ms] (mean, across all concurrent requests) Time taken for tests: 1.90529 seconds Requests per second: 18.34 [#/sec] (mean) Time per request: 54.526 [ms] (mean) Time per request: 54.526 [ms] (mean, across all concurrent requests) And here are two tests with 1000 requests each: ab2 -n1000 http://head.example.com/| egrep "^Req|^Time" Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Finished 1000 requests Time taken for tests: 33.209431 seconds Requests per second: 30.11 [#/sec] (mean) Time per request: 33.209 [ms] (mean) Time per request: 33.209 [ms] (mean, across all concurrent requests) ab2 -n1000 http://5.example.com/| egrep "^Req|^Time" Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Finished 1000 requests Time taken for tests: 37.155010 seconds Requests per second: 26.91 [#/sec] (mean) Time per request: 37.155 [ms] (mean) Time per request: 37.155 [ms] (mean, across all concurrent requests) On 3/4/07, Khalid Baheyeldin <kb@2bits.com> wrote:
Here are my results.
Drupal 5, is today's checkout, HEAD is also today's checkout.
Used ab2 -n20 http://5.example.com HEAD Requests per second: 19.78 [#/sec] (mean) Requests per second: 23.93 [#/sec] (mean) Requests per second: 19.81 [#/sec] (mean) Requests per second: 19.85 [#/sec] (mean)
Used ab2 -n20 http://head.example.com Drupal 5 Requests per second: 18.58 [#/sec] (mean) Requests per second: 21.73 [#/sec] (mean) Requests per second: 18.35 [#/sec] (mean) Requests per second: 28.12 [#/sec] (mean)
Server is an AMD 64 3000+ with a SATA 7200 Disk with 1GB RAM Ubuntu Edgy 6.10, Apache 2.0.55, MySQL 5.0.24, PHP 5.1.6
On 3/3/07, Karoly Negyesi <karoly@negyesi.net> wrote:
It is there. Please try enabling all core modules in Drupal 5 and bench the front page as anon. Then try the same in Drupal 6-dev.I am really interested in results.
In particular, we need benchmarking help, soon I will post a simpler version which does a permission check for every menu item. I wonder how bad that is...
-- 2bits.com http://2bits.com Drupal development, customization and consulting.
-- 2bits.com http://2bits.com Drupal development, customization and consulting.
I wonder right off why HEAD's times are so much more level and predictable (smaller standard deviation) than 5's? Especially since my gut feeling is that 5 is much more predictable and regular than 4.7. Congrats to chx and company for this work... it seems that Drupal 6 will indeed be faster than 5 by virtue of the menu rewrite. Khalid Baheyeldin wrote:
Here is a better set of data:
HEAD ab2 -n20 http://head.example.com/| <http://head.example.com/%7C> egrep "^Req|^Time"
Time taken for tests: 1.16209 seconds Requests per second: 19.68 [#/sec] (mean) Time per request: 50.810 [ms] (mean) Time per request: 50.810 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.11599 seconds Requests per second: 19.77 [#/sec] (mean) Time per request: 50.580 [ms] (mean) Time per request: 50.580 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.10162 seconds Requests per second: 19.80 [#/sec] (mean) Time per request: 50.508 [ms] (mean) Time per request: 50.508 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.14755 seconds Requests per second: 19.71 [#/sec] (mean) Time per request: 50.738 [ms] (mean) Time per request: 50.738 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.11669 seconds Requests per second: 19.77 [#/sec] (mean) Time per request: 50.583 [ms] (mean) Time per request: 50.583 [ms] (mean, across all concurrent requests)
5 ab2 -n20 http://5.example.com/| <http://5.example.com/%7C> egrep "^Req|^Time" Time taken for tests: 2.672659 seconds Requests per second: 7.48 [#/sec] (mean) Time per request: 133.633 [ms] (mean) Time per request: 133.633 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.87295 seconds Requests per second: 18.39 [#/sec] (mean) Time per request: 54.365 [ms] (mean) Time per request: 54.365 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.55900 seconds Requests per second: 18.94 [#/sec] (mean) Time per request: 52.795 [ms] (mean) Time per request: 52.795 [ms] (mean, across all concurrent requests)
Time taken for tests: 0.887638 seconds Requests per second: 22.53 [#/sec] (mean) Time per request: 44.382 [ms] (mean) Time per request: 44.382 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.90529 seconds Requests per second: 18.34 [#/sec] (mean) Time per request: 54.526 [ms] (mean) Time per request: 54.526 [ms] (mean, across all concurrent requests)
And here are two tests with 1000 requests each:
ab2 -n1000 http://head.example.com/| <http://head.example.com/%7C> egrep "^Req|^Time" Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Finished 1000 requests Time taken for tests: 33.209431 seconds Requests per second: 30.11 [#/sec] (mean) Time per request: 33.209 [ms] (mean) Time per request: 33.209 [ms] (mean, across all concurrent requests)
ab2 -n1000 http://5.example.com/| <http://5.example.com/%7C> egrep "^Req|^Time" Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Finished 1000 requests Time taken for tests: 37.155010 seconds Requests per second: 26.91 [#/sec] (mean) Time per request: 37.155 [ms] (mean) Time per request: 37.155 [ms] (mean, across all concurrent requests)
On 3/4/07, *Khalid Baheyeldin* <kb@2bits.com <mailto:kb@2bits.com>> wrote:
Here are my results.
Drupal 5, is today's checkout, HEAD is also today's checkout.
Used ab2 -n20 http://5.example.com HEAD Requests per second: 19.78 [#/sec] (mean) Requests per second: 23.93 [#/sec] (mean) Requests per second: 19.81 [#/sec] (mean) Requests per second: 19.85 [#/sec] (mean)
Used ab2 -n20 http://head.example.com <http://head.example.com> Drupal 5 Requests per second: 18.58 [#/sec] (mean) Requests per second: 21.73 [#/sec] (mean) Requests per second: 18.35 [#/sec] (mean) Requests per second: 28.12 [#/sec] (mean)
Server is an AMD 64 3000+ with a SATA 7200 Disk with 1GB RAM Ubuntu Edgy 6.10, Apache 2.0.55, MySQL 5.0.24, PHP 5.1.6
On 3/3/07, *Karoly Negyesi* < karoly@negyesi.net <mailto:karoly@negyesi.net>> wrote:
It is there. Please try enabling all core modules in Drupal 5 and bench the front page as anon. Then try the same in Drupal 6-dev.I am really interested in results.
> In particular, we need benchmarking help, soon I will post a simpler version which does a permission check for every menu item. I wonder how bad that is... >
-- 2bits.com <http://2bits.com> http://2bits.com Drupal development, customization and consulting.
-- 2bits.com <http://2bits.com> http://2bits.com Drupal development, customization and consulting.
-- * * * * * Lullabot's First Ever Advanced Workshops Are Here! Drupal API & Module Building - Advanced Drupal Themeing April 9th-13th - Providence, RI Early Bird Discounts Available Now http://www.lullabot.com/training * * * * *
I should clarify that this AMD machine is a test server, and has CoolnQuiet turned on in the BIOS. So, it reduces its frequency to 1GHz when idle, and goes up to 1.8when busy. I can't remember if the disk has power saving too or not, but that can account for the variance. This is why the last benchmark did 1000 requests in one row, The other factor is MySQL query cache, but again, that would be off at most for the first request, and on for the 999 following it, so it should not be a factor in the last test. Can someone else chip in with other benchmarks to validate my results? On 3/5/07, Robert Douglass <rob@robshouse.net> wrote:
I wonder right off why HEAD's times are so much more level and predictable (smaller standard deviation) than 5's? Especially since my gut feeling is that 5 is much more predictable and regular than 4.7.
Congrats to chx and company for this work... it seems that Drupal 6 will indeed be faster than 5 by virtue of the menu rewrite.
Khalid Baheyeldin wrote:
Here is a better set of data:
HEAD ab2 -n20 http://head.example.com/| <http://head.example.com/%7C> egrep "^Req|^Time"
Time taken for tests: 1.16209 seconds Requests per second: 19.68 [#/sec] (mean) Time per request: 50.810 [ms] (mean) Time per request: 50.810 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.11599 seconds Requests per second: 19.77 [#/sec] (mean) Time per request: 50.580 [ms] (mean) Time per request: 50.580 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.10162 seconds Requests per second: 19.80 [#/sec] (mean) Time per request: 50.508 [ms] (mean) Time per request: 50.508 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.14755 seconds Requests per second: 19.71 [#/sec] (mean) Time per request: 50.738 [ms] (mean) Time per request: 50.738 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.11669 seconds Requests per second: 19.77 [#/sec] (mean) Time per request: 50.583 [ms] (mean) Time per request: 50.583 [ms] (mean, across all concurrent requests)
5 ab2 -n20 http://5.example.com/| <http://5.example.com/%7C> egrep "^Req|^Time" Time taken for tests: 2.672659 seconds Requests per second: 7.48 [#/sec] (mean) Time per request: 133.633 [ms] (mean) Time per request: 133.633 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.87295 seconds Requests per second: 18.39 [#/sec] (mean) Time per request: 54.365 [ms] (mean) Time per request: 54.365 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.55900 seconds Requests per second: 18.94 [#/sec] (mean) Time per request: 52.795 [ms] (mean) Time per request: 52.795 [ms] (mean, across all concurrent requests)
Time taken for tests: 0.887638 seconds Requests per second: 22.53 [#/sec] (mean) Time per request: 44.382 [ms] (mean) Time per request: 44.382 [ms] (mean, across all concurrent requests)
Time taken for tests: 1.90529 seconds Requests per second: 18.34 [#/sec] (mean) Time per request: 54.526 [ms] (mean) Time per request: 54.526 [ms] (mean, across all concurrent requests)
And here are two tests with 1000 requests each:
ab2 -n1000 http://head.example.com/| <http://head.example.com/%7C> egrep "^Req|^Time" Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Finished 1000 requests Time taken for tests: 33.209431 seconds Requests per second: 30.11 [#/sec] (mean) Time per request: 33.209 [ms] (mean) Time per request: 33.209 [ms] (mean, across all concurrent requests)
ab2 -n1000 http://5.example.com/| <http://5.example.com/%7C> egrep "^Req|^Time" Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Finished 1000 requests Time taken for tests: 37.155010 seconds Requests per second: 26.91 [#/sec] (mean) Time per request: 37.155 [ms] (mean) Time per request: 37.155 [ms] (mean, across all concurrent requests)
On 3/4/07, *Khalid Baheyeldin* <kb@2bits.com <mailto:kb@2bits.com>> wrote:
Here are my results.
Drupal 5, is today's checkout, HEAD is also today's checkout.
Used ab2 -n20 http://5.example.com HEAD Requests per second: 19.78 [#/sec] (mean) Requests per second: 23.93 [#/sec] (mean) Requests per second: 19.81 [#/sec] (mean) Requests per second: 19.85 [#/sec] (mean)
Used ab2 -n20 http://head.example.com <http://head.example.com> Drupal 5 Requests per second: 18.58 [#/sec] (mean) Requests per second: 21.73 [#/sec] (mean) Requests per second: 18.35 [#/sec] (mean) Requests per second: 28.12 [#/sec] (mean)
Server is an AMD 64 3000+ with a SATA 7200 Disk with 1GB RAM Ubuntu Edgy 6.10, Apache 2.0.55, MySQL 5.0.24, PHP 5.1.6
On 3/3/07, *Karoly Negyesi* < karoly@negyesi.net <mailto:karoly@negyesi.net>> wrote:
It is there. Please try enabling all core modules in Drupal 5 and bench the front page as anon. Then try the same in Drupal 6-dev.I am really interested in results.
> In particular, we need benchmarking help, soon I will post a simpler version which does a permission check for every menu item. I wonder how bad that is... >
-- 2bits.com <http://2bits.com> http://2bits.com Drupal development, customization and consulting.
-- 2bits.com <http://2bits.com> http://2bits.com Drupal development, customization and consulting.
-- * * * * * Lullabot's First Ever Advanced Workshops Are Here! Drupal API & Module Building - Advanced Drupal Themeing April 9th-13th - Providence, RI Early Bird Discounts Available Now http://www.lullabot.com/training * * * * *
-- 2bits.com http://2bits.com Drupal development, customization and consulting.
Robert Douglass wrote:
I wonder right off why HEAD's times are so much more level and predictable (smaller standard deviation) than 5's? Especially since my gut feeling is that 5 is much more predictable and regular than 4.7.
In unstructured testing, I noticed that pulling large amounts of data from cache tends to have wildly variable times; this could potentially explain some of the speed differences.
The previous tests were with APC on. At a whim, I ran them with APC off, and here are the results. $ ab2 -n1000 http://head.example.com/| egrep "^Req|^Time" Time taken for tests: 175.623664 seconds Requests per second: 5.69 [#/sec] (mean) Time per request: 175.624 [ms] (mean) Time per request: 175.624 [ms] (mean, across all concurrent requests) $ ab2 -n1000 http://5.example.com/| egrep "^Req|^Time" Time taken for tests: 183.491533 seconds Requests per second: 5.45 [#/sec] (mean) Time per request: 183.492 [ms] (mean) Time per request: 183.492 [ms] (mean, across all concurrent requests) Still HEAD is better, but not by a big margin. -- 2bits.com http://2bits.com Drupal development, customization and consulting.
On 05 Mar 2007, at 00:11, Khalid Baheyeldin wrote:
HEAD ab2 -n20 http://head.example.com/| egrep "^Req|^Time"
You'll want to bump that 20 to 2000 or so. I'm a bit disappointed by the results of HEAD. It's faster, but not much. I was under the impression that the biggest win of the new menu system would be a nice performance gain ... -- Dries Buytaert :: http://www.buytaert.net/
You'll want to bump that 20 to 2000 or so. I'm a bit disappointed by the results of HEAD. It's faster, but not much. I was under the impression that the biggest win of the new menu system would be a nice performance gain ...
The menu system is indeed faster, the navblock is not or not significantly, but it's not slower either.I guess we will end up around 5-10% faster than D5. The big gains are a maintainable menu.inc . There are bugs in the old menu system which are unfixable. There are bugs which are probably fixable but needs rha/jonbob both of whom are mostly missing from the project.Also, !$may_cache is a mess.
Dries Buytaert wrote:
On 05 Mar 2007, at 00:11, Khalid Baheyeldin wrote:
HEAD ab2 -n20 http://head.example.com/| egrep "^Req|^Time"
You'll want to bump that 20 to 2000 or so. I'm a bit disappointed by the results of HEAD. It's faster, but not much. I was under the impression that the biggest win of the new menu system would be a nice performance gain ...
sites that don't use navigation block (which means most designed sites) should be much better off. even if performance gain were small, memory gain is substantial. i have no benchmarks to back that up though.
On 3/6/07, Moshe Weitzman <weitzman@tejasa.com> wrote:
Dries Buytaert wrote:
On 05 Mar 2007, at 00:11, Khalid Baheyeldin wrote:
HEAD ab2 -n20 http://head.example.com/| egrep "^Req|^Time"
You'll want to bump that 20 to 2000 or so. I'm a bit disappointed by the results of HEAD. It's faster, but not much. I was under the impression that the biggest win of the new menu system would be a nice performance gain ...
sites that don't use navigation block (which means most designed sites) should be much better off. even if performance gain were small, memory gain is substantial. i have no benchmarks to back that up though.
Can't that be verified by using the devel module with the memory option set? Or is it more than that? -- 2bits.com http://2bits.com Drupal development, customization and consulting.
On 3/6/07, Dries Buytaert <dries.buytaert@gmail.com> wrote:
On 05 Mar 2007, at 00:11, Khalid Baheyeldin wrote:
HEAD ab2 -n20 http://head.example.com/| egrep "^Req|^Time"
You'll want to bump that 20 to 2000 or so. I'm a bit disappointed by the results of HEAD. It's faster, but not much. I was under the impression that the biggest win of the new menu system would be a nice performance gain ...
Dries Check my later emails in the chain. There are tests with 1000 requests with and without APC on both HEAD and 5.x . -- 2bits.com http://2bits.com Drupal development, customization and consulting.
participants (6)
-
Dries Buytaert -
Earl Miles -
Karoly Negyesi -
Khalid Baheyeldin -
Moshe Weitzman -
Robert Douglass