Re: Mehr Speed?

Jens Vagelpohl <[email protected]>
Newsgroups gmane.comp.web.zope.german
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Mar 30, 2009, at 10:30 , Jens W. Klein wrote:

>> Der Nebeneffekt wäre, da die Object-Caches ja redundant Ram fressen  
>> (pro
>> Worker einer), dass man viel mehr Ram frei hätte, bzw. das temporäre
>> File durchaus groß sein dürfte.
>
> Soweit ich das verstanden habe, cached nicht jeder Worker-Thread
> separat. Im Code angeschaut habe ich den Teil noch nicht (wir haben  
> max
> 1-2 Worker-Threads, da ist das relativ nebensächlich).

Vorsicht Missverständnis, hier werden zwei Dinge durcheinander  
geworfen. Auf der einen Seite gibt es worker threads, in der  
Normalkonfiguration 4. Auf der anderen Seite gibt es einen Pool von  
Datenbankverbindungen, in der Normalkonfiguration 7. Wenn ein worker  
thread Zugang zur ZODB braucht, wird eine Datenbankverbindung aus dem  
Pool genommen. Es sind diese Datenbankverbingen, die mit ihrer  
internen Cache die RAM-basierte ZODB Cache darstellen. Und zwar jede  
Verbindung mit eigener unabhängiger Cache.

Im Normalbetrieb sieht es oft so aus, als wäre das Verhältnis von  
worker thread zu genutzter Datenbankverbindung immer 1:1, woher wohl  
auch das Missverständnis kommt, dass worker threads selber das Caching  
machen. Das Reduzieren der worker threads per Konfiguration führt auch  
dazu, dass im laufenden Betrieb eben weniger Datenbankverbindungen  
genutzt werden, und somit wieder der Eindruck entsteht, die worker  
threads machen Caching.

Allgemein gesehen gibt es keine Idealkonfiguration für alle  
Situationen. Viele Leute behaupten, die Reduzierung der worker threads  
sei die Lösung aller Probleme, das ist aber Unsinn. Es kommt immer  
darauf an, was genau die Anwendung machen soll. Anwendungen, die wenig  
"teure" Arbeit zu verrichten haben und viel Daten aus der Datenbank  
lesen, sind mit weniger threads (und weniger Datenbankverbindungen)  
vielleicht gut bedient. Anders sieht es aus, wenn eine Anwendung wenig  
Daten aus der ZODB liest, sondern vielleicht viel aus einer  
relationalen Datenbank. Solche Anwendungen können von *mehr* worker  
threads und Datenbankverbindungen profitieren. Die einzig geeignete  
Massnahme, um die eigene ideale Konfiguration zu finden, ist  
vernünftiges und realitätsnahes Testen der Anwendung (load testing)  
mit verschiedenen Konfigurationsszenarien. Auch das Beobachten der  
Anwendung während der Laufzeit und eventuelle Anpassen der Parameter  
ist sinnvoll.

jens


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAknQnEMACgkQRAx5nvEhZLK8XQCfRZ+Mt161fTOiZ+be6s2YdIx5
fDAAnisPjuu95s41lH0xkjKyM0Z/PmLs
=vkyo
-----END PGP SIGNATURE-----


_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.