Wieder mal Performance

10 messages Options
Embed this post
Permalink
Peter Zechmeister

Wieder mal Performance

Reply Threaded More More options
Print post
Permalink
Hallo,
wir haben eine ZMS-Site mit 300.000 Objekten in der DB.
Aufgeteilt auf 10 ZEO-Clients, wo jeder für sich nur einen bestimmten
Bereich der Site bedient, also nur mit einem Teil der Objekte in Kontakt
kommt (von Pound zugeteilt).

Einige der Clients haben nach einiger Zeit für alle Threads/Connections
die Caches bereits voll auf 12.000.

Die immer mieser werdende Performance der letzten Tage hab ich zum
Anlass genommen, bei den ZEO-Clients die Anzahl der Threads von 4 auf 2
zu verringern und dafür die Anzahl der Objekte im Cache von 12000 auf
24000 hinauf zu setzen.

Es dürfte eigentlich zu keinen Blockaden kommen. 2 Threads müssten genug
sein.
Wenn die Performanceprobleme vom ständigen umrühren der Caches und
Nachladen vom Server (bzw. vom Plattencache) kommen, sollte die
Verdopplung der Caches schon was bringen.
 
Jedoch bin ich ein wenig skeptisch.

Was nämlich komisch ist, dass die Clients nach einem Neustart _viel_
schneller sind. Und da müssen sie aber noch laufend Objekte vom Server
anfordern.
So, als ob nicht das Anfordern vom Server, sondern das Umrühren der
Caches oder das Verwalten von vielen Objekten im Cache die Probleme
machen würde.
Vielleicht ist unser Weg mit den großen Caches eh der falsche.
Vielleicht sind kleine Caches schneller?
Ein regelmäßiger Neustart der Clients dürfte auch was bringen.
Sollten wir das fix einmal pro Nacht machen (Schmerzt zwar, aber wenns
was bringt...)?

Bitte um Eure Kommentare.

Grü
PeterZ

--
"Ordnung ist für einfach denkende Menschen das Ergebnis der ordnenden
Tätigkeit eines ordnenden Wesens.", Hayek




_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
ajung

Re: Wieder mal Performance

Reply Threaded More More options
Print post
Permalink
On 23.07.09 16:18, Peter Zechmeister wrote:

