vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Big Board Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=172)
-   -   Quad Opterons + FreeBSD + Lighttpd + FastCGI/PHP + APC = Fast vB :) (https://vborg.vbsupport.ru/showthread.php?t=114632)

Zachery 05-17-2006 09:00 PM

Quote:

Originally Posted by adalren
What kind of problems are you having with lighttpd?

We're using lighttpd + phpfcgi + 64bit CentOS and lately experiencing segfaults from the php processes. I see a few bug listings regarding segfaults on APC and have a hunch it might be that.

BTW, eA does not work on a 64bit OS.

I think it was digitalpoint on vB.com who commented about segfaults and APC under high load.

Dan 05-17-2006 09:03 PM

I've had a recent experience with FreeBSD servers and Erwin is right, it's really a good distro to use.

But with Lighttpd reference I haven't really had a chance to play with it much in a production enviroment, I'm currently playing around with it on my localhost. Hopefully one day my host can switch it or I could get my own server and use it.

Erwin 05-17-2006 09:38 PM

Ahhh... eA doesn't work with 64bit... didn't know that... that explains it.

adalren 05-18-2006 12:00 AM

Quote:

Originally Posted by Zachery
I think it was digitalpoint on vB.com who commented about segfaults and APC under high load.

That can't be the case since the load is < 1. It seems like a child php process segfaults and serves error pages until the parent process kills it after the # of PHP_FCGI_MAX_REQUESTS. At least it recovers.

Erwin 05-18-2006 05:27 AM

Anyone want to share their lighttpd.conf? I can't use the quake.net one as my server crashes with it (server 500 error).

I'll share the tweaks I've made to mine:

Add these lines to the top:

server.max-keep-alive-requests = 0
server.max-fds = 2048
server.stat-cache-engine = "fam"


Basically, switch off keep-alive (well, it helps to speed things up on my webserver), double the maxed opened files from 1024 to 2048 (if you have a busy server) and use the stat cache system.

It seems to work well for me so far - let's see how it goes at peak times (it's off-peak now, only 1,000 users online).

More info on optimizing lighttpd here:

http://www.lighttpd.net/documentation/performance.html

kmike 05-18-2006 06:39 PM

Hmm, keep alive should help multiplexing web servers like lighttpd. Number of open files should not be an issue if you're not on the shared hosting, and there're no other downsides to enabling keep-alive.

adalren 05-18-2006 07:42 PM

How do you get fam/gamin to work? I installed gamin (yum install gamin) and there wasn't any daemons or init scripts to run.

Here is my conf file. It runs fine with apc 3.0.8 but segfaults with 3.0.10.

server.event-handler = "linux-sysepoll"
server.max-fds = 4096
server.max-keep-alive-requests = 4
server.max-keep-alive-idle = 4
server.max-read-idle = 20
server.max-write-idle = 180

Erwin 05-18-2006 09:45 PM

Quote:

Originally Posted by kmike
Hmm, keep alive should help multiplexing web servers like lighttpd. Number of open files should not be an issue if you're not on the shared hosting, and there're no other downsides to enabling keep-alive.

I thought keep alive is only useful for static files? I may be wrong obviously, I'm no expert. No. of files may be significant if there are lot of attachments, again from what I've read, so it's probably more relevant for an attachment server. Enabling keep-alive just means connections are kept longer - I have to say that when I was using apache, I never had keep alive on, even with my image server.

kmike 05-19-2006 07:44 AM

Well, I'm going to get to the basics on that.
The beauty of multiplexed web servers (lighttpd, thttpd, Zeus, nginx, etc) is in that number of connections isn't a choke point, their performance is usually disk (for static file serving) or CPU (for dynamic content) bound.
So there's _no_ reason not to enable keep-alive as it eliminates the need to re-open connection for the next request(s), and managing idle connections does not take up any resources for a multiplexed web server utilizing one of the advanced solutions to c10K problem like epoll, rtsig or kqueue.

Back to Apache, everyone's disabling keep-alive in Apache because every connection, even an idle one, requires one active Apache process or thread to manage it, taking up memory.

I hope it answers your questions.

Erwin 05-19-2006 12:05 PM

For some reason, the default

server.max-write-idle = 360

is too short... I've increased that to 720 and it's still too slow according to the error log.

I'll give:

server.max-keep-alive-requests = 4
server.max-keep-alive-idle = 4

a try then. :) I'll report back.

In relation to kqueue, I'm using FreeBSD so I have this line:

server.event-handler = "freebsd-kqueue"

That covers that yeah?


All times are GMT. The time now is 03:30 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01088 seconds
  • Memory Usage 1,740KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete