Hi there,
I just installed a Typo3 6.1.1 with the Introduction Package (and nothing more) on an up to date Virtualmin Vhost. Virtualmin is running on an virtual (Windows Server 2012 Hyper-V guest) Ubuntu 12.04 (all packages are up to date) with 12 GB memory and access to the whole CPU (i7-2600) and nearly no load at all.
And I have page load times (and parstimes) of 3 to 5 seconds for pages which are already cached by the Typo3 caching mechanism and 8 seconds and (far) more for pages which aren't.
I am trying to figure out the problem for the last two days and am now giving up. The project in question will either be not implemented with Typo3 or get completely different hard- and software. Anyhow as I remember that I had similar problems (also not this severe) with a Typo3 4.x on a similar system (dedicated Ubuntu Server with Virtualmin) about 2 years ago and Google had a lot of Typo3 performance tips but none relevant to my problem (as none did help), I guess the problem comes from something very special about my setup and is maybe also Virtualmin related. So I thought maybe I'm not the only one with this kind of problem among the Virtualmin users and it could be a good idea to start this thread to gather some information (and maybe get a solution someday which could help someone).
So here some things I tried and some other data regarding the Virtualmin installation and the server:
Script Start 2
Back End user initialized 796
Process ID 1699
Process ID/beUserLogin 1736
Process ID/fetch_the_id initialize/ 1929
Process ID/fetch_the_id domain/ 2430
Process ID/fetch_the_id rootLine/ 2430
Start Template 2436
Get Page from cache 2436
Parse template 2437
Setting the config-array 2647
Setting language and locale 2647
Page generation 2648
php, initialize 2847
php, render 2850
page PAGE 2850
Include libraries 2851
substituteMarkerArrayCached 4568
Include libraries 4571
substituteMarkerArrayCached 4572
Page generation/Local anchor fix, all 4574
Page generation/Tidy, cached 4575
Page generation/Index page 4575
Print Content 4958
4970
That's all I know so far and maybe this is useful for someone some time. If anybody can add something I could also test and post results as I will not delete the Typo3 Installation in the near future.
Best regards
I spent some more of my time to troubleshoot this some further as I couldn't just leave it be...
And I was able to find the culprit: The MySQL DB respectively the InnoDB engine. Setting all Typo3 tables to the MyIASM (or MEMORY but beware of data loss) engine 'fixes' the problem instantly but of course isn't satisfying.
So I digged a little further and it looks like the InnoDB settings aren't touched by Virtualmin and so the default values are used. This doesn't seem to be a problem on 'little' systems but you can see from my first post that on the system in question a lot of applications with a real lot of databases and tables were installed (also only barely used). Still I only noticed performance problems in Typo3 as it is really massive in terms of DB usage compared to all the others systems (a single page load can trigger nearly 100 INSERTs and DELETEs on its cache_* tables which are InnoDB per default). On the problematic system one of these queries took about 0.05 to 0.5 seconds, which summed up. Optimizing the InnoDB settings changed that to 0.0001 to 0.0005 seconds, just like it should. Typo3 now has parstimes (far) below 400 ms.
I basically followed the MySQL InnoDB setting suggestions posted here: http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimi... Further information can be found here: http://dev.mysql.com/doc/refman/5.5/en/optimizing-innodb.html
In my specific case I added the following configuration:
innodb_buffer_pool_size = 8G
innodb_log_file_size = 256M
innodb_log_buffer_size = 4M
innodb_flush_log_at_trx_commit = 2
innodb_thread_concurrency = 8
innodb_flush_method=O_DIRECT
innodb_file_per_table
table_open_cache = 5000
(Obviously the first two values are the ones which normally have the most impact. And taking into account that the default of innodb_buffer_pool_size is 128M the changes were quite massive. But I guess the other options are also quite useful for my case.)
Best regards
I'm glad you figured out the issue -- thanks for letting us know how you fixed it!