.. include:: /Includes.rst.txt
.. _troubleshooting-performance-issues:
====================
Performance Issues
====================
Solutions for performance problems, slow loading, and optimization strategies.
.. contents:: Table of Contents
:local:
:depth: 2
Editor Performance
==================
Issue: Slow Editor Loading
---------------------------
**Symptoms:**
* CKEditor takes long time to initialize
* Image browser slow to open
**Causes:**
1. Large number of files in file browser
2. Unoptimized image processing settings
3. Network latency
4. Browser resource constraints
**Solutions:**
1. **Optimize Image Processing:**
.. code-block:: php
// LocalConfiguration.php
$GLOBALS['TYPO3_CONF_VARS']['GFX']['jpg_quality'] = 85;
$GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_effects'] = false; // If not needed
2. **Reduce Maximum Dimensions:**
.. code-block:: typoscript
RTE.default.buttons.image.options.magic {
maxWidth = 1200 # Instead of 1920
maxHeight = 800 # Instead of 9999
}
3. **Limit File Browser Results:**
Configure file mounts to show only relevant directories:
.. code-block:: typoscript
# User TSConfig
options.folderTree.uploadFieldsInLinkBrowser = 0
options.pageTree.showPageIdWithTitle = 0
.. tip::
Reducing maximum dimensions can significantly improve editor performance.
----
Issue: Image Selection Dialog Slow
-----------------------------------
**Symptoms:**
* Modal takes long time to open
* Thumbnails load slowly
* Browser becomes unresponsive
**Causes:**
1. Too many files in directory
2. Large unprocessed images
3. Missing thumbnail cache
**Solutions:**
1. **Organize Files into Subdirectories:**
* Group images by category
* Use year/month folder structure
* Keep directories under 100 files
2. **Pre-generate Thumbnails:**
.. code-block:: bash
# Generate missing thumbnails
./vendor/bin/typo3 cleanup:missingfiles
./vendor/bin/typo3 cleanup:previewlinks
3. **Optimize File Storage:**
.. code-block:: typoscript
# Limit file selection to specific folders
options.defaultUploadFolder = 1:fileadmin/user_upload/
----
Frontend Performance
====================
Issue: Slow Page Load Due to Images
------------------------------------
**Symptoms:**
* Pages load slowly
* Large images not processed
* High bandwidth usage
**Causes:**
1. Original large images served instead of processed versions
2. No image compression
3. Missing lazy loading
4. Too many images on page
**Solutions:**
1. **Enable Image Processing:**
.. code-block:: php
// LocalConfiguration.php
$GLOBALS['TYPO3_CONF_VARS']['GFX'] = [
'processor_enabled' => true,
'processor' => 'ImageMagick',
'jpg_quality' => 85,
];
2. **Configure Reasonable Maximum Dimensions:**
.. code-block:: typoscript
RTE.default.buttons.image.options.magic {
maxWidth = 1920
maxHeight = 1080
}
3. **Implement Lazy Loading:**
.. code-block:: typoscript
lib.parseFunc_RTE.tags.img {
current = 1
preUserFunc = Netresearch\RteCKEditorImage\Controller\ImageRenderingController->renderImageAttributes
stdWrap.replacement {
10 {
search =
ExpiresActive On
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
----
Issue: Excessive Bandwidth Usage
---------------------------------
**Symptoms:**
* High server bandwidth consumption
* Slow site on mobile devices
* Large page sizes
**Solutions:**
1. **Use WebP Format:**
.. code-block:: php
// LocalConfiguration.php
$GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_allowUpscaling'] = false;
$GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_stripColorProfileByDefault'] = true;
2. **Implement Progressive JPEG:**
.. code-block:: php
$GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_interlace'] = true;
3. **Compress Images:**
.. code-block:: php
$GLOBALS['TYPO3_CONF_VARS']['GFX']['jpg_quality'] = 80;
----
Image Processing Performance
=============================
Issue: Image Processing Timeouts
---------------------------------
**Symptoms:**
* 500 errors when uploading images
* Processing hangs
* Timeouts in backend
**Causes:**
1. Insufficient PHP memory
2. Low execution time limits
3. Slow image processor
4. Very large source images
**Solutions:**
1. **Increase PHP Limits:**
.. code-block:: php
// php.ini or LocalConfiguration.php
memory_limit = 512M
max_execution_time = 300
upload_max_filesize = 20M
post_max_size = 20M
2. **Optimize Image Processor:**
.. code-block:: php
// LocalConfiguration.php
$GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_path_lzw'] = '';
$GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_colorspace'] = 'RGB';
3. **Limit Upload Size:**
.. code-block:: typoscript
# Page TSConfig
RTE.default.buttons.image.options.magic {
maxFileSize = 5000 # 5MB in KB
}
----
Issue: Processed Images Directory Growing
------------------------------------------
**Symptoms:**
* Large ``_processed_/`` directory
* Disk space issues
* Duplicate processed images
**Causes:**
1. Old processed images not cleaned up
2. Multiple versions of same image
3. Unused processed files accumulating
**Solutions:**
1. **Clean Old Processed Files:**
.. code-block:: bash
# Remove processed files older than 30 days
find fileadmin/_processed_ -type f -mtime +30 -delete
2. **Implement Automated Cleanup:**
.. code-block:: php
// LocalConfiguration.php
$GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_allowTemporaryMasksAsPng'] = false;
3. **Schedule Cleanup Task:**
Create a scheduler task to regularly clean old processed images:
.. code-block:: bash
# Cron job example (runs weekly)
0 2 * * 0 find /path/to/fileadmin/_processed_ -type f -mtime +30 -delete
----
Database Performance
====================
Issue: Large Database Size
---------------------------
**Symptoms:**
* Database growing rapidly
* sys_refindex table very large
* Slow queries
**Causes:**
1. Excessive soft reference entries
2. Orphaned records
3. Unoptimized indexes
**Solutions:**
1. **Rebuild Reference Index:**
.. code-block:: bash
./vendor/bin/typo3 referenceindex:update
2. **Clean Up Orphaned Records:**
.. code-block:: sql
-- Find images in deleted content
SELECT uid, bodytext
FROM tt_content
WHERE deleted = 1 AND bodytext LIKE '%data-htmlarea-file-uid%';
3. **Optimize Tables:**
.. code-block:: sql
OPTIMIZE TABLE sys_refindex;
OPTIMIZE TABLE tt_content;
----
Issue: Slow Reference Index Updates
------------------------------------
**Symptoms:**
* Reference index update takes long time
* High CPU usage during updates
**Solutions:**
1. **Batch Update References:**
.. code-block:: bash
# Update in smaller batches
./vendor/bin/typo3 referenceindex:update --check
2. **Schedule Off-Peak Updates:**
Run reference index updates during low-traffic periods:
.. code-block:: bash
# Cron job (runs at 3 AM)
0 3 * * * /path/to/vendor/bin/typo3 referenceindex:update
----
Cache Performance
=================
Issue: Excessive Cache Invalidation
------------------------------------
**Symptoms:**
* Caches cleared too frequently
* Slow page regeneration
* High server load
**Causes:**
1. Aggressive cache clearing
2. Content changes trigger full cache clear
3. Misconfigured cache tags
**Solutions:**
1. **Optimize Cache Configuration:**
.. code-block:: php
// LocalConfiguration.php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['pages'] = [
'backend' => \TYPO3\CMS\Core\Cache\Backend\RedisBackend::class,
'options' => [
'hostname' => 'localhost',
'database' => 0,
'port' => 6379,
],
];
2. **Use Cache Tags Effectively:**
.. code-block:: typoscript
config {
cache_period = 86400
sendCacheHeaders = 1
}
3. **Implement Selective Cache Clearing:**
.. code-block:: bash
# Clear only specific cache groups
./vendor/bin/typo3 cache:flush --group=pages
----
Network Performance
===================
Issue: Slow Image Loading from CDN
-----------------------------------
**Symptoms:**
* Images load slowly despite CDN
* Inconsistent loading times
* Failed CDN requests
**Solutions:**
1. **Configure Proper CDN:**
.. code-block:: typoscript
config {
absRefPrefix = /
baseURL = https://cdn.yourdomain.com/
}
2. **Use HTTP/2:**
Ensure your server supports HTTP/2 for multiplexing
3. **Implement Preconnect:**
.. code-block:: html
----
Monitoring and Profiling
=========================
Performance Monitoring
----------------------
1. **Enable TYPO3 Admin Panel:**
.. code-block:: typoscript
config.admPanel = 1
2. **Monitor Image Processing:**
.. code-block:: bash
# Check processing time
./vendor/bin/typo3 backend:test:imageprocessing
3. **Track Page Load Times:**
Use browser DevTools Network tab to monitor:
* Image load times
* TTFB (Time to First Byte)
* Total page load time
Database Query Profiling
-------------------------
.. code-block:: sql
-- Find slow queries
SHOW PROCESSLIST;
-- Analyze reference index queries
EXPLAIN SELECT * FROM sys_refindex WHERE tablename='tt_content';
Image Processing Profiling
---------------------------
.. code-block:: bash
# Time image processing
time ./vendor/bin/typo3 backend:test:imageprocessing
# Monitor processed files
watch -n 5 "ls -lh fileadmin/_processed_/ | wc -l"
----
Optimization Best Practices
============================
Image Optimization Checklist
-----------------------------
✓ **Configure reasonable maximum dimensions:**
.. code-block:: typoscript
RTE.default.buttons.image.options.magic {
maxWidth = 1920
maxHeight = 1080
}
✓ **Enable image processing:**
.. code-block:: php
$GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_enabled'] = true;
✓ **Set appropriate JPEG quality:**
.. code-block:: php
$GLOBALS['TYPO3_CONF_VARS']['GFX']['jpg_quality'] = 85;
✓ **Implement lazy loading:**
.. code-block:: html
✓ **Use browser caching:**
.. code-block:: apache
ExpiresActive On
ExpiresByType image/jpeg "access plus 1 year"
✓ **Regular cleanup of processed files:**
.. code-block:: bash
find fileadmin/_processed_ -type f -mtime +30 -delete
✓ **Monitor disk space and database size**
✓ **Optimize images before upload** (recommend to editors)
Server Optimization Checklist
------------------------------
✓ **Adequate PHP memory:** 512M minimum
✓ **Fast image processor:** ImageMagick or GraphicsMagick
✓ **Redis/Memcached for caching**
✓ **HTTP/2 support enabled**
✓ **CDN for static assets**
✓ **Regular database optimization**
✓ **Scheduled cleanup tasks**
----
Related Documentation
=====================
**Other Troubleshooting Topics:**
* :ref:`troubleshooting-installation-issues` - Installation and setup problems
* :ref:`troubleshooting-editor-issues` - Editor and backend problems
* :ref:`troubleshooting-frontend-issues` - Frontend rendering issues
**Additional Resources:**
* :ref:`integration-configuration` - Configuration guide
* :ref:`architecture-system-components` - Image processing details
* :ref:`best-practices` - Performance best practices
Getting Help
============
If issues persist after troubleshooting:
1. **Check GitHub Issues:** https://github.com/netresearch/t3x-rte_ckeditor_image/issues
2. **Review Changelog:** Look for performance improvements in CHANGELOG.md
3. **TYPO3 Slack:** Join `#typo3-cms `__
4. **Stack Overflow:** Tag questions with ``typo3`` and ``performance``
.. important::
When reporting performance issues, include:
* TYPO3 version
* Extension version
* PHP version and limits
* Server specifications
* Database size
* Number of images
* Performance measurements
* Profiling data