Ticket #112 (closed task: fixed)

Opened 6 years ago

Last modified 3 years ago

Performance Problems /w paste.httpserver

Reported by: http://clarkevans.com/ Owned by: http://pjenvey.myopenid.com/
Priority: high Milestone: 1.4.1
Component: deploy Version:
Severity: major Keywords:
Cc:

Description

As pointed out by Amir Salihefendic <amix@…>, current httpserver performace is less than half that of CherryPy?'s implementation:  http://svn.cherrypy.org/trunk/cherrypy/_cpwsgiserver.py

This is most likely due to their thread-pooling vs. the brain-dead stuff that the built-in SimpleServer? does. There are a few items part of this transition:

  1. Work with CherryPy?'s code to add SSL and better HTTP/1.1 compliance
  1. Strip out code that isn't absolutely necessary.
  1. Replace httpserver.py with the result, and test like mad.

Ideally, the result could be put back into CherryPy?'s tree where we use an external link (they are BSD licensed same as us). However, if they do not accept our patches; we will fork and watch their code for changes -- a less than ideal situation.

Attachments

paste_httpserver.patch Download (7.5 KB) - added by james@… 6 years ago.
patch for thread pool.
paste_httpserver.2.patch Download (7.4 KB) - added by james@… 6 years ago.
patch for thread pool.

Change History

Changed 6 years ago by http://clarkevans.com/

  • owner changed from ianb to http://clarkevans.com/
  • status changed from new to assigned

Changed 6 years ago by anonymous

  • severity changed from normal to major
  • component changed from *paste to deploy
  • priority changed from low to high
  • version svn-trunk deleted
  • milestone set to 0.4
  • type set to task

 new mexico durable power of attorney  songtext craig david i just dont love you no more  card comic marvel  christian internet service provider  horney slut teen  atlanta dodge dealerships  band big blues blues clue dvd toons  boy we love  immobilien volksbank bonn  cream pie in pussy  gay club san jose california  car design game online  depeche mode policy of truth yesterday remix version 2002  design fireplace kitchen  throne of chaos mary lou is dead  de femme gratuit photo sexy  bikini in jessica simpson wallpaper  lauper cyndi true colors  orb ultraworld nine star 6 7 8 9  Ð¾Ñ„исная мебель рязань compare high speed internet prices  design estate real vt web  ringtones for motorola prepaid  nfl bet brain  come be with me and be my love  internet make own radio station  beach luxury vacation virginia  download virus i love you  label laser printer universal  commonwealth bank internet  bonus casino deposit no playtech  betting line vegas  dock easyshare kodak photo printer  best europe business school  travel agent houston texas  bmw auto sale  greer investment land  to busy being in love  coupon ipod mp3 player rebate  concert linkin park toronto  give you my love you still in my heart  clash what s my name  asbestos cancer law lawyer mesothelioma  airport car florida rental  free role playing computer game  casino job vacancies  florida fashion design schools  wedding fayre organisers  concert mental radiohead  cartoon lesbian picture

Changed 6 years ago by james@…

I think the thread pool is the real advantage here, not the other little tweaks in cpwsgiserver (like not using the SocketServer? framework to gain some method resolution speed or something).

Instead of adapting the cherrypy code we can just use the existing paste code, but replace the ThreadingMixIn? functionality with a different implementation for process_request that dispatches to a thread pool. This patch does exactly that.

Changed 6 years ago by james@…

patch for thread pool.

Changed 6 years ago by james@…

patch for thread pool.

Changed 6 years ago by http://pjenvey.myopenid.com/

  • status changed from assigned to new
  • owner changed from http://clarkevans.com/ to http://pjenvey.myopenid.com/

thanks james

FYI here's james' benchmarks:

 http://jamestaylor.org/files/paste_httpserver.readme

Changed 6 years ago by http://pjenvey.myopenid.com/

  • milestone changed from 0.4 to 0.9

Clark -

Could you provide more details about the 1.1 comliance paste might still lack compared to cherrypy?

If there's a lot involved there, it probably needs its own ticket

Obviously we have SSL now

Changed 6 years ago by http://pjenvey.myopenid.com/

  • status changed from new to closed
  • resolution set to fixed

Committed this in r5468

I've gone ahead and made the thread pooled server the default. It seems solid enough, and if anyone encounters problems with it they can switch it off with:

[server:main] use = egg:Paste#http use_threadpool = false

I bumped the default number of threads to 10 from the patch's default of 5

That can be changed in the [server:main] section as well:

threadpool_workers = 20

Thanks again James!

I'm closing this ticket out. Again, Clark, if there's some 1.1 compliance issues we need to work on, let's file a separate ticket

Changed 6 years ago by anonymous

Great resource. Really helpful for understand odbc things.

Thanks.

my email:googlefans@163.com

=============Some my site====================

1. wow gold

2. world of warcraft gold

3. wow gold

Changed 5 years ago by anonymous

  • milestone 0.9 deleted

Milestone 0.9 deleted

Note: See TracTickets for help on using tickets.