Hi,
I wanted to share our Drupal site for The 1 Second Film, and get any feedback:
www.the1secondfilm.com
Our project is a non-profit collaborative arts project, currently run on Drupal 4.7. Our site allows folks to become a movie producer by making a small donation. Members receive profiles and can connect with one another, keep blogs, etc. and can also upload content to be in a making of documentary. A goal of our project is to create a community built around collaborative art. Any profits from our finished film will be donated to charity, and the online community will continue to grow with future collaborative projects being planned through our non-profit, The Collaboration Foundation.
The site was built by Jason Salter and designed by a friend and myself. The site has been a big improvement over our earlier site, which was static and became impossible to maintain as our project grew.
Basic site flow:
- 1. Users registers and become 'Aspiring-Producers'
2. Users donate $1 or more and get promoted to a "Producer" user role.
3. Producers receive profiles they can edit and also get listed in our producer credits (in order of amount donated and then alphabetically)
We are preparing to upgrade to Drupal 5.0 and increase usability and community features as resources allow.
Thanks for taking a look :)
- nirvan
Comments
Cool project
I've seen some stories about this on Digg, quite an interesting concept. Good to see you're running Drupal.
I like that animated list of famous people in the title, that's a nice touch.
--
John Forsythe
Need reliable Drupal hosting?
thanks :) yeah, we got hit
thanks :)
yeah, we got hit by digg the first day we launched the drupal site. we thought we were load balanced and ready for potential traffic spikes, but we weren't, and our servers melted.
we made some adjustments since and have been growing steadily.
nice site. do you mind
nice site. do you mind mentioning what adjustments you had to make to handle the 'digg-effect'?
thanks. to adjust for the
thanks.
to adjust for the digg effect, i know we ran some tests, tweaked the Apache, and then put some limits on the Cron. but the technicalities of this are WAY over my head.
Jason, our programmer, was able to figure it out with the help of an experienced high traffic Drupal guru (who remains anonymous). I was CC'd on some of the tech details/dialog between the two, and include some info below. hopefully it's helpful...
here is an e-mail reply from our anonymous Drupal Advisor (>) to Jason's e-mail (>>):
> Hey Jason,
>
>> The following modules are present :
>>
>> http_core.c
>> mod_vhost_limit.c
>> mod_env.c
>> mod_php4.c
>> mod_setclass.c
>> mod_log_config.c
>> mod_mime.c
>> mod_negotiation.c
>> mod_status.c
>> mod_include.c
>> mod_autoindex.c
>> mod_dir.c
>> mod_cgi.c
>> mod_asis.c
>> mod_imap.c
>> mod_actions.c
>> mod_userdir.c
>> mod_alias.c
>> mod_rewrite.c
>> mod_access.c
>> mod_auth.c
>> mod_frontpage.c
>> mod_auth_anon.c
>> mod_auth_dbm.c
>> mod_digest.c
>> mod_expires.c
>> mod_headers.c
>> mod_usertrack.c
>> mod_unique_id.c
>> mod_setenvif.c
>
> Yes, there are a few in there you can get rid of but I'm not 100%
> for all of them.
>
> http://httpd.apache.org/docs/1.3/mod/
>
> I *think*
>
> log_config
> include (this is for using SSI)
> cgi
> imap
> actions
> auth_dbm
> digest
>
> I believe you can get rid of those no problem, double check the
> list to see what you think but I'm pretty sure :-)
>
>> I've run the apache benchmarks for -c 20 and -c 100. Both yield a
>> page rate of about 100 / sec.
>>
>> We have two servers in a round robin configuration. When I use the
>> unix top command to watch each server, as I run "ab", only one of
>> them takes the load. Is this the expected behavior?
>
> Yes, I believe so. You are logged into *one* server, not the load
> balancer, so when you type ab, it runs apache for that machine, not
> both. So you can basically double your numbers to figure it out.
>
>>
>> Here is the dump of top to see the average memory size of httpd.
>>
>> 76309 nobody 2 -10 72352K 46524K accept 013 0.00% 0.00% httpd
>> 76315 nobody 2 -10 64900K 38320K accept 013 0.00% 0.00% httpd
>> 569 nobody 2 -10 55020K 28408K accept 007 1.27% 1.27% httpd
>> 76314 nobody 2 -10 54944K 28404K accept 014 0.00% 0.00% httpd
>>
>>
>> Now that we got some numbers. What should we change first?
>
> So your process is roughly 30mb which is what we saw earlier. So
> you can use 100 max clients safely in your httpd.conf.
>
> However, if you remove the above modules, that might drop to 25 or
> 20 mb and you can do even more.
>
> I would remove those modules, recompile, get the new httpd numbers
> and we'll adjust from there, probably around 120 - 150.
Here are the numbers before and after the removal of the three Apache modules. We lost about 1Mb per process.
Initial values
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
76309 nobody 2 -10 72352K 46524K accept 0 13 0.00% 0.00% httpd
76315 nobody 2 -10 64900K 38320K accept 0 13 0.00% 0.00% httpd
569 nobody 2 -10 55020K 28408K accept 0 07 1.27% 1.27% httpd
76314 nobody 2 -10 54944K 28404K accept 0 14 0.00% 0.00% httpd
76323 nobody 2 -10 53704K 27164K accept 0 14 0.00% 0.00% httpd
76321 nobody 2 -10 52968K 26416K accept 0 12 0.00% 0.00% httpd
94701 nobody 2 -10 52940K 26352K accept 0 09 0.00% 0.00% httpd
76313 nobody 2 -10 52900K 26312K accept 0 13 0.00% 0.00% httpd
76310 nobody 2 -10 52868K 26296K accept 0 13 0.00% 0.00% httpd
76316 nobody 2 -10 52864K 26248K accept 0 14 0.00% 0.00% httpd
76319 nobody 2 -10 52856K 26260K accept 0 12 0.20% 0.20% httpd
76322 nobody 2 -10 52832K 26216K accept 0 13 0.24% 0.24% httpd
76318 nobody 2 -10 52828K 26212K accept 0 13 0.00% 0.00% httpd
76312 nobody 2 -10 52808K 26296K accept 0 13 0.00% 0.00% httpd
76317 nobody 2 -10 52788K 26148K sbwait 0 12 0.00% 0.00% httpd
96179 nobody 2 -10 52784K 26156K accept 0 07 0.00% 0.00% httpd
76324 nobody 2 -10 52772K 26176K accept 0 14 0.00% 0.00% httpd
80135 nobody 2 -10 52664K 26032K accept 0 12 0.00% 0.00% httpd
94700 nobody 2 -10 52656K 26084K accept 0 09 1.03% 1.03% httpd
80136 nobody 2 -10 52648K 26080K accept 0 15 0.00% 0.00% httpd
94699 nobody 2 -10 52632K 25996K accept 0 08 0.00% 0.00% httpd
76320 nobody 2 -10 52620K 26088K accept 0 13 0.15% 0.15% httpd
76311 nobody 2 -10 52592K 26004K accept 0 13 0.00% 0.00% httpd
80137 nobody 2 -10 52556K 25932K accept 0 12 0.00% 0.00% httpd
After removal of three Apache modules
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
29497 nobody 2 0 69812K 68056K poll 1:43 0.00% 0.00% clamd
70477 nobody 2 -10 68104K 42112K accept 0:04 0.00% 0.00% httpd
70474 nobody 2 -10 53964K 27556K accept 0:03 0.00% 0.00% httpd
70478 nobody 2 -10 53152K 26560K accept 0:05 0.00% 0.00% httpd
70489 nobody 2 -10 52992K 26456K accept 0:02 0.00% 0.00% httpd
70488 nobody 2 -10 52764K 26148K accept 0:03 0.00% 0.00% httpd
70480 nobody 2 -10 52000K 25468K accept 0:03 0.00% 0.00% httpd
70482 nobody 2 -10 51256K 24684K accept 0:04 0.00% 0.00% httpd
70481 nobody 2 -10 51252K 24732K accept 0:03 0.00% 0.00% httpd
70475 nobody 2 -10 51212K 24708K accept 0:04 0.00% 0.00% httpd
70479 nobody 2 -10 51164K 24596K accept 0:04 0.00% 0.00% httpd
73986 nobody 2 -10 51164K 24528K accept 0:01 0.00% 0.00% httpd
70485 nobody 2 -10 51148K 24440K accept 0:03 0.00% 0.00% httpd
70487 nobody 2 -10 51120K 24512K accept 0:05 0.00% 0.00% httpd
70476 nobody 2 -10 51116K 24568K accept 0:03 0.00% 0.00% httpd
70483 nobody 2 -10 51084K 24520K accept 0:04 0.00% 0.00% httpd
70486 nobody 2 -10 51048K 24528K accept 0:02 0.00% 0.00% httpd
70484 nobody 2 -10 50940K 24336K accept 0:03 0.00% 0.00% httpd
The next bit of advice we received was this:
Our web hosting is provided by pair.com. Pair was extremely helpful and i can not recommend them enough. After the digg melt, pair configured another server for us, so we had 2 dedicated servers running Round Robin DNS. they then worked closely with jason to get things running better.
Jason asked Pair to recompile Apache on our servers without the following modules:
log_config
include (this is for using SSI)
cgi
imap
actions
auth_dbm
digest
Pair replied:
We elected to leave the CGI module. And asked pair to change the Apache settings for both of our servers to:
maxclients = 100
Those were the basic steps. I sort of followed it at the time, but it's still a foreign language to me. hopefully it makes sense for those that speak drupal.
Could you please ...........
give a list of modules used for the functions of the site
eg: Profiles ......................
Donation....................
Role assignment ..............
that helps