Re: Performance

Andreas Jung <[email protected]>
Newsgroups gmane.comp.web.zope.german
Organization ZOPYX Ltd & Co. KG
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Frank Poetzsch-Heffter wrote:
> Hallo,
>
> meine Plone 3.1.1 Seite ist definitiv zu langsam. Die data.fs ist
> gepackt 4GB groß.
Was heisst zu langsam?

Die üblichen Checks:

Aktuelle Hardware?
Genügend RAM?
Debug Mode ausgeschaltet?
Welche Plattform?
Zope wird regelmässig neugestartet?
Wie gross sind die Zope Prozesse (Speicher)?
Zope Plone Versionen?
Was läuft an Drittsoftware?

...

Regelmässiges Packen scheint Einfluss auf die Geschwindigkeit von Zope
zu haben. Regelmässige Restarts auch.
Ansonsten zeigt das Profile, dass sehr viel Zeit in TransformationEngine
verbracht wird - warum auch immer ...ist das ZPT (sorry, zu faul durch
den Code zu wühlen).

Andreas

>
> Die Cache Parameter zeigen nach meiner Meinung ordentliche Werte:
>
> Total number of objects in the database                  873023
> Total number of objects in memory from all caches    98420 Target
> number of objects in memory per cache          30000
>
> Mit PTProfiler bekomme ich jedoch ungewöhnlich viele
> Funktionsaufrufe (s.u.). Bei neu angelegten Plone-Instanzen bekomme
> ich etwa 350000.
>
> Wenn ich die Inhalte in eine frische Plone-Instanz kopiere ist die
> Seite spürbar schneller. Gibt es eine Idee, die alte Instanz zu
> retten oder muss ich unter dem Verlust der Rechte die Inhalte in
> eine neue Instanz kopieren?
>
> Viele Grüße Frank
> ---------------------------------------------------------------------------------------
>
>
>
9390881 function calls (8965422 primitive calls) in 47.689 CPU
> seconds
>
> Ordered by: cumulative time List reduced from 1870 to 200 due to
> restriction <200>
>
> ncalls  tottime  percall  cumtime  percall
> filename:lineno(function) 2    0.000    0.000   47.689   23.845
> profile:0(profiler) 2    0.000    0.000   47.689   23.845
> profile:0(<function publish_module at 0x7f332437b140>) 2    0.000
> 0.000   47.689   23.845 Publish.py:392(publish_module) 2    0.000
> 0.000   47.689   23.845 Publish.py:181(publish_module_standard) 2
> 0.000    0.000   47.684   23.842 Publish.py:63(publish) 66/2
> 0.001    0.000   47.395   23.697 Bindings.py:311(__call__) 74/2
> 0.002    0.000   47.395   23.697 Bindings.py:331(_bindAndExec) 2
> 0.000    0.000   47.393   23.697 FSPageTemplate.py:173(_exec) 2
> 0.000    0.000   47.393   23.696 FSPageTemplate.py:146(pt_render)
> 49/2    0.001    0.000   47.392   23.696
> ProfilerPatch.py:71(__patched_render__) 49/2    0.001    0.000
> 47.392   23.696 PageTemplate.py:86(pt_render) 53/2    0.002
> 0.000   47.391   23.696 pagetemplate.py:104(pt_render) 53/2
> 0.000    0.000   47.391   23.695 talinterpreter.py:267(__call__)
> 1210/2    0.022    0.000   47.391   23.695
> talinterpreter.py:331(interpret) 12/2    0.000    0.000   47.391
> 23.695 talinterpreter.py:865(do_useMacro) 394/2    0.002    0.000
> 47.386   23.693 talinterpreter.py:530(do_optTag_tal) 290/2    0.002
> 0.000   47.386   23.693 talinterpreter.py:518(do_optTag) 379/2
> 0.006    0.000   47.386   23.693 talinterpreter.py:510(no_tag)
> 1650/214    0.012    0.000   47.343    0.221
> tales.py:691(evaluate) 1809/1159    0.014    0.000   46.718
> 0.040 ProfilerPatch.py:19(__patched_call__) 1370/1006    0.007
> 0.000   46.535    0.046 expressions.py:214(__call__) 1355/991
> 0.013    0.000   46.527    0.047 Expressions.py:144(_eval) 1338/991
> 0.015    0.000   46.332    0.047 Expressions.py:108(render) 1
> 0.000    0.000   46.131   46.131 mapply.py:32(mapply) 1    0.000
> 0.000   46.131   46.131 Publish.py:41(call_object) 43/1    0.000
> 0.000   46.131   46.131 :0(apply) 502    0.004    0.000   45.921
> 0.091 talinterpreter.py:585(do_setLocal_tal) 33/20    0.001
> 0.000   43.631    2.182 talinterpreter.py:918(do_defineSlot) 12/7
> 0.000    0.000   43.453    6.208
> talinterpreter.py:858(do_defineMacro) 544/536    0.005    0.000
> 42.245    0.079 _api.py:106(queryMultiAdapter) 544/536    0.004
> 0.000   42.240    0.079 registry.py:205(queryMultiAdapter) 544/536
> 0.006    0.000   42.236    0.079 adapter.py:477(queryMultiAdapter)
> 10    0.000    0.000   41.918    4.192 __init__.py:21(notify) 10
> 0.000    0.000   41.918    4.192 event.py:24(dispatch) 14/10
> 0.000    0.000   41.918    4.192 _api.py:124(subscribers) 20/10
> 0.000    0.000   41.918    4.192 registry.py:289(subscribers) 20/10
> 0.000    0.000   41.918    4.192 adapter.py:530(subscribers)
> 325/319    0.002    0.000   41.904    0.131
> _api.py:100(getMultiAdapter) 39    0.001    0.000   41.722
> 1.070 ClassGen.py:49(generatedAccessor) 6    0.000    0.000
> 41.715    6.953 __init__.py:27(render) 6    0.000    0.000   41.715
> 6.952 __init__.py:12(notifyFieldEvent) 6    0.000    0.000   41.712
> 6.952 meta.py:75(field_value) 6    0.000    0.000   41.712    6.952
> Field.py:1364(get) 6    0.000    0.000   41.710    6.952
> BaseUnit.py:75(transform) 4    0.000    0.000   41.709   10.427
> TransformEngine.py:91(convertTo) 1    0.135    0.135   41.702
> 41.702 TransformEngine.py:315(_findPath) 402657/1   20.762    0.000
> 41.448   41.448 TransformEngine.py:337(_getPaths) 2791596    6.203
> 0.000    6.204    0.000 UserList.py:28(__getitem__) 403004    2.677
> 0.000    6.005    0.000 UserDict.py:52(get) 1880789    3.954
> 0.000    3.954    0.000 Transform.py:195(name) 158/93    0.006
> 0.000    2.912    0.031 view.py:22(memogetter) 2    0.000    0.000
> 2.861    1.431 ploneview.py:49(globalize) 2    0.001    0.000
> 2.861    1.430 ploneview.py:83(_initializeData) 402664    1.635
> 0.000    2.471    0.000 UserDict.py:34(items) 4220    0.023
> 0.000    2.429    0.001 Connection.py:749(setstate) 405644    1.680
> 0.000    2.413    0.000 UserDict.py:39(has_key) 4220    0.071
> 0.000    2.405    0.001 Connection.py:769(_setstate) 98    0.002
> 0.000    2.202    0.022 ZCatalog.py:654(searchResults) 98    0.002
> 0.000    2.200    0.022 Catalog.py:723(searchResults) 98    0.010
> 0.000    2.179    0.022 Catalog.py:443(search) 19    0.000    0.000
> 2.169    0.114 patches.py:26(searchResults) 19    0.000    0.000
> 2.167    0.114 CatalogTool.py:452(searchResults) 387/168    0.002
> 0.000    1.797    0.011 talinterpreter.py:853(do_condition) 4220
> 0.036    0.000    1.778    0.000 serialize.py:603(setGhostState)
> 4220    0.043    0.000    1.727    0.000
> serialize.py:593(getState) 70/62    0.001    0.000    1.710
> 0.028 instance.py:32(memogetter) 80/31    0.001    0.000    1.709
> 0.055 talinterpreter.py:744(do_insertStructure_tal) 103/31    0.001
> 0.000    1.708    0.055 Expressions.py:222(evaluateStructure) 30/20
> 0.001    0.000    1.701    0.085
> providerexpression.py:13(__call__) 10089/8441    0.173    0.000
> 1.615    0.000 :0(load) 2    0.000    0.000    1.595    0.798
> ploneview.py:516(have_portlets) 6    0.000    0.000    1.592
> 0.265 manager.py:64(portletsToShow) 2    0.000    0.000    1.591
> 0.796 manager.py:47(visible) 2    0.000    0.000    1.591    0.795
> manager.py:98(_lazyLoadPortlets) 358/230    0.002    0.000    1.562
> 0.007 :0(eval) 76    0.001    0.000    1.510    0.020
> Expression.py:40(__call__) 47/27    0.002    0.000    1.483
> 0.055 PageTemplateFile.py:107(_exec) 82    0.001    0.000    1.313
> 0.016 ZRPythonExpr.py:45(__call__) 82    0.001    0.000    1.310
> 0.016 PythonExpr:1(<expression>) 25/20    0.001    0.000    1.291
> 0.065 FSPythonScript.py:144(_exec) 17/16    0.000    0.000    1.285
> 0.080 FSPythonScript.py:137(__call__) 2    0.000    0.000    1.272
> 0.636 context.py:192(actions) 2    0.000    0.000    1.272
> 0.636 ActionsTool.py:94(listFilteredActionsFor) 1    0.000    0.000
> 1.265    1.265 monkey.py:9(zpublisher_exception_hook_wrapper) 1
> 0.000    0.000    1.265    1.265
> startup.py:146(zpublisher_exception_hook) 1    0.000    0.000
> 1.265    1.265 SimpleItem.py:165(raise_standardErrorMessage) 1
> 0.000    0.000    1.264    1.264 Script
> (Python):1(standard_error_message) 4    0.001    0.000    1.252
> 0.313 ActionsTool.py:44(listActionInfos) 21/18    0.000    0.000
> 1.217    0.068 manager.py:79(render) 492/434    0.003    0.000
> 1.196    0.003 ActionInformation.py:197(__getitem__) 4    0.001
> 0.000    1.166    0.291 GroupDataTool.py:185(getGroupMemberIds)
> 479811    1.156    0.000    1.156    0.000 :0(append) 4    0.004
> 0.001    1.136    0.284 groupdata.py:241(getGroupMembers) 417881
> 0.760    0.000    0.997    0.000 :0(has_key) 31/24    0.001
> 0.000    0.969    0.040 talinterpreter.py:821(do_loop_tal) 408610
> 0.949    0.000    0.949    0.000 :0(pop) 404827    0.934    0.000
> 0.936    0.000 UserDict.py:17(__getitem__) 263    0.004    0.000
> 0.913    0.003 PluggableAuthService.py:212(getUserById) 10511
> 0.073    0.000    0.890    0.000
> serialize.py:467(_persistent_load) 1    0.000    0.000    0.884
> 0.884 browser.py:78(search_for_similar) 1    0.000    0.000
> 0.850    0.850 navigation.py:129(available) 1    0.000    0.000
> 0.850    0.850 navigation.py:193(getNavTree) 404201    0.840
> 0.000    0.840    0.000 :0(items) 1    0.000    0.000    0.833
> 0.833 navtree.py:36(buildFolderTree) 253    0.020    0.000    0.753
> 0.003 PluggableAuthService.py:708(_findUser) 5869    0.029    0.000
> 0.742    0.000 ClientStorage.py:720(load) 7    0.001    0.000
> 0.735    0.105 LanguageIndex.py:168(_apply_index) 14    0.496
> 0.035    0.732    0.052 LanguageIndex.py:282(_search) 5869    0.071
> 0.000    0.712    0.000 ClientStorage.py:729(loadEx) 171409/168654
> 0.382    0.000    0.706    0.000 :0(get) 17/14    0.000    0.000
> 0.687    0.049 manager.py:89(render) 11/9    0.000    0.000
> 0.618    0.069 simpleviewclass.py:43(__call__) 5869    0.082
> 0.000    0.615    0.000 cache.py:172(load) 19    0.000    0.000
> 0.588    0.031 common.py:43(render) 591    0.012    0.000    0.571
> 0.001 UnIndex.py:307(_apply_index) 638    0.096    0.000    0.546
> 0.001 :0(union) 254    0.020    0.000    0.514    0.002
> property.py:151(getPropertiesForUser) 6    0.000    0.000    0.501
> 0.083 manager.py:106(render) 5869    0.077    0.000    0.497
> 0.000 cache.py:1000(access) 1974    0.009    0.000    0.496
> 0.000 :0(lookup) 91    0.003    0.000    0.489    0.005
> adapter.py:455(_uncached_lookup) 1896/151    0.260    0.000
> 0.484    0.003 adapter.py:602(_lookup) 3693    0.031    0.000
> 0.458    0.000 DateTime.py:497(__init__) 3693    0.180    0.000
> 0.427    0.000 DateTime.py:508(_parse_args) 8799    0.085    0.000
> 0.399    0.000 serialize.py:481(load_persistent) 1712    0.012
> 0.000    0.393    0.000 serialize.py:533(load_oid) 31    0.000
> 0.000    0.391    0.013 tales.py:681(setRepeat) 1    0.000    0.000
> 0.385    0.385 recent.py:59(available) 1    0.000    0.000    0.385
> 0.385 recent.py:69(_data) 6    0.001    0.000    0.383    0.064
> BaseRegistry.py:823(getEvaluatedResources) 5869    0.155    0.000
> 0.380    0.000 cache.py:606(fromFile) 1650    0.044    0.000
> 0.378    0.000 Connection.py:198(get) 44    0.001    0.000    0.351
> 0.008 BaseRegistry.py:483(evaluateExpression) 19    0.000    0.000
> 0.330    0.017 DateRangeIndex.py:243(_apply_index) 16    0.012
> 0.001    0.326    0.020 :0(multiunion) 35    0.001    0.000
> 0.301    0.009 Lazy.py:140(__getitem__) 2    0.000    0.000
> 0.293    0.146 styles.py:16(styles) 30    0.001    0.000    0.286
> 0.010 Catalog.py:114(__getitem__) 298    0.014    0.000    0.281
> 0.001 Traversable.py:122(unrestrictedTraverse) 2    0.000    0.000
> 0.280    0.140 manager.py:72(render) 1402/1395    0.017    0.000
> 0.276    0.000 expressions.py:108(_eval) 2    0.001    0.000
> 0.275    0.137 BaseRequest.py:337(traverse) 6318    0.268    0.000
> 0.268    0.000 :0(__new__) 1    0.000    0.000    0.265    0.265
> events.py:66(available) 1    0.000    0.000    0.265    0.265
> events.py:91(_data) 262/134    0.002    0.000    0.255    0.002
> pythonexpr.py:56(__call__) 276/148    0.001    0.000    0.250
> 0.002 <string>:0(?) 787    0.028    0.000    0.250    0.000
> talinterpreter.py:382(do_startTag) 279    0.004    0.000    0.243
> 0.001 memberdata.py:57(wrapUser) 4    0.000    0.000    0.230
> 0.057 patches.py:20(safe_render) 1    0.000    0.000    0.229
> 0.229 view.py:40(menu) 1    0.000    0.000    0.228    0.228
> menu.py:48(getMenuItems) 110593    0.225    0.000    0.225    0.000
> LanguageIndex.py:303(<generator expression>) 4    0.000    0.000
> 0.225    0.056 BeforeTraverse.py:96(__call__) 108865/108860
> 0.224    0.000    0.224    0.000 :0(len) 2    0.000    0.000
> 0.223    0.112 PortalObject.py:88(__before_publishing_traverse__) 3
> 0.014    0.005    0.213    0.071 Catalog.py:549(sortResults) 108
> 0.001    0.000    0.212    0.002
> Traversable.py:299(restrictedTraverse) 6153    0.022    0.000
> 0.209    0.000 :0(providedBy) 2    0.000    0.000    0.203    0.101
> event.py:30(objectEventNotify) 2    0.000    0.000    0.201
> 0.100 CMFCatalogAware.py:277(dispatchToOpaqueItems) 2    0.000
> 0.000    0.200    0.100 CMFCatalogAware.py:191(opaqueValues) 2
> 0.003    0.002    0.200    0.100
> CMFCatalogAware.py:154(opaqueItems) 27    0.001    0.000    0.195
> 0.007 manager.py:88(update) 41923/41795    0.164    0.000    0.194
> 0.000 :0(getattr) 435    0.008    0.000    0.193    0.000
> talinterpreter.py:471(attrAction_tal) 66/57    0.001    0.000
> 0.185    0.003 tales.py:586(compile) 1317    0.028    0.000
> 0.184    0.000 PluginRegistry.py:120(listPlugins) 22    0.000
> 0.000    0.177    0.008 ZRPythonExpr.py:30(__init__) 22    0.000
> 0.000    0.177    0.008 RCompile.py:94(compile_restricted_eval) 22
> 0.000    0.000    0.176    0.008 RCompile.py:68(compileAndTuplize)
> 22    0.000    0.000    0.176    0.008 RCompile.py:62(compile) 502
> 0.004    0.000    0.167    0.000 Expressions.py:226(evaluateText)
> 263    0.008    0.000    0.150    0.001
> PluggableAuthService.py:760(_verifyUser) 19    0.000    0.000
> 0.145    0.008 ExtendedPathIndex.py:319(_apply_index) 7    0.010
> 0.001    0.143    0.020 ExtendedPathIndex.py:166(search) 55
> 0.001    0.000    0.131    0.002 namespace.py:37(namespaceLookup)
> 188    0.003    0.000    0.130    0.001
> Expressions.py:68(boboAwareZopeTraverse) 254    0.023    0.000
> 0.126    0.000 property.py:116(_getDefaultValues) 55    0.000
> 0.000    0.125    0.002 namespace.py:338(traverse) 9    0.000
> 0.000    0.125    0.014 volatile.py:263(replacement) 1774/1451
> 0.029    0.000    0.124    0.000 :0(map) 6150    0.030    0.000
> 0.124    0.000 serialize.py:458(find_global) 1202    0.019    0.000
> 0.122    0.000 Expressions.py:88(trustedBoboAwareZopeTraverse) 1
> 0.000    0.000    0.120    0.120 calendar.py:37(_render_cachekey)
> 1649    0.027    0.000    0.118    0.000
> serialize.py:567(getGhost) 23476    0.109    0.000    0.109
> 0.000 :0(read) 1    0.000    0.000    0.107    0.107
> navigation.py:208(render) 144    0.009    0.000    0.107    0.001
> :0(weightedIntersection) 5    0.000    0.000    0.107    0.021
> menu.py:173(getMenu) 2    0.000    0.000    0.106    0.053
> common.py:160(update) 1    0.000    0.000    0.103    0.103
> navigation.py:164(createNavTree) 46674    0.101    0.000    0.101
> 0.000 :0(isinstance) 5869    0.060    0.000    0.095    0.000
> serialize.py:451(_get_unpickler) 6150    0.046    0.000    0.094
> 0.000 ClassFactory.py:17(ClassFactory) 3    0.002    0.001    0.093
> 0.031 constraintypes.py:292(getDefaultAddableTypes) 163    0.002
> 0.000    0.092    0.001 talinterpreter.py:827(translate) 2    0.000
> 0.000    0.092    0.046 scripts.py:16(scripts) 162    0.002
> 0.000    0.088    0.001 Expressions.py:206(translate) 162    0.003
> 0.000    0.085    0.001 i18n.py:33(translate)
>
>
> _______________________________________________ zope mailing list
> [email protected] https://mail.dzug.org/mailman/listinfo/zope


- -- 
ZOPYX Ltd. & Co KG         \ zopyx group
Charlottenstr. 37/1         \ The full-service network for your
D-72070 Tübingen             \ Python, Zope and Plone projects
www.zopyx.com, [email protected] \ www.zopyxgroup.com
- ------------------------------------------------------------------------
E-Publishing, Python, Zope & Plone development, Consulting


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAks5lZYACgkQCJIWIbr9KYyj2QCePgTl5/YWJYzP4gCFhD/CbiYf
L/UAni9MDH39jqfo9dLN1EGhxZNBcCm7
=oc/v
-----END PGP SIGNATURE-----



_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope
lists.vcf (text/x-vcard, 316 B)
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:[email protected]
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
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.