typo on cherokee+uwsgi before testing total should be 31064

-Thadeus





On Fri, Feb 26, 2010 at 1:21 AM, Thadeus Burgess <[email protected]> wrote:
> I did some interesting ab testing with cherokee / apache. Both
> installed on the same server, running the exact same web2py app. My
> apache only runs mod_wsgi, no ruby on this server!
>
> At server bootup, visiting the homepage of the app once for apache and
> once for cherokee, this is the RSS footprint as to ps aux.
>
> 5296 Cherokee
> 25768 uWSGI
>
> Total: 49948 Cherokee + uWSGI
>
> 56744 Apache
> 33672 mod_wsgi
>
> Total: 90416 Apache + mod_wsgi
>
> Now after running the following command  (thadeusb.com is apache,
> thadeusb.com:50002 is cherokee)
>
> ab -n 200 -c 15 http://thadeusb.com/weblog && ab -n 200 -c 15
> http://thadeusb.com:50002/thadeusb/weblog/
>
> This is the RSS footprints, taken right after this small test.
>
> 5954 Cherokee
> 32120 uWSGI
>
> Total: 38074 Cherokee + uWSGI
>
> 91252 - Apache
> 95452 - mod_wsgi
>
> Total: 186704 Apache + mod_wsgi
>
> All I can say is... good bologna! What has happened to apache and
> mod_wsgi???? 186MB!!! When Cherokee was at a happy 38MB after this
> test! Preposterous!
>
> Though to give it credit, my real test here is speed, and cherokee is
> only a tad bit faster at serving web2py apps than apache, so the only
> real benefit gained by using cherokee over apache is A) Admin
> interface and B) low memory footprint.
>
> Anyways, below are the actual ps aux printouts in order.
>
>
> Before testing:
>
> root      2932  0.0  0.4  32604  1440 ?        Ssl  00:38   0:00
> /usr/sbin/cherokee --admin_child -C /etc/cherokee/cherokee.conf
> www-data  2936  0.0  1.1 212936  3856 ?        Sl   00:38   0:00
> /usr/sbin/cherokee-worker --admin_child -C /etc/cherokee/cherokee.conf
>
> www-data  2484  0.1 10.2 337836 33672 ?        Sl   Feb25   0:02
> (wsgi:thadeusb)   -k start
> www-data  2929  0.8  7.8 128500 25768 ?        S    00:38   0:01
> /usr/local/bin/uwsgi -s 127.0.0.1 -t 10 -M -p 1 -C -x
> /home/thadeusb/web2py/uwsgi.xml
>
> root      2467  0.0  2.0  93536  6816 ?        Ss   Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2482  0.0  1.5 232796  5160 ?        Sl   Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2483  0.0  1.5 232796  5160 ?        Sl   Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2486  0.0  1.7  93724  5692 ?        S    Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2537  0.0  1.7  93724  5652 ?        S    Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2538  0.0  1.7  93716  5652 ?        S    Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2539  0.0  1.7  93724  5712 ?        S    Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2540  0.0  1.7  93724  5688 ?        S    Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2648  0.0  1.6  93536  5516 ?        S    00:02   0:00
> /usr/sbin/apache2 -k start
> www-data  2665  0.0  1.7  93732  5656 ?        S    00:04   0:00
> /usr/sbin/apache2 -k start
>
>
> after testing
>
> root      2932  0.0  0.2  32604   692 ?        Ssl  00:38   0:00
> /usr/sbin/cherokee --admin_child -C /etc/cherokee/cherokee.conf
> www-data  2936  0.0  0.6 215112  2264 ?        Sl   00:38   0:00
> /usr/sbin/cherokee-worker --admin_child -C /etc/cherokee/cherokee.conf
> thadeusb  3826  0.0  0.2   7336   876 pts/1    R+   01:04   0:00 grep cherokee
> www-data  2929  7.0  7.5 155924 32120 ?        S    00:38   1:48
> /usr/local/bin/uwsgi -s 127.0.0.1 -t 10 -M -p 1 -C -x
> /home/thadeusb/web2py/uwsgi.xml
> www-data  3345 14.2 29.0 550772 95452 ?        Sl   00:59   0:36
> (wsgi:thadeusb)   -k start
> thadeusb  3828  0.0  0.2   7336   876 pts/1    R+   01:04   0:00 grep wsgi
> root      2467  0.0  0.9  93536  3172 ?        Ss   Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2482  0.0  0.5 232796  1832 ?        Sl   Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2483  0.0  0.5 232796  1832 ?        Sl   Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2486  0.0  0.7  93724  2540 ?        S    Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2537  0.0  0.7  93724  2536 ?        S    Feb25   0:00
> /usr/sbin/apache2 -k start
> www-data  2539  0.0  0.0      0     0 ?        Z    Feb25   0:00
> [apache2] <defunct>
> www-data  3471  0.0  0.7  93672  2492 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3482  0.0  0.7  93672  2492 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3483  0.0  0.7  93672  2492 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3485  0.0  0.7  93672  2492 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3510  0.0  0.7  93672  2536 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3511  0.0  0.7  93672  2504 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3512  0.0  0.7  93672  2508 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3514  0.0  0.7  93672  2504 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3515  0.0  0.7  93672  2532 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3516  0.0  0.7  93672  2528 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3520  0.0  0.7  93672  2520 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3521  0.0  0.7  93672  2524 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3522  0.0  0.7  93672  2532 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3523  0.0  0.8  93672  2668 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3524  0.0  0.8  93672  2668 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3535  0.0  0.8  93672  2932 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3537  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3538  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3539  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3540  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3541  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3542  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3543  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3545  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3548  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3550  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3551  0.0  0.8  93672  2932 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3552  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> www-data  3555  0.0  0.8  93672  2936 ?        S    01:03   0:00
> /usr/sbin/apache2 -k start
> thadeusb  3830  0.0  0.2   7340   884 pts/1    S+   01:04   0:00 grep apache
>
> -Thadeus
>
>
>
>
>
> On Fri, Feb 26, 2010 at 12:36 AM, Thadeus Burgess <[email protected]> 
> wrote:
>> I was able to get the server started with my SSL pem files. It was
>> quite easily actually, I just was only putting the path to the .pem
>> file in one of the text boxes, not both. (silly me)
>>
>> Anyways, it seems that uwsgi does not pass the correct 
>> request.env.remote_addr.
>>
>> This is the relative information passed to request.env using uwsgi.
>> running on SSL (firefox displays its nice little blue box around the
>> domain verifying that I am indeed using my SSL cert, oh and I had to
>> go through the whole "security exception" thing firefox likes to do)
>>
>> 'wsgi_url_scheme': 'http', 'server_name': 'thadeusb.com', 'https': 'on',
>>
>> If I alter admin to check for https==on then it works. I am wondering
>> this must be a bug in uwsgi ?
>>
>> if request.env.http_x_forwarded_for or request.env.wsgi_url_scheme\
>>     in ['https', 'HTTPS'] or request.env.https == 'on':
>>
>> Here is the full contents of request.env
>>
>> <Storage {'content_length': '0', 'http_user_agent': 'Mozilla/5.0 (X11;
>> U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic)
>> Firefox/3.5.8', 'script_name': '', 'wsgi_errors': <open file
>> 'wsgi_input', mode 'w' at 0x24a02d8>, 'server_protocol': 'HTTP/1.1',
>> 'http_cache_control': 'max-age=0', 'web2py_path':
>> '/home/thadeusb/web2py', 'http_accept':
>> 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
>> 'wsgi_url_scheme': 'http', 'server_name': 'thadeusb.com',
>> 'remote_port': '42400', 'http_accept_language': 'en-us,en;q=0.5',
>> 'wsgi_version': (1, 0), 'request_method': 'GET', 'script_url':
>> '/admin', 'server_port': '50003', 'wsgi_input': <open file
>> 'wsgi_input', mode 'r' at 0x24a01c8>, 'server_addr':
>> '174.143.155.212', 'document_root': '/home/thadeusb/web2py',
>> 'wsgi_multithread': False, 'http_accept_charset':
>> 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'https': 'on', 'http_cookie':
>> '__utma=226599768.612546542.1262501624.1267163250.1267163748.37;
>> __utmz=226599768.1266549488.30.3.utmcsr=sikbox.com|utmccn=(referral)|utmcmd=referral|utmcct=/;
>> session_id_init=75-27-133-239-23cdebe9-e999-47ca-be3d-57e5b64b0c96;
>> __utmb=226599768.1.10.1267163748; __utmc=226599768;
>> session_id_welcome=75-27-133-239-20d264d8-0607-4ef7-ba26-455fd1c21cbb;
>> session_id_admin=75-27-133-239-550561b2-eaa8-41b2-a962-76595c193823',
>> 'server_software': 'Cherokee/0.99.43 (Ubuntu)', 'web2py_version':
>> 'Version 1.75.4 (2010-02-18 14:55:03)\n', 'http_host':
>> 'thadeusb.com:50003', 'wsgi_multiprocess': False, 'path':
>> '/bin:/usr/bin:/sbin:/usr/sbin', 'request_uri': '/admin',
>> 'http_connection': 'keep-alive', 'wsgi_file_wrapper': <built-in
>> function uwsgi_sendfile>, 'gateway_interface': 'CGI/1.1',
>> 'http_keep_alive': '300', 'remote_addr': '75.27.133.239',
>> 'http_accept_encoding': 'gzip,deflate', 'server_signature':
>> '<address>Cherokee Web Server</address>', 'path_translated':
>> '/home/thadeusb/web2py/admin', 'query_string': '', 'wsgi_run_once':
>> False, 'path_info': '/admin'}>
>>
>> -Thadeus
>>
>>
>>
>>
>>
>> On Thu, Feb 25, 2010 at 4:46 PM, Thadeus Burgess <[email protected]> 
>> wrote:
>>> Actually, SSL is not out of the scope of this entry.
>>>
>>> How do you expect me to access admin, or appadmin for that matter?
>>>
>>> I can't use web2py without SSL :)
>>>
>>> I have tried everything but it just keeps giving me an error saying
>>> something is wrong with my .pem file, but not telling me "what" is
>>> wrong. I even used the make-cert.sh that comes with cherokee.
>>>
>>> -Thadeus
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Feb 25, 2010 at 4:42 PM, GrayMatterComputing
>>> <[email protected]> wrote:
>>>> The guide is fine, it just needs to be Followed Step By Step without
>>>> skipping. ;)
>>>> I also figured the SSL and all was easy enough to find and, again,
>>>> outside the scope of this entry.
>>>>
>>>> On Feb 25, 4:47 pm, Thadeus Burgess <[email protected]> wrote:
>>>>> The following packages are not installed by the PPA...
>>>>>
>>>>> cherokee-doc
>>>>> libcherokee-mod-geoip
>>>>> libcherokee-mod-ldap
>>>>> libcherokee-mod-libssl
>>>>> libcherokee-mod-mysql
>>>>> libcherokee-mod-rrd
>>>>> libcherokee-mod-streaming
>>>>>
>>>>> Installing libcherokee-mod-libssl fixes this.
>>>>>
>>>>> Also they have a great article on creating and signing your own ssl
>>>>> key, it seems the one I am using for apache setup is invalid :)
>>>>>
>>>>> -Thadeus
>>>>>
>>>>> On Thu, Feb 25, 2010 at 3:36 PM, Thadeus Burgess <[email protected]> 
>>>>> wrote:
>>>>> > Don't forget to hit save :)0
>>>>>
>>>>> > And how to enable SSL, and use my self signed certificate, OR use a
>>>>> > paid for certificate?
>>>>>
>>>>> > -Thadeus
>>>>>
>>>>> > On Thu, Feb 25, 2010 at 3:25 PM, Thadeus Burgess 
>>>>> > <[email protected]> wrote:
>>>>> >> Also, emphasis the fact of using the PPA method of installing, and
>>>>> >> provide instructions on how to do this, and a link to that page. The
>>>>> >> reason it was not working was I installed 0.99.19 instead of 0.99.43.
>>>>>
>>>>> >> -Thadeus
>>>>>
>>>>> >> On Thu, Feb 25, 2010 at 2:27 PM, Thadeus Burgess 
>>>>> >> <[email protected]> wrote:
>>>>> >>> A couple of suggestions with the slice
>>>>>
>>>>> >>> Make a note, for buildinguwsgi, that there are makefile.py25 and
>>>>> >>> others so that you can build it for the python version that you want.
>>>>>
>>>>> >>> Do include the little ``ssh -L 9090:localhost:9090 remote_IP`` trick
>>>>> >>> to securely connect to cherokee admin.
>>>>>
>>>>> >>> I do not seeuWSGIlisted under Wizards->Platforms. I do not see it
>>>>> >>> anywhere else.
>>>>>
>>>>> >>> I can run ``uwsgi`` from command line, so it is installed correctly 
>>>>> >>> in my bin.
>>>>>
>>>>> >>> The only difference is I have /web2py and /web2py/config.xml does 
>>>>> >>> this matter?
>>>>>
>>>>> >>> -Thadeus
>>>>>
>>>>> >>> On Thu, Feb 25, 2010 at 10:07 AM, Thadeus Burgess 
>>>>> >>> <[email protected]> wrote:
>>>>> >>>> Can I have cherokeeuwsgiand apache mod_wsgi running on the same
>>>>> >>>> web2py code base or should I make a copy so cherokee can execute it ?
>>>>>
>>>>> >>>> You are right I could run cherokee on a non-standard port for testing
>>>>> >>>> and always switch it over when I am happy with it!
>>>>>
>>>>> >>>> -Thadeus
>>>>>
>>>>> >>>> On Wed, Feb 24, 2010 at 11:30 PM, GrayMatterComputing
>>>>> >>>> <[email protected]> wrote:
>>>>> >>>>> @Thadeus
>>>>>
>>>>> >>>>> For me, it was a breeze to switch from Apache to Cherokee. I was 
>>>>> >>>>> happy
>>>>> >>>>> with Apache too, but I used the fact that a client wanted Cherokee 
>>>>> >>>>> as
>>>>> >>>>> an opportunity to give it a try, and I am glad I did :) Besides, it 
>>>>> >>>>> is
>>>>> >>>>> not like you would have to remove Apache to use Cherokee, so what 
>>>>> >>>>> are
>>>>> >>>>> you waiting for (besides possibly a free hour), give it a try!
>>>>>
>>>>> >>>>> @mr.freeze and everyone else
>>>>>
>>>>> >>>>> This guide has been posted 
>>>>> >>>>> athttp://www.web2pyslices.com/main/slices/take_slice/64
>>>>> >>>>> and will appear on graymattercomputing.net in the near future.
>>>>>
>>>>> >>>>> On Feb 24, 6:05 am, "mr.freeze" <[email protected]> wrote:
>>>>> >>>>>> This is really helpful. Unfortunately, it will be lost on this 
>>>>> >>>>>> mailing
>>>>> >>>>>> list in a month or so.  Care to make a 
>>>>> >>>>>> slice?http://www.web2pyslices.com/main/default/index
>>>>>
>>>>> >>>>>> On Feb 23, 2:56 pm, GrayMatterComputing <[email protected]> 
>>>>> >>>>>> wrote:
>>>>>
>>>>> >>>>>> > web2py with Cherokee viauWSGI: a simple, easy guide
>>>>> >>>>>> > (written specifically for Ubuntu, but applicable to all systems)
>>>>> >>>>>> > By: Evan Gray - GrayMatterComputing
>>>>>
>>>>> >>>>>> > 1) web2py
>>>>> >>>>>> >  a) Download web2py (found at web2py.com)
>>>>> >>>>>> >   i) Install python, if not present: sudo apt-get install python
>>>>> >>>>>> >  b) Unzip (to /var/web2py)
>>>>> >>>>>> >  c) Run: sudo python /var/web2py/web2py.py -a desiredpassword
>>>>> >>>>>> >  d) Verify that it functions properly (by visiting 
>>>>> >>>>>> > localhost:8000),
>>>>> >>>>>> > then close the server (Ctrl+C in terminal)
>>>>> >>>>>> >  e) Allow server permission to web2py: sudo chown -hR www-data\: 
>>>>> >>>>>> > /var/
>>>>> >>>>>> > web2py
>>>>> >>>>>> >   i) Where "www-data" is Cherokee's effective user (www-data is 
>>>>> >>>>>> > the
>>>>> >>>>>> > default)
>>>>>
>>>>> >>>>>> > 2)uWSGI
>>>>> >>>>>> >  a) DownloaduWSGI(found at projects.unbit.it/uwsgi/)
>>>>> >>>>>> >  b) Unpackage wherever and cd into folder
>>>>> >>>>>> >   i) Install dependencies for make, if not present: sudo apt-get
>>>>> >>>>>> > install python-dev libxml2-dev
>>>>> >>>>>> >  c) Makeuwsgi: sudo make -f Makefile.Py26
>>>>> >>>>>> >  d) Install: sudo cp uwsgi26 /usr/local/bin/uwsgi
>>>>> >>>>>> >  e) Create config.xml: sudo cat > /var/web2py/config.xml
>>>>> >>>>>> > <uwsgi>
>>>>> >>>>>> >     <pythonpath>/var/web2py/</pythonpath>
>>>>> >>>>>> >     <app mountpoint="/">
>>>>> >>>>>> >     <script>wsgihandler</script>
>>>>> >>>>>> >     </app>
>>>>> >>>>>> > </uwsgi>
>>>>> >>>>>> > [PRESS ENTER]
>>>>> >>>>>> > [PRESS CTRL+D]
>>>>>
>>>>> >>>>>> > 3) Cherokee
>>>>> >>>>>> >  a) Install Cherokee (follow the instructions at 
>>>>> >>>>>> > cherokee-project.org)
>>>>> >>>>>> >   i) Note: I highly recommend using the PPA method so you can be 
>>>>> >>>>>> > sure
>>>>> >>>>>> > to have the latest version and no issues!
>>>>> >>>>>> >  b) Run cherokee-admin: sudo cherokee-admin
>>>>> >>>>>> >  c) Visit admin console (via browser, password is shown in 
>>>>> >>>>>> > terminal):
>>>>> >>>>>> > localhost:9090
>>>>> >>>>>> >  d) Go to Virtual Servers, click Wizards, click Platforms, 
>>>>> >>>>>> > clickuWSGI
>>>>> >>>>>> >   i)   New Host Name: web2py
>>>>> >>>>>> >   ii)  Document Root: /var/web2py
>>>>> >>>>>> >   iii) Configuration File: /var/web2py/config.xml
>>>>> >>>>>> >   iv)  Same logs as vserver: default(combined)
>>>>> >>>>>> >   v)   Submit
>>>>> >>>>>> >  e) Go to Virtual Servers, click default
>>>>> >>>>>> >   i) Under "Basics", Virtual Server Nickname: original
>>>>> >>>>>> >  f) Go to Virtual Servers, click web2py
>>>>> >>>>>> >   i)  Under "Basics", Virtual Server Nickname: default
>>>>> >>>>>> >   ii) Under "Logging", verify all logging is correct (matches
>>>>> >>>>>> > original)
>>>>> >>>>>> >  g) Go to Virtual Servers
>>>>> >>>>>> >   i) Set original Active to OFF
>>>>>
>>>>> >>>>>> > 4) Visit localhost (or your.ip.add.ress from another computer) 
>>>>> >>>>>> > to view
>>>>> >>>>>> > your web2py site! :D
>>>>>
>>>>> >>>>> --
>>>>> >>>>> You received this message because you are subscribed to the Google 
>>>>> >>>>> Groups "web2py-users" group.
>>>>> >>>>> To post to this group, send email to [email protected].
>>>>> >>>>> To unsubscribe from this group, send email to 
>>>>> >>>>> [email protected].
>>>>> >>>>> For more options, visit this group 
>>>>> >>>>> athttp://groups.google.com/group/web2py?hl=en.
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "web2py-users" group.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to 
>>>> [email protected].
>>>> For more options, visit this group at 
>>>> http://groups.google.com/group/web2py?hl=en.
>>>>
>>>>
>>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to