This page lists practical optimizations to keep EAC fast and lean: execution purges, server monitoring, scheduler hygiene, and server-status cleanup.
Quick wins (checklist)
- Configure scheduled purges for executions and logs.
- Watch Execution Server graphs (CPU %, Memory %) and error KPIs.
- Keep scheduling enabled and tune reschedule delay.
- Run server status sampler every minute and purge old statuses daily.
- Keep ETL log tables small via retention + DB maintenance.
Execution & log retention
Each run writes an execution record and logs. Without retention, UI lists and dashboards slow down and DB/files grow indefinitely.
Strategies
- History window (recommended): keep the last 30–90 days per task.
- Fixed count: keep the last 200–1000 executions per task.
- Longest executions: keep 10–50 longest for performance analysis.
Set these via:
- Manual purge: Tasks → {Task} → Last executions → Purge the executions of the task
- Scheduled purge: Tasks → {Task} → Cron planification → Add scheduler → Purge past executions
Modes:date,history,total,duration.
See the Purges page for details and examples.
Monitor servers
Open Monitoring to validate:
- Each node sends heartbeats (CPU/Memory sparklines not flat at 0%).
- Error Execution gauges (day/week/month) stay near zero.
- The master and any slaves show “Last status received … seconds/minutes ago”.
Tip: if “hours ago”, your sampler isn’t running—see below.
Screenshot placeholders:

Scheduling hygiene
In Settings → Scheduling & System:
- Enable scheduling:
true. - Reschedule old task after X (min): start with 10; raise to 15–30 on busy systems.
- Keep Cron user set to your service account (e.g.
eac) and ensure directories are writable.
Avoid enabling parallel launch unless the ETL job is idempotent and designed for concurrency.
Server status sampler & purge
EAC samples node CPU/Memory via a console command and stores recent points for graphs.
Sampler (every minute)
Run on every EAC node:
php bin/console eac:server-status --every=3 --env=prod
Cron example (bare metal/VM)
* * * * * cd /var/www/html/eac && /usr/bin/php bin/console eac:server-status --every=3 --env=prod >/dev/null 2>&1
Daily purge of old samples (required)
Removes stale status rows to keep graphs snappy:
php bin/console eac:server-status:purge --days=4 --env=prod
Cron (daily at 02:10)
10 2 * * * cd /var/www/html/eac && /usr/bin/php bin/console eac:server-status:purge --days=4 --env=prod >/dev/null 2>&1
Systemd timer (optional)
# /etc/systemd/system/eac-server-status.timer
[Timer]
OnCalendar=*:0/1
Persistent=true
# /etc/systemd/system/eac-server-status-purge.timer
[Timer]
OnCalendar=daily
Persistent=true
Keep 4–7 days of server statuses; more provides no benefit and grows storage.
ETL logging footprint
If ETL logs are enabled (APP_ENABLE_ETL_LOGS=true):
Retention. Purge old execution records on a schedule; keep only what you need for ops & audits.
Scope. Apply purges to ETL_STAT_TABLE_NAME, ETL_MET_TABLE_NAME, and ETL_LOG_TABLE_NAME.
Performance. Add indexes on the fields you filter by most (start_time, job, status, context).
— PostgreSQL (rename tables/columns to match your schema)
CREATE INDEX IF NOT EXISTS idx_stat_start ON talend_stat(start_time);
CREATE INDEX IF NOT EXISTS idx_stat_job ON talend_stat(job);
CREATE INDEX IF NOT EXISTS idx_stat_status ON talend_stat(status);
Log backend choice
Settings → Task logs type:
db: fastest for searching/paging inside EAC; increases DB size.file: reduces DB size; ensure the log directory is on fast storage and rotated by purges.
Runtime tips
- Keep Symfony in prod mode:
APP_ENV=prod,APP_DEBUG=0; warmup cache after deploy:php bin/console cache:clear --env=prod && php bin/console cache:warmup --env=prod - Disable dev extensions (Xdebug, verbose loggers) on production nodes.
- JVM sizing for Talend jobs: keep
-Xmssmall,-Xmxappropriate to dataset; avoid overcommitting memory.
