Apis Networks

Access Control Panel
Control Panel Login close
Username
Domain
Password
 
Contact Us
create account
Reply
 
Thread Tools Display Modes
  #1  
Old 01-20-2010, 08:13 PM
Matt's Avatar
Matt Matt is offline
Tech Liaison
 
Join Date: Jun 2005
Location: Atlanta, Georgia
Posts: 940
Send a message via AIM to Matt Send a message via MSN to Matt
apnscp Update: performance improvements, mod_rails, Ruby 1.9, over 75 changes!

Welcome to another edition of apnscp changes!  Important changes include Rails infrastructure changes from Ruby 1.8 + FastCGI to Ruby 1.9 + mod_rails, new multiple worker backend (apnscpd), CDN to distribute static content with minimal bandwidth overhead (http://getap.is), and an aggressive caching  framework to reduce bottlenecks.

mod_rails


After several custom patches, mod_rails is a possibility for our clients.  mod_rails provides the same great, secure setup experienced with FastCGI, but without the nasty suexec headaches.  Perform an upgrade from Ruby 1.8 via Development > Code Frameworks.  Gems will be migrated to Ruby 1.9 during the upgrade process.  After upgrading add the necessary .htaccess directives found in the Rails Quickstart

Ruby 1.9 is here

Easy Task Scheduling (@token)


Another nice feature coming on the heels of a planned server outage is support for crontab @ time tokens.   @reboot executes a task on start-up, which obsoletes rc.d support, @hourly executes once per hour, @daily, @weekly, @monthly, and @yearly are additional special times recognized by crontab.  Each scheduling time is guaranteed to execute once during an interval, but the minute/hour vary.  Both minutes (@hourly/.../@yearly) and hours (@daily/.../@yearly) are evenly distributed among all accounts to prevent CPU bottlenecks caused, for example, by multiple hourly tasks occurring at 12:00 AM, 1o AM, 2:00 AM...

New Crontab Interface

apnscpd multi-tasking backend


Finally, the nicest improvement, based upon effort, includes a bevvy of performance optimizations culminating with a client-server replacement for the single-user privileged processor necessary for carrying out filesystem management of the account... that forked on every single privileged request.  For example, loading up the File Manager may generate as many as 5 separate forks of the privileged processor "lservice" [this name is about as old as the concept apnscp itself].  Now a master distributes work to one of several concurrent workers awaiting further instruction.  Best of all no additional forking required unless a worker dies on the job.   Another area of concern included sharing caches between the privileged processor and UI.  This was solved by implementing multi-tiered memcached framework.

As a comparative benchmark, requesting directory contents within the File Manager has decreased from 250 ms per request to 17 ms - a 14x improvement.  Speeding up code wasn't enough.  Static content is now offloaded to a separate CDN (http://getap.is - clever?) to eliminate cookies, add caching, and reduce bandwidth overhead too.  Overall the latest set of changes should produce a noticeable improvement in responsiveness and allow you to get things done faster than ever before.

...

With that being said - let's leave this open for Ruby 1.9/mod_rails questions.

Last edited by Matt; 01-20-2010 at 08:17 PM.
Reply With Quote
  #2  
Old 01-21-2010, 01:46 AM
MarmaladeMan MarmaladeMan is offline
Apis Networks Diehard
 
Join Date: Nov 2006
Posts: 108
I'm a customer who makes very limited use of the more advanced features that apis offers but I would nonetheless like to offer congratulations and express gratitude for the continued support on apnscp. It's truly a breeze to use.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump