From: Vlad S. <ser...@us...> - 2008-03-27 16:49:45
|
Update of /cvsroot/naviserver/naviserver In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv1537 Modified Files: ChangeLog nsd-config.tcl sample-config.tcl.in simple-config.tcl Log Message: * nsd/nsd.h: * nsd/sched.c: Added new config parameter schedsperthread which makes schedule threads exit after specified number of jobs processed. This is for schedule taks with -thread flags only, schedule tasks which are executed inside the main sched thread still work as usuall. This new config parameter similar to jobsperthread will allow to control threads allocation and memory usage by exiting thread and reclaiming memory back to the system in case of such memory allocator. Index: ChangeLog =================================================================== RCS file: /cvsroot/naviserver/naviserver/ChangeLog,v retrieving revision 1.753 retrieving revision 1.754 diff -C2 -d -r1.753 -r1.754 *** ChangeLog 24 Mar 2008 15:00:29 -0000 1.753 --- ChangeLog 27 Mar 2008 16:49:12 -0000 1.754 *************** *** 1,2 **** --- 1,13 ---- + 2008-03-26 Vlad Seryakov <ser...@us...> + + * nsd/nsd.h: + * nsd/nsconf.c: + * nsd/sched.c: Added new config parameter schedsperthread which makes + schedule threads exit after specified number of jobs processed. This is for schedule taks with + -thread flags only, schedule tasks which are executed inside the main sched thread still + work as usuall. This new config parameter similar to jobsperthread will allow to control + threads allocation and memory usage by exiting thread and reclaiming memory back to the system + in case of such memory allocator. + 2008-03-24 Zoran Vasiljevic <vas...@us...> Index: nsd-config.tcl =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd-config.tcl,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** nsd-config.tcl 9 Mar 2008 08:09:38 -0000 1.9 --- nsd-config.tcl 27 Mar 2008 16:49:12 -0000 1.10 *************** *** 1,134 **** ! set home /usr/local/ns ! ns_section "ns/server/default/modules" ! #ns_param nscp nscp.so ! ns_param nssock nssock.so ! ns_param nslog nslog.so ! ns_param nscgi nscgi.so ! ns_param nsdb nsdb.so ! ns_section "ns/parameters" ! ns_param home $home ! ns_param logdebug true ! ns_param logroll true ! ns_param tcllibrary tcl ! ns_param serverlog nsd.log ! ns_param pidfile nsd.pid ! ns_param dbcloseonexit off ! ns_param jobsperthread 1000 ! ns_param jobtimeout 0 ! ns_param progressminsize [expr 1024*1024*1] ! ns_param smtphost "localhost" ! ns_param smtpport 25 ! ns_param smtptimeout 60 ! ns_param smtplogmode false ! ns_param smtpmsgid false ! ns_param smtpmsgidhostname "" ! ns_param smtpencodingmode false ! ns_param smtpencoding "utf-8" ! ns_param smtpauthmode "" ! ns_param smtpauthuser "" ! ns_param smtpauthpassword "" ! ns_section "ns/threads" ! ns_param stacksize [expr 512*1024] ! ns_section "ns/mimetypes" ! ns_param default text/plain ! ns_param noextension text/plain ! ns_section "ns/db/drivers" ! #ns_param postgres nsdbpg.so ! ns_section "ns/db/pools" ! #ns_param postgres "PostgresSQL Database" ! ns_section "ns/db/pool/pgsql" ! ns_param driver postgres ! ns_param connections 64 ! ns_param user postgres ! ns_param datasource "::dbname" ! ns_param verbose Off ! ns_param logsqlerrors On ! ns_param extendedtableinfo On ! ns_param maxidle 31536000 ! ns_param maxopen 31536000 ! ns_section "ns/servers" ! ns_param default "Naviserver" ! ns_section "ns/server/default" ! ns_param globalstats true ! ns_param urlstats true ! ns_param maxurlstats 1000 ! ns_param checkmodifiedsince true ! ns_param connsperthread 1000 ! ns_param minthreads 5 ! ns_param maxthreads 100 ! ns_param maxconnections 100 ! ns_param threadtimeout 1800 ! ns_section "ns/server/default/db" ! ns_param pools * ! ns_section "ns/server/default/fastpath" ! ns_param pagedir pages ! ns_param directoryfile "index.adp index.tcl index.html index.htm" ! ns_param directoryproc _ns_dirlist ! ns_param directorylisting fancy ! ns_section "ns/server/default/vhost" ! ns_param enabled false ! ns_param hostprefix "" ! ns_param hosthashlevel 0 ! ns_param stripport true ! ns_param stripwww true ! ns_section "ns/server/default/adp" ! ns_param map "/*.adp" ! ns_param enableexpire false ! ns_param enabledebug true ! ns_param enabletclpages true ! ns_param singlescript false ! ns_param cache false ! ns_param cachesize [expr 5000*1024] ! ns_section "ns/server/default/tcl" ! ns_param nsvbuckets 16 ! ns_param library modules/tcl ! ns_section "ns/server/default/module/nscgi" ! ns_param map "GET /cgi-bin [ns_info home]/cgi-bin" ! ns_param map "POST /cgi-bin [ns_info home]/cgi-bin" ! ns_param interps interps ! ns_section "ns/server/default/module/nslog" ! ns_param file access.log ! ns_param rolllog true ! ns_param rollonsignal false ! ns_param rollhour 0 ! ns_param maxbackup 7 ! ns_section "ns/server/default/module/nssock" ! ns_param port 8080 ! ns_param address 0.0.0.0 ! ns_param hostname [ns_info hostname] ! ns_param maxinput [expr 1024*1024*10] ! ns_param readahead [expr 1024*1024*1] ! ns_param spoolerthreads 1 ! ns_param writerthreads 0 ! ns_param writersize [expr 1024*1024*5] ! ns_param backlog 1024 ! ns_param acceptsize 10 ! ns_param closewait 0 ! ns_param rcvbuf 512000 ! ns_param sndbuf 512000 ! ns_param maxqueuesize 1024 ! ns_section "ns/server/default/module/nscp" ! ns_param port 4080 ! ns_param address 127.0.0.1 ! ns_section "ns/server/default/module/nscp/users" ! ns_param user "::" --- 1,135 ---- ! set home /usr/local/ns ! ns_section "ns/server/default/modules" ! ns_param nscp nscp.so ! ns_param nssock nssock.so ! ns_param nslog nslog.so ! ns_param nscgi nscgi.so ! ns_param nsdb nsdb.so ! ns_section "ns/parameters" ! ns_param home $home ! ns_param logdebug true ! ns_param logroll true ! ns_param tcllibrary tcl ! ns_param serverlog nsd.log ! ns_param pidfile nsd.pid ! ns_param dbcloseonexit off ! ns_param jobsperthread 1000 ! ns_param jobtimeout 0 ! ns_param schedsperthread 10 ! ns_param progressminsize [expr 1024*1024*1] ! ns_param smtphost "localhost" ! ns_param smtpport 25 ! ns_param smtptimeout 60 ! ns_param smtplogmode false ! ns_param smtpmsgid false ! ns_param smtpmsgidhostname "" ! ns_param smtpencodingmode false ! ns_param smtpencoding "utf-8" ! ns_param smtpauthmode "" ! ns_param smtpauthuser "" ! ns_param smtpauthpassword "" ! ns_section "ns/threads" ! ns_param stacksize [expr 512*1024] ! ns_section "ns/mimetypes" ! ns_param default text/plain ! ns_param noextension text/plain ! ns_section "ns/db/drivers" ! #ns_param postgres nsdbpg.so ! ns_section "ns/db/pools" ! #ns_param postgres "PostgresSQL Database" ! ns_section "ns/db/pool/pgsql" ! ns_param driver postgres ! ns_param connections 64 ! ns_param user postgres ! ns_param datasource "::dbname" ! ns_param verbose Off ! ns_param logsqlerrors On ! ns_param extendedtableinfo On ! ns_param maxidle 31536000 ! ns_param maxopen 31536000 ! ns_section "ns/servers" ! ns_param default "Naviserver" ! ns_section "ns/server/default" ! ns_param globalstats true ! ns_param urlstats true ! ns_param maxurlstats 1000 ! ns_param checkmodifiedsince true ! ns_param connsperthread 1000 ! ns_param minthreads 5 ! ns_param maxthreads 100 ! ns_param maxconnections 100 ! ns_param threadtimeout 1800 ! ns_section "ns/server/default/db" ! ns_param pools * ! ns_section "ns/server/default/fastpath" ! ns_param pagedir pages ! ns_param directoryfile "index.adp index.tcl index.html index.htm" ! ns_param directoryproc _ns_dirlist ! ns_param directorylisting fancy ! ns_section "ns/server/default/vhost" ! ns_param enabled false ! ns_param hostprefix "" ! ns_param hosthashlevel 0 ! ns_param stripport true ! ns_param stripwww true ! ns_section "ns/server/default/adp" ! ns_param map "/*.adp" ! ns_param enableexpire false ! ns_param enabledebug true ! ns_param enabletclpages true ! ns_param singlescript false ! ns_param cache false ! ns_param cachesize [expr 5000*1024] ! ns_section "ns/server/default/tcl" ! ns_param nsvbuckets 16 ! ns_param library modules/tcl ! ns_section "ns/server/default/module/nscgi" ! ns_param map "GET /cgi-bin [ns_info home]/cgi-bin" ! ns_param map "POST /cgi-bin [ns_info home]/cgi-bin" ! ns_param interps interps ! ns_section "ns/server/default/module/nslog" ! ns_param file access.log ! ns_param rolllog true ! ns_param rollonsignal false ! ns_param rollhour 0 ! ns_param maxbackup 7 ! ns_section "ns/server/default/module/nssock" ! ns_param port 8080 ! ns_param address 0.0.0.0 ! ns_param hostname [ns_info hostname] ! ns_param maxinput [expr 1024*1024*10] ! ns_param readahead [expr 1024*1024*1] ! ns_param spoolerthreads 1 ! ns_param writerthreads 0 ! ns_param writersize [expr 1024*1024*5] ! ns_param backlog 1024 ! ns_param acceptsize 10 ! ns_param closewait 0 ! ns_param rcvbuf 512000 ! ns_param sndbuf 512000 ! ns_param maxqueuesize 1024 ! ns_section "ns/server/default/module/nscp" ! ns_param port 4080 ! ns_param address 127.0.0.1 ! ns_section "ns/server/default/module/nscp/users" ! ns_param user "::" Index: sample-config.tcl.in =================================================================== RCS file: /cvsroot/naviserver/naviserver/sample-config.tcl.in,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** sample-config.tcl.in 7 Jun 2007 18:46:25 -0000 1.15 --- sample-config.tcl.in 27 Mar 2008 16:49:12 -0000 1.16 *************** *** 50,76 **** # Absolute path to the installation directory ! set homedir @NAVISERVER@ # Name/description of the virtual server ! set servername "server1" ! set serverdesc "Server Name" # The hostname, address and port for nssock should be set to actual values. ! set hostname [ns_info hostname] ! set address [ns_info address] ! set port 8080 # Root directory for each virtual server ! set serverdir ${homedir} # Alternatively in case when multiple server share the same # installation, server can be put into seperate directories ! #set serverdir ${homedir}/servers/${servername} # Relative directory under serverdir for html/adp files ! set pageroot pages # Absolute path to pages directory ! set pagedir $serverdir/$pageroot --- 50,76 ---- # Absolute path to the installation directory ! set homedir @NAVISERVER@ # Name/description of the virtual server ! set servername "server1" ! set serverdesc "Server Name" # The hostname, address and port for nssock should be set to actual values. ! set hostname [ns_info hostname] ! set address [ns_info address] ! set port 8080 # Root directory for each virtual server ! set serverdir ${homedir} # Alternatively in case when multiple server share the same # installation, server can be put into seperate directories ! #set serverdir ${homedir}/servers/${servername} # Relative directory under serverdir for html/adp files ! set pageroot pages # Absolute path to pages directory ! set pagedir $serverdir/$pageroot *************** *** 91,94 **** --- 91,95 ---- #ns_param nstk Tcl + # # Global server parameters *************** *** 96,114 **** ns_section "ns/parameters" ns_param home $homedir ns_param logdebug false # Where all shared Tcl modules are located ! ns_param tcllibrary ${homedir}/tcl # Main server log file ! ns_param serverlog ${homedir}/logs/nsd.log # Pid file of the server process ! ns_param pidfile ${homedir}/logs/nsd.pid # Min size of the uploaded file to enable progress tracking ns_param progressminsize 0 # # I18N Parameters --- 97,126 ---- ns_section "ns/parameters" + + # Home directory for the server, it will be resolved automaticlaly if not specified ns_param home $homedir + + # Output debug log messages in the log ns_param logdebug false # Where all shared Tcl modules are located ! ns_param tcllibrary ${homedir}/tcl # Main server log file ! ns_param serverlog ${homedir}/logs/nsd.log # Pid file of the server process ! ns_param pidfile ${homedir}/logs/nsd.pid # Min size of the uploaded file to enable progress tracking ns_param progressminsize 0 + # How many Tcl jobs to run in any job thread before thread exit, this will alow + # to reclaim thread memory back to the system if memory allocator supports it + ns_param jobsperthread 0 + + # How many Tcl tasks to run in any schedule thread before thread exit + ns_param schedsperthread 0 + # # I18N Parameters *************** *** 128,132 **** # This parameter supports output encoding arbitration. ! ns_param preferredcharsets { utf-8 iso8859-1 } # --- 140,144 ---- # This parameter supports output encoding arbitration. ! ns_param preferredcharsets { utf-8 iso8859-1 } # *************** *** 220,234 **** --- 232,253 ---- # Normally there's one conn per thread ns_param connsperthread 0 + # Flush all data before returning ns_param flushcontent false + # Max connections to put on queue ns_param maxconnections 100 + # Tune this to scale your server ns_param maxthreads 10 + # Tune this to scale your server ns_param minthreads 0 + # Idle threads die at this rate ns_param threadtimeout 120 + + # # ADP (AOLserver Dynamic Page) configuration *************** *** 378,382 **** # Number of requests to accept at once ! ns_param acceptsize 1 # Max numbrer of sockets in the driver queue --- 397,401 ---- # Number of requests to accept at once ! ns_param acceptsize 1 # Max numbrer of sockets in the driver queue *************** *** 475,480 **** ns_param address 127.0.0.1 ns_param port 9999 ! ns_param echopassword true ! ns_param cpcmdlogging false ns_section "ns/server/${servername}/module/nscp/users" --- 494,499 ---- ns_param address 127.0.0.1 ns_param port 9999 ! ns_param echopassword true ! ns_param cpcmdlogging false ns_section "ns/server/${servername}/module/nscp/users" *************** *** 557,561 **** ns_section "ns/server/server1/pools" ! ns_param slow "Slow requests here." ns_param fast "Fast requests here." --- 576,580 ---- ns_section "ns/server/server1/pools" ! ns_param slow "Slow requests here." ns_param fast "Fast requests here." *************** *** 580,591 **** ns_section "ns/server/${servername}/module/nsproxy" ! ns_param exec ${homedir}/bin/nsproxy ; # Proxy program to start ! ns_param evaltimeout 0 ; # Timeout (ms) when evaluating scripts ! ns_param gettimeout 0 ; # Timeout (ms) when getting proxy handles ! ns_param sendtimeout 5000 ; # Timeout (ms) to send data ! ns_param recvtimeout 5000 ; # Timeout (ms) to receive results ! ns_param waittimeout 1000 ; # Timeout (ms) to wait for slaveis to die ! ns_param idletimeout 300000 ; # Timeout (ms) for a slave to live idle ! ns_param maxslaves 8 ; # Max number of allowed slaves alive # --- 599,625 ---- ns_section "ns/server/${servername}/module/nsproxy" ! # Proxy program to start ! ns_param exec ${homedir}/bin/nsproxy ! ! # Timeout (ms) when evaluating scripts ! ns_param evaltimeout 0 ! ! # Timeout (ms) when getting proxy handles ! ns_param gettimeout 0 ! ! # Timeout (ms) to send data ! ns_param sendtimeout 5000 ! ! # Timeout (ms) to receive results ! ns_param recvtimeout 5000 ! ! # Timeout (ms) to wait for slaveis to die ! ns_param waittimeout 1000 ! ! # Timeout (ms) for a slave to live idle ! ns_param idletimeout 300000 ! ! # Max number of allowed slaves alive ! ns_param maxslaves 8 # *************** *** 600,614 **** ns_section "ns/limits" ! ns_param default "Default Limits" ;# Defines a limit. ns_section "ns/limit/default" ! ns_param maxrun 100 ;# Conn threads running for limit. ! ns_param maxwait 100 ;# Conn threads waiting for limit. ! ns_param maxupload 102400000 ;# Max size of file upload in bytes. ! ns_param timeout 60 ;# Total seconds to wait for resources. ns_section "ns/server/server1/limits" ! ns_param default "GET /*" ;# Map default limit to URL. ! ns_param default "POST /*" ! ns_param default "HEAD /*" --- 634,659 ---- ns_section "ns/limits" ! ns_param default "Default Limits" ns_section "ns/limit/default" ! ! # Conn threads running for limit. ! ns_param maxrun 100 ! ! # Conn threads waiting for limit. ! ns_param maxwait 100 ! ! # Max size of file upload in bytes. ! ns_param maxupload 102400000 ! ! # Total seconds to wait for resources. ! ns_param timeout 60 ! ns_section "ns/server/server1/limits" ! ! # Map default limit to URL. ! ns_param default "GET /*" ! ns_param default "POST /*" ! ns_param default "HEAD /*" Index: simple-config.tcl =================================================================== RCS file: /cvsroot/naviserver/naviserver/simple-config.tcl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** simple-config.tcl 7 Sep 2006 20:02:00 -0000 1.2 --- simple-config.tcl 27 Mar 2008 16:49:12 -0000 1.3 *************** *** 1,5 **** # # This is minimal Naviserver config file that makes the server to ! # accept HTTP requests on port 80 # # Logs are in the logs/nsd.log and logs/access.log --- 1,5 ---- # # This is minimal Naviserver config file that makes the server to ! # accept HTTP requests on port 80 # # Logs are in the logs/nsd.log and logs/access.log *************** *** 8,17 **** # ! ns_section "ns/servers" ! ns_param default Naviserver ns_section "ns/server/default/modules" ! #ns_param nscp nscp.so ! ns_param nssock nssock.so ! ns_param nslog nslog.so --- 8,17 ---- # ! ns_section "ns/servers" ! ns_param default Naviserver ns_section "ns/server/default/modules" ! ns_param nscp nscp.so ! ns_param nssock nssock.so ! ns_param nslog nslog.so |