All posts by Mario Wehr

Fix slow Typo3 6.2 backend with installed fluidcontent extension

We at CUAS switched last year our main Homepage from Typo3 4.2 -> 6.2.x. After stabilizing our content and going live we noticed a 3-5 second delay on every action taken on the Backend. I’ve enabled caching stuff, switched the caching to memcached and did all things to accelerate Typo3. But the 3-5 second delay keeps.

Yeasterday I decided that a last effort should be made to determine the problem that leads to the delay. I set up PHP profiling on our live system an recorded some backend actions.

According to the profile logs our delay problem happens in the “fluidcontent” extension (4.3.3) which builds up some wizard tab content. In this prozess fluidcontent also checks if some other extensions which are providing templates have some icons setup.

The problem occurs in “/fluidcontent/Classes/Service/ConfigurationService.php”. There is a function “buildWizardTabItem” which is called thousend times generating Icons.

My workaround to this behaviour is to disable “getIconForTemplate” and “createIcon” method call.

Just add a “_” to the method test part.

if (TRUE === method_exists(‘FluidTYPO3\\Flux\\Utility\\MiscellaneousUtility’, ‘getIconForTemplate_’)) {
and
if (TRUE === method_exists(‘FluidTYPO3\\Flux\\Utility\\MiscellaneousUtility’, ‘createIcon_’)) {

This fixes our delay to < 1s 🙂 , the drawback is that you end with standard icons in the corresponding fluid modules.

have a nice day 🙂

Mario

 

Tune Apache-MPM prefork with some Webminstats

A couple of days ago I started to do some optimizations on our server backends. Most of them are Apache-Prefork PHP powered.

One part of doing Apache-Tuning is to play around with the MPM configuration:

<ifmodule prefork.c>
  StartServers       4
  MinSpareServers    3
  MaxSpareServers   10
  ServerLimit      256
  MaxClients       256
  MaxRequestsPerChild  10000
</ifmodule>

The particular configuration setting for Apache can be found in the file /etc/apache/httpd.conf

I’m using Webmin->Sysstats to get some basic data where I can start from.

First I wanted to know the average and total memory usage of the apache worker process(es).

ApacheMemStat
Apache memory consumption (total, per worker)

As you can see after a few days you get a clew about how our worker memory consumption behaves.

Especially the per worker chart is import which gives you a hint for the MaxClients and ServerLimit settings.

The used bash script :

-getApachePerWorkerMem)
   ps -ylC apache2 | awk '{x += $8;y += 1} END {print x/((y-1)*1024)}';;
-getApacheTotalMemPercent)
   sys_mem=`free -m | awk 'NR==2{print $2 }'`
   apache_total_mem=`ps -ylC apache2 | awk '{x += $8;y += 1} END {print x/1024;}'`
   echo "scale=2;$apache_total_mem/($sys_mem/100)" | bc;;

Another important part is the relation of idle and busy workers.

Apache amount and relation of busy/idle workers
Apache amount and relation of busy/idle workers

Here we see that in this particular case we have an average ratio 10/2 (idle/busy) and our max is about (11/7) which gives a balanced amount of idle and busy workers.

The used bash script :

-getApacheBusyWorker)
  echo `wget -q -O - "$URL" --user="$USER" --password=$PASS |grep BusyWorker |cut -d" " -f2`;;
-getApacheIdleWorker)
  echo `wget -q -O - "$URL" --user="$USER" --password=$PASS |grep IdleWorker |cut -d" " -f2`;;

have fun

Mario

ABS Aceton Finishing/Cooking Station

Every real 3D print needs nice finishing. 🙂

So I decided to give the Aceton cooking station finishing idea a try.

See for yourself:

 

Ultimaker² hits FH-Kärnten – Degree Program Medical Engineering

Today we got our brand new 3D-Printer (Ultimaker²) on our department. 🙂
The first printing tests look very promising. Our first projekt will be the inmoov project link