https://issues.apache.org/bugzilla/show_bug.cgi?id=55153

--- Comment #11 from Harald Oehlmann <harald.oehlm...@elmicron.de> ---
There are some related mails on the rivet dev mailing list:

---

Damon Courtney: issue does only show in threadded tcl

---

Jeff Lawson: master interpreter preinitialisation is a big time saver:

It is definitely important for us at FlightAware to be able to do Tcl
interpreter initialization before forking.  Our webserver environment uses
multiple physical servers each with 300 Apache children processes.  During the
Tcl global init and before forking, we pre-load several gigabytes of
infrequently changed data from our database for performance.

The inability to do this pre-loading would cause each child to have to load
this data from the database (which causes a massive database overhead for 300
connections to simultaneously request that much data), which indeed adds many
minutes of startup time to our daily release cycle.  Since our release cycle
requires us to fully restart one physical server at a time so that we can
continue to serve production traffic on the remaining physical servers, any
increase in restart time cascades linearly with the number of physical servers
we have.

The added database overhead of these 300 Apache children requesting gigabytes
of data would also compromise our ability to handle normal database traffic
from our other servers while we are restarting one.  

Additionally, the RAM usage on the webservers is significantly impacted since
this static data is now actually allocated and duplicated in each child, rather
than being loaded in the parent and cloned via copy-on-write pages to each
child.  Several gigabyte per child multiplied by 300 processes is a significant
memory footprint change for our webservers.

---

Massimo about some tests:

I got fileevent working again by inserting Tcl_FinalizeNotifier in
Rivet_InitHandler and Tcl_InitNotifier in Rivet_InitTclStuff (at the
cost of breaking the inheritance of an interpreter from the parent to
the child process)

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscr...@tcl.apache.org
For additional commands, e-mail: rivet-dev-h...@tcl.apache.org

Reply via email to