---
name: Bitrix Performance
slug: bitrix-performance
category: DevOps
description: Covers Bitrix performance optimization including composite site, query optimization, replication, sharding, and hot/cold sessions. Use for high-load scenarios beyond basic caching.
github: "https://github.com/bxmaximum/bitrix-framework-skills/tree/main/skills/bitrix-performance"
stars: 19
forks: 3
install: "npx degit https://github.com/bxmaximum/bitrix-framework-skills/tree/main/skills/bitrix-performance ~/.claude/skills/bitrix-performance"
installs_to: ~/.claude/skills/bitrix-performance
source_path: skills/bitrix-performance/SKILL.md
collection_size: 25
category_size: 798
collection_url: "https://dirskills.com/collections/bxmaximum/bitrix-framework-skills"
added: 2026-08-11T07:22:33.411Z
last_synced: 2026-08-11T07:22:33.411Z
canonical_url: "https://dirskills.com/skills/bitrix-performance"
---

# Bitrix Performance

Covers Bitrix performance optimization including composite site, query optimization, replication, sharding, and hot/cold sessions. Use for high-load scenarios beyond basic caching.

**Install:**

```bash
npx degit https://github.com/bxmaximum/bitrix-framework-skills/tree/main/skills/bitrix-performance ~/.claude/skills/bitrix-performance
```

## README

# Performance Optimization

Baseline: **main 23.0+**. Complements skills `bitrix-caching`, `bitrix-sessions`, and `bitrix-database`.

## Composite Site

Technology caching static HTML while loading dynamic blocks via AJAX. Kernel entry points: `\Bitrix\Main\Composite\Engine`, `\Bitrix\Main\Composite\Responder`.

1. Mark dynamic zones: `<div data-dynamic="true">...</div>` or frame mode APIs.
2. Enable in Admin → Settings → Composite Site (Autocomposite or Composite mode).
3. Configure NGINX to serve composite cache pool directly.
4. Clear component cache before enabling.

Modes:
- **Autocomposite** — kernel auto-detects static/dynamic.
- **Composite** — manual zone configuration.

NGINX: point `try_files` to the composite cache pool directory (BitrixVM: *Configure nginx to use composite cache*).

Do not put personalized data in static zone (cart, user name, permissions).

## Query Optimization

- Limit ORM `select` fields.
- Use indexes matching `filter`/`order` columns.
- Avoid N+1 — `fetchCollection()` with relations.
- Batch operations instead of per-row updates.
- Enable ORM query cache where appropriate.
- Use `SqlTracker` in dev to find slow queries (skill `bitrix-database`).

## Replication and Clustering

- MySQL master-slave for read scaling.
- Extra connections via `.settings.php` `connections` and `\Bitrix\Main\Data\ConnectionPool` (`Application::getConnectionPool()` / `Application::getConnection('name')`).
- Read-only analytics queries → separate connection.

## Sharding

Horizontal partitioning for very large tables (enterprise scenarios). Kernel support varies by edition.

## Hot/Cold Sessions

Related to separated session mode (`bitrix-sessions`):

- Hot data (kernel `$_SESSION['BX']`) → encrypted cookies.
- Cold data → Redis/DB backend.
- Reduces storage round-trips on every hit.

## Checklist

- [ ] Composite tested with all dynamic blocks (cart, auth, personal).
- [ ] NGINX composite cache configured in production.
- [ ] Slow queries identified and indexed.
- [ ] Session backend matches load (Redis for high-traffic).
- [ ] File cache replaced with Redis/Memcached in production.