>
> Was nämlich komisch ist, dass die Clients nach einem Neustart _viel_
> schneller sind. Und da müssen sie aber noch laufend Objekte vom Server
> anfordern.
> So, als ob nicht das Anfordern vom Server, sondern das Umrühren der
> Caches oder das Verwalten von vielen Objekten im Cache die Probleme
> machen würde.
> Vielleicht ist unser Weg mit den großen Caches eh der falsche.
> Vielleicht sind kleine Caches schneller?
> Ein regelmäßiger Neustart der Clients dürfte auch was bringen.
> Sollten wir das fix einmal pro Nacht machen (Schmerzt zwar, aber wenns
> was bringt...)?
Das sind bekannte Phänomene..regelmässiges Neustarten (insb. bei
"grossen" Prozessen ist immer hilfreich. Ausserdem haben wir
vor kurzem bemerkt, dass eine ungepackte ZODB deutlich langsamer
ist als eine gepackte (inkl. aller Implikationen wie langlaufende
Transaktion und Blockaden)....also regelmässig packen.

Andreas

[lists.vcf]

begin:vcard
fn:Andreas Jung
n:Jung;Andreas
org:ZOPYX Ltd. & Co. KG
adr;quoted-printable:;;Charlottenstr. 37/1;T=C3=BCbingen;;72070;Germany
email;internet:[hidden email]
title:CEO
tel;work:+49-7071-793376
tel;fax:+49-7071-7936840
tel;home:+49-7071-793257
x-mozilla-html:FALSE
url:www.zopyx.com
version:2.1
end:vcard





_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
Christian Theune-2

Re: Wieder mal Performance

Reply Threaded More More options
Print post
Permalink
In reply to this post by Peter Zechmeister
On 07/23/2009 04:18 PM, Peter Zechmeister wrote:

> Hallo,
> wir haben eine ZMS-Site mit 300.000 Objekten in der DB.
> Aufgeteilt auf 10 ZEO-Clients, wo jeder für sich nur einen bestimmten
> Bereich der Site bedient, also nur mit einem Teil der Objekte in Kontakt
> kommt (von Pound zugeteilt).
>
> Einige der Clients haben nach einiger Zeit für alle Threads/Connections
> die Caches bereits voll auf 12.000.
>
> Die immer mieser werdende Performance der letzten Tage hab ich zum
> Anlass genommen, bei den ZEO-Clients die Anzahl der Threads von 4 auf 2
> zu verringern und dafür die Anzahl der Objekte im Cache von 12000 auf
> 24000 hinauf zu setzen.
>
> Es dürfte eigentlich zu keinen Blockaden kommen. 2 Threads müssten genug
> sein.
> Wenn die Performanceprobleme vom ständigen umrühren der Caches und
> Nachladen vom Server (bzw. vom Plattencache) kommen, sollte die
> Verdopplung der Caches schon was bringen.
>
> Jedoch bin ich ein wenig skeptisch.
>
> Was nämlich komisch ist, dass die Clients nach einem Neustart _viel_
> schneller sind. Und da müssen sie aber noch laufend Objekte vom Server
> anfordern.
> So, als ob nicht das Anfordern vom Server, sondern das Umrühren der
> Caches oder das Verwalten von vielen Objekten im Cache die Probleme
> machen würde.
> Vielleicht ist unser Weg mit den großen Caches eh der falsche.
> Vielleicht sind kleine Caches schneller?
> Ein regelmäßiger Neustart der Clients dürfte auch was bringen.
> Sollten wir das fix einmal pro Nacht machen (Schmerzt zwar, aber wenns
> was bringt...)?
>
> Bitte um Eure Kommentare.
Wieviel Speicher benutzen die ZEO clients genau? Ab einer gewissen
Speichergroesse ist Python's Garbage Collection gern mal lahm.

Was sagt das load/store-Verhalten im ZMI ueber die Datenbank aus?

Christian

--
Christian Theune · [hidden email]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 0 · fax +49 345 1229889 1
Zope and Plone consulting and development



_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
Gross,Thomas Michael

AW: Re: Wieder mal Performance

Reply Threaded More More options
Print post
Permalink
Was ist eine "gewisse Speichergrösse? Wieviel Speicher ist für einen ZEO-Client empfohlen? Wenn auf einer Maschine dann zwei Clients laufen, braucht es vom diesem Wert das doppelte?

Danke und Gruss
-Tom


-----Ursprüngliche Nachricht-----
Von: [hidden email] [mailto:[hidden email]] Im Auftrag von Christian Theune
Gesendet: Freitag, 24. Juli 2009 07:49
An: Deutschsprachige Zope-Benutzer-Liste
Betreff: [dzug-zope] Re: Wieder mal Performance

On 07/23/2009 04:18 PM, Peter Zechmeister wrote:

> Hallo,
> wir haben eine ZMS-Site mit 300.000 Objekten in der DB.
> Aufgeteilt auf 10 ZEO-Clients, wo jeder für sich nur einen bestimmten
> Bereich der Site bedient, also nur mit einem Teil der Objekte in
> Kontakt kommt (von Pound zugeteilt).
>
> Einige der Clients haben nach einiger Zeit für alle
> Threads/Connections die Caches bereits voll auf 12.000.
>
> Die immer mieser werdende Performance der letzten Tage hab ich zum
> Anlass genommen, bei den ZEO-Clients die Anzahl der Threads von 4 auf
> 2 zu verringern und dafür die Anzahl der Objekte im Cache von 12000
> auf 24000 hinauf zu setzen.
>
> Es dürfte eigentlich zu keinen Blockaden kommen. 2 Threads müssten
> genug sein.
> Wenn die Performanceprobleme vom ständigen umrühren der Caches und
> Nachladen vom Server (bzw. vom Plattencache) kommen, sollte die
> Verdopplung der Caches schon was bringen.
>
> Jedoch bin ich ein wenig skeptisch.
>
> Was nämlich komisch ist, dass die Clients nach einem Neustart _viel_
> schneller sind. Und da müssen sie aber noch laufend Objekte vom Server
> anfordern.
> So, als ob nicht das Anfordern vom Server, sondern das Umrühren der
> Caches oder das Verwalten von vielen Objekten im Cache die Probleme
> machen würde.
> Vielleicht ist unser Weg mit den großen Caches eh der falsche.
> Vielleicht sind kleine Caches schneller?
> Ein regelmäßiger Neustart der Clients dürfte auch was bringen.
> Sollten wir das fix einmal pro Nacht machen (Schmerzt zwar, aber wenns
> was bringt...)?
>
> Bitte um Eure Kommentare.
Wieviel Speicher benutzen die ZEO clients genau? Ab einer gewissen Speichergroesse ist Python's Garbage Collection gern mal lahm.

Was sagt das load/store-Verhalten im ZMI ueber die Datenbank aus?

Christian

--
Christian Theune · [hidden email]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany http://gocept.com · tel +49 345 1229889 0 · fax +49 345 1229889 1 Zope and Plone consulting and development



_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
ajung

Re: AW: Re: Wieder mal Performance

Reply Threaded More More options
Print post
Permalink
On 24.07.09 09:38, Gross,Thomas Michael wrote:
> Was ist eine "gewisse Speichergrösse? Wieviel Speicher ist für einen ZEO-Client empfohlen? Wenn auf einer Maschine dann zwei Clients laufen, braucht es vom diesem Wert das doppelte?

Der Speicherverbrauch des ZEO hängt im wesentlichen von der Anzahl der
Objekte in der ZODB ab. Der Objektindex
wird im RAM gehalten und der Speicherverbrauch ist proportional zur
Anzahl der Objekte. Dieter hatte mal genaue Angaben
zum benötigen Speicherbedarf je Objekt gepostet...eventuell findet
Google noch das Posting.

Andreas

[lists.vcf]

begin:vcard
fn:Andreas Jung
n:Jung;Andreas
org:ZOPYX Ltd. & Co. KG
adr;quoted-printable:;;Charlottenstr. 37/1;T=C3=BCbingen;;72070;Germany
email;internet:[hidden email]
title:CEO
tel;work:+49-7071-793376
tel;fax:+49-7071-7936840
tel;home:+49-7071-793257
x-mozilla-html:FALSE
url:www.zopyx.com
version:2.1
end:vcard





_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
Peter Zechmeister

Re: Re: Wieder mal Performance

Reply Threaded More More options
Print post
Permalink
In reply to this post by Christian Theune-2
> Wieviel Speicher benutzen die ZEO clients genau? Ab einer gewissen
> Speichergroesse ist Python's Garbage Collection gern mal lahm.
Die Clients haben jeweils 2GB Ram.
Derzeit (nach der Umstellung von 4 auf 2 Threads und von 12.000 auf
24.000 Objekte) sind die am stärksten ausgelasteten Clients bei rund
13.000 Objekte je Connection-Cache (also Insgesamt 26.000 Objekte) und
belegen rund 40% des RAM.
Vor der Umstellung waren die Caches voll. Also insgesamt rund 48.000
Objekte. Das müsste dann rund 70-80% RAM gewesen sein.

> Was sagt das load/store-Verhalten im ZMI ueber die Datenbank aus?
Jetzt (nach der Umstellung) gibt es nur mehr sehr wenige Loads
(500/Stunde). Vor der Umstellung waren es aber auch nicht sehr viele.
Wie sich jetzt zeigt, hatten ja fast alle Objekte im Cache platz. Und es
hat sich gezeigt, dass die schlechte Performance nicht mit einer Häufung
von loads zusammenfiel.
Stores gibt es auf den ausliefernden Clients gar keine, da wir per Pound
Redakteure von Besuchern trennen.

Hier habe ich ja auch schon Berichte gelesen, dass es genüge, die
Object-Caches auf rund 10% der Anzahl der Objekte zu beschränken.
Das wäre bei uns ja ein Wert von nur 1000-1500. Dann gäbe es natürlich
viele loads. Ich bin mir nicht sicher, ob ich das mal probieren soll?

Grü
PeterZ




_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
Peter Zechmeister

Re: AW: Re: Wieder mal Performance

Reply Threaded More More options
Print post
Permalink
In reply to this post by ajung
Wenn ich mit den Angaben aus meinem Beispiel rechne:

2GB RAM
* 40% Verbrauch
/ 26.000 Objekte
= ca. 25 bis 30 KB pro Objekt.

Ich vermute aber, dass das auch mehr sein kann, wenn du zB einen Haufen
Videos in deiner DB hast.

Grü
PeterZ

Am Freitag, den 24.07.2009, 09:40 +0200 schrieb Andreas Jung:

> On 24.07.09 09:38, Gross,Thomas Michael wrote:
> > Was ist eine "gewisse Speichergrösse? Wieviel Speicher ist für einen ZEO-Client empfohlen? Wenn auf einer Maschine dann zwei Clients laufen, braucht es vom diesem Wert das doppelte?
>
> Der Speicherverbrauch des ZEO hängt im wesentlichen von der Anzahl der
> Objekte in der ZODB ab. Der Objektindex
> wird im RAM gehalten und der Speicherverbrauch ist proportional zur
> Anzahl der Objekte. Dieter hatte mal genaue Angaben
> zum benötigen Speicherbedarf je Objekt gepostet...eventuell findet
> Google noch das Posting.
>
> Andreas
>
> _______________________________________________
> zope mailing list
> [hidden email]
> https://mail.dzug.org/mailman/listinfo/zope
--
"Ordnung ist für einfach denkende Menschen das Ergebnis der ordnenden
Tätigkeit eines ordnenden Wesens.", Hayek




_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
Jens Vagelpohl-2

Re: AW: Re: Wieder mal Performance

Reply Threaded More More options
Print post
Permalink
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On Jul 24, 2009, at 10:22 , Peter Zechmeister wrote:

> Wenn ich mit den Angaben aus meinem Beispiel rechne:
>
> 2GB RAM
> * 40% Verbrauch
> / 26.000 Objekte
> = ca. 25 bis 30 KB pro Objekt.
>
> Ich vermute aber, dass das auch mehr sein kann, wenn du zB einen  
> Haufen
> Videos in deiner DB hast.

... deswegen sind solche Pauschalangaben meiner Meinung nach Unsinn.  
Genau so wie Pauschalangaben zur Grösse des ZODB-Cache. Es kommt immer  
auf die Anwendung selber an.

jens



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

iEYEARECAAYFAkppfcYACgkQRAx5nvEhZLKLSQCgtqxtWvHvW5iQuElae8k+G/yG
CecAn3VNXWdjWd64ziagEa4+qtV/yKec
=/xVM
-----END PGP SIGNATURE-----


_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
ajung

Re: AW: Re: Wieder mal Performance

Reply Threaded More More options
Print post
Permalink
In reply to this post by Peter Zechmeister
Ich rede vom Speicherverbrauch auf dem ZEO *Server*.

Ausserdem geht in Deine Rechnung nicht die Anzahl der Workerthreads ein.
Jeder Workerthread hat einen eigenen Cache von N Objekten!

Andreas


On 24.07.09 11:22, Peter Zechmeister wrote:

> Wenn ich mit den Angaben aus meinem Beispiel rechne:
>
> 2GB RAM
> * 40% Verbrauch
> / 26.000 Objekte
> = ca. 25 bis 30 KB pro Objekt.
>
> Ich vermute aber, dass das auch mehr sein kann, wenn du zB einen Haufen
> Videos in deiner DB hast.
>
> Grü
> PeterZ
>
> Am Freitag, den 24.07.2009, 09:40 +0200 schrieb Andreas Jung:
>  
>> On 24.07.09 09:38, Gross,Thomas Michael wrote:
>>    
>>> Was ist eine "gewisse Speichergrösse? Wieviel Speicher ist für einen ZEO-Client empfohlen? Wenn auf einer Maschine dann zwei Clients laufen, braucht es vom diesem Wert das doppelte?
>>>      
>> Der Speicherverbrauch des ZEO hängt im wesentlichen von der Anzahl der
>> Objekte in der ZODB ab. Der Objektindex
>> wird im RAM gehalten und der Speicherverbrauch ist proportional zur
>> Anzahl der Objekte. Dieter hatte mal genaue Angaben
>> zum benötigen Speicherbedarf je Objekt gepostet...eventuell findet
>> Google noch das Posting.
>>
>> Andreas
>>
>> _______________________________________________
>> zope mailing list
>> [hidden email]
>> https://mail.dzug.org/mailman/listinfo/zope
>>    

--
ZOPYX Ltd. & Co KG          \  ZOPYX & Friends
Charlottenstr. 37/1          \  The experts for your Python, Zope and
D-72070 Tübingen              \  Plone projects
www.zopyx.com, [hidden email]  \  www.zopyx.de/friends, [hidden email]
------------------------------------------------------------------------
E-Publishing, Python, Zope & Plone development, Consulting



[lists.vcf]

begin:vcard
fn:Andreas Jung
n:Jung;Andreas
org:ZOPYX Ltd. & Co. KG
adr;quoted-printable:;;Charlottenstr. 37/1;T=C3=BCbingen;;72070;Germany
email;internet:[hidden email]
title:CEO
tel;work:+49-7071-793376
tel;fax:+49-7071-7936840
tel;home:+49-7071-793257
x-mozilla-html:FALSE
url:www.zopyx.com
version:2.1
end:vcard





_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope
Christian Theune-2

Re: AW: Re: Wieder mal Performance

Reply Threaded More More options
Print post
Permalink
On 07/24/2009 11:24 AM, Andreas Jung wrote:
> Ich rede vom Speicherverbrauch auf dem ZEO *Server*.
>
> Ausserdem geht in Deine Rechnung nicht die Anzahl der Workerthreads ein.
> Jeder Workerthread hat einen eigenen Cache von N Objekten!

... und da ist wieder die Frage wie ausgelastet die Seite wirklich ist.
Die Zuordnung Thread -> Connection ist nicht konstant und zuletzt
Connections mit vollen Caches werden lieber wiederverwendet (durch
welche Strategie weiss ich grad nicht) als neue zu benutzen, d.h. wenn
deine Seite nie 4 Threads gleichzeitig braucht, wird auch nur ein Cache
saturiert werden. D.h. ueblicherweise nimmt die tatsaechliche Groesse
der Caches nach hinten hin ab.

Womit wir auch wieder sehen (Jens hat es gerade schon gesagt), dass
pauschale Aussagen nicht funktionieren ;)

Theuni

--
Christian Theune · [hidden email]
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 0 · fax +49 345 1229889 1
Zope and Plone consulting and development



_______________________________________________
zope mailing list
[hidden email]
https://mail.dzug.org/mailman/listinfo/zope