OPcache for 1C-Bitrix: Optimize with Configuration & Monitoring

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Showing 1 of 1All 1626 services
OPcache for 1C-Bitrix: Optimize with Configuration & Monitoring
Simple
~1 day
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1359
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    947
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    694
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    832
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1075

The first request to 1C-Bitrix: PHP reads, parses, and compiles dozens of kernel files. Without OPcache, this happens on every access. On a typical project with 20,000 PHP files, initial compilation takes up to 0.5 seconds. A properly configured OPcache stores bytecode in shared memory, speeding up response by 3–5 times and reducing CPU load by 20–30%. With OPcache, a page loads up to 5x faster than without it — that's a clear comparison. Wikipedia defines OPcache as an opcode cache that can double PHP performance.

According to official PHP documentation, OPcache stores compiled bytecode in shared memory and uses it for subsequent requests, eliminating compilation phases. With over 5 years of experience and 50+ Bitrix projects, we guarantee professional configuration. We have been configuring Bitrix projects for over 5 years and have optimized OPcache for 50+ sites of varying complexity. Let's break down why standard PHP parameters don't fit Bitrix, how to set optimal values, and how to automate cache clearing on deploy.

Why Default OPcache Settings Don't Fit 1C-Bitrix

Default PHP parameters are designed for an average application that includes 10–20 files per request. In Bitrix, it's 200–400 files. Because of this, OPcache quickly fills up, the cache is evicted, and compilation repeats. As a result, the hit rate drops below 85%, and the server wastes resources on recompilation. Proper OPcache optimization for Bitrix requires careful tuning.

Diagnosing the current state is the first step. PHP OPcache diagnostics is critical. Use this script:

$status = opcache_get_status();
echo "Cached files: " . $status['opcache_statistics']['num_cached_scripts'] . "\n";
echo "Cache full: " . ($status['cache_full'] ? 'YES' : 'NO') . "\n";
echo "Hit rate: " . round($status['opcache_statistics']['opcache_hit_rate'], 2) . "%\n";
echo "Memory used: " . round($status['memory_usage']['used_memory'] / 1024 / 1024, 1) . " MB\n";
echo "Memory free: " . round($status['memory_usage']['free_memory'] / 1024 / 1024, 1) . " MB\n";

If cache_full = YES, increase memory_consumption. If hit rate is below 90%, check if the cache is being cleared on deploy.

Step-by-Step OPcache Configuration for 1C-Bitrix

Follow these steps to configure OPcache for your Bitrix site. This PHP configuration for 1C-Bitrix ensures optimal performance. Bitrix OPcache caching is essential for performance.

  1. Check current status – Run the diagnostic script above to identify issues.
  2. Set optimal parameters – Edit php.ini with recommended values (see table below).
  3. Enable huge pages – If your Linux kernel supports it, enable opcache.huge_code_pages for extra CPU savings.
  4. Restart PHP-FPM – Apply changes with systemctl reload php8.1-fpm.
  5. Monitor hit rate – Use opcache-gui or Prometheus to ensure hit rate stays above 95%.

In the php.ini file (or /etc/php.d/10-opcache.ini), set parameters for Bitrix. Recommended values:

Parameter Recommendation for Bitrix Explanation
opcache.memory_consumption 192 MB For Enterprise — 256 MB, for Business — 128 MB
opcache.interned_strings_buffer 16 MB For storing string constants
opcache.max_accelerated_files 32531 Must exceed the total number of PHP files
opcache.validate_timestamps 0 On production — maximum speed
opcache.revalidate_freq 60 Not used when validate_timestamps=0
opcache.huge_code_pages 1 Enable for huge pages
opcache.optimization_level 0x7FFEBFFF AST optimization
opcache.file_cache /tmp/opcache Backup file cache
opcache.restrict_api /var/www Restrict clearing from code

Example configuration:

[opcache]
opcache.enable = 1
opcache.enable_cli = 0
opcache.memory_consumption = 192
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 32531
opcache.revalidate_freq = 60
opcache.validate_timestamps = 0
opcache.optimization_level = 0x7FFEBFFF
opcache.huge_code_pages = 1
opcache.file_cache = /tmp/opcache
opcache.restrict_api = /var/www

How to Clear OPcache on Deploy

With validate_timestamps = 0, OPcache does not check file changes. After code updates, clearing is required. The most reliable method is restarting PHP-FPM:

systemctl reload php8.1-fpm

Programmatic clearing via CLI (only if CLI uses the same OPcache as FPM):

php -r "opcache_reset();"

For automation, add a script with access limited to localhost:

<?php
if ($_SERVER['REMOTE_ADDR'] !== '127.0.0.1') {
    http_response_code(403);
    exit;
}
opcache_reset();
echo "OPcache reset OK\n";

Include a call to this script in the deploy process (after file updates).

How to Interpret OPcache Metrics

Metric Green status What to do if bad
Hit rate >95% Increase memory_consumption or check clearing
Cache full NO Increase memory_consumption
Used memory <80% of allocated Increase memory_consumption
OOM errors 0 Increase memory or huge pages
Additional InformationFor high-load projects, additionally use monitoring via Prometheus with the ORC exporter or install opcache-gui. This allows tracking hit rate in real time.

What's Included in Turnkey OPcache Configuration

We perform a full cycle of work:

  • Diagnostics of the current OPcache and server state.
  • Selection of parameters for your project (PHP version, number of files, load).
  • Configuration of php.ini and PHP-FPM pool.
  • Enabling huge code pages on Linux (if kernel supports).
  • Automation of cache clearing on deploy.
  • Installation of monitoring (opcache-gui or integration with Prometheus/Grafana).
  • Documentation and recommendations for further optimization.

After configuration, you get a stable hit rate >95% and reduced response time. We guarantee performance improvement — typical configuration costs $350 and can save up to $1,000 per month on server infrastructure. Our experience: 5+ years, 50+ Bitrix projects, 5 years on the market. Order professional configuration to avoid common mistakes. Contact us for an assessment—we'll discuss details and choose the optimal solution.

Estimated Timelines and Cost

Configuration takes from 1 to 3 business days depending on the server infrastructure complexity. Cost is calculated individually after analyzing your project. Contact us for an assessment—we'll discuss details and choose the optimal solution.

Common OPcache Configuration Mistakes

  • Too small memory_consumption — cache overflows, hit rate drops.
  • max_accelerated_files less than the actual number of PHP files — some files are not cached.
  • validate_timestamps enabled on production — extra checks on every request.
  • No automation of cache clearing on deploy — code changes are not applied.
  • Forgot to enable huge_code_pages on Linux — loss of 5–15% CPU performance.

Avoiding these mistakes will yield maximum benefit from OPcache. If you need help, order professional configuration.

What Professional 1C-Bitrix Installation Includes

We start by checking innodb_buffer_pool_size. The default MySQL value (128 MB) is a death sentence for an online store with a catalog of 10,000+ items. We set 70–80% of available RAM on a dedicated server, 50% on VPS. This single setting speeds up the site by 2–3 times compared to the default. We'll assess your project in one day — get a consultation. Contact us to order turnkey installation with performance guarantee.

How to Choose Hosting and Edition for 1C-Bitrix Installation?

BitrixVM is a virtual machine with a pre-installed stack: nginx + Apache, PHP-FPM, MySQL/MariaDB, Sphinx, Push server. For VPS — the best start. Everything is already configured for Bitrix, including OPcache, log rotation, and firewall. Management via web panel on port 8890. Bitrix documentation recommends starting with BitrixVM for predictable performance.

VPS/VDS is the sweet spot. Minimum configuration for a medium online store: 2 vCPU, 4 GB RAM, SSD. Optimal: 4 vCPU, 8 GB RAM. OS: Ubuntu 22.04 or Debian 12. If not BitrixVM, we configure the stack manually for the task. Virtual hosting — only for business cards and landing pages. Requirements: PHP 8.0+, MySQL 5.7+ / MariaDB 10.0+, 512 MB RAM, .htaccess. 1C-Bitrix hosting partners guarantee compatibility. Dedicated server — for highload. Typical architecture: web server separate, database separate, Redis/Memcached separate. For Enterprise edition — web cluster with load balancer. Cloud (Yandex Cloud, VK Cloud, Selectel) — when load spikes: sales, seasonal peaks. Autoscaling via Managed Kubernetes or simple VM vertical scaling.

Choosing the edition is equally important. A common mistake: choosing "Small Business" for a store that grows to B2B with wholesale prices and three warehouses in six months. Upgrading to "Business" — pay the difference, data is not lost, but it's better to plan ahead. Our specialists select the edition for current tasks and with room for growth. For example, the "Business" license (about 35,000 RUB) pays off through multi-warehouse and 1C exchange, while the wrong choice can lead to a loss of up to 30,000 RUB monthly on excess resources.

Edition For Whom Key Limitation
Start Business cards, landing pages No infoblocks 2.0, no trade catalog
Standard Corporate sites No e-commerce module
Small Business Small stores 1 price type, 1 warehouse, no 1C exchange
Business Medium stores, B2B Multi-warehouse, multicurrency, CommerceML
Enterprise Highload, cluster Web cluster, CDN, multisite

What Server Settings Are Critical for 1C-Bitrix?

Web Server and PHP

nginx as reverse proxy + Apache (mod_php) or nginx + PHP-FPM directly. The second option saves memory — Apache is not needed. But some Bitrix modules use .htaccess, so for compatibility we sometimes keep Apache. nginx configuration: fastcgi_read_timeout 300 — for long operations (1C import), client_max_body_size 1024m — large file uploads. Block access to .settings.php, .settings_extra.php, bitrix/.settings.php — they contain database passwords. Rewrite rules from urlrewrite.php — Bitrix generates them, but with nginx + PHP-FPM they need to be duplicated. PHP 8.0–8.2 with extensions: mbstring, curl, gd, xml, json, opcache, redis/memcached. Key php.ini settings: opcache.memory_consumption=256, opcache.max_accelerated_files=20000, max_execution_time=300, memory_limit=512M, upload_max_filesize=100M, post_max_size=128M.

Database and Caching

MySQL/MariaDB. Key my.cnf parameters: innodb_buffer_pool_size — 70–80% RAM, innodb_log_file_size=256M, tmp_table_size=256M, max_heap_table_size=256M, thread_pool_size — number of CPU cores. Encoding utf8mb4 mandatory, otherwise emoji and special characters break. Redis is preferable to Memcached for Bitrix — supports persistent connections and is more reliable. In production, Redis handles concurrent writes three times faster than Memcached under typical load. Configure in .settings_extra.php:

'cache' => ['value' => ['type' => ['class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis']]]
'session' => ['value' => ['mode' => 'default', 'handlers' => ['general' => ['type' => 'redis']]]]
Example Redis configuration for Bitrix
sudo apt install redis-server
sudo systemctl enable redis

Add to .settings_extra.php as above.

SSL, Email, and Cron

SSL — Let's Encrypt via certbot in 90% of cases. Redirect HTTP → HTTPS (301), HSTS, TLS 1.2/1.3, OCSP Stapling. In Bitrix, switch to HTTPS in the main module settings. Email: abandon mail() — connect SMTP (Yandex.Mail for domain, Mail.ru for Business). Be sure to configure SPF, DKIM, DMARC. Without SPF, emails go to spam. Test deliverability via mail-tester.com — score 9+/10. Cron: Bitrix agents switch to system cron — * * * * * /usr/bin/php /var/www/bitrix/modules/main/tools/cron_events.php. Schedule 1C exchange (15–60 min), search reindex, backups (mysqldump + rsync, rotation 7+4), temporary file cleanup.

Security and Administration

File system: owner www-data, directories 755, files 644, upload 775. nginx blocks access to configuration files. Enable Bitrix Proactive Protection — WAF, activity control (block after 5 failed attempts), kernel integrity check. For admin panel: two-factor authentication via Google Authenticator or OTP, restrict access by IP via nginx for paranoid.

How Long Does 1C-Bitrix Installation and Configuration Take?

Task Timeline
Installation on virtual hosting 2–4 hours
Installation on VPS with stack configuration 1–2 days
Installation on dedicated with architecture design 2–5 days
SSL + email + cron + security 1–2 days
Backup and monitoring setup 0.5–1 day

Post-Installation Checklist

  1. Performance Monitor (/bitrix/admin/perfmon_panel.php) — aim for 30+ points. Below 20 means serious configuration issues.
  2. System Check — automatic check of all parameters. Red items must be fixed, yellow — case by case.
  3. Security Scanner — check for typical vulnerabilities.
  4. PageSpeed Insights — TTFB < 200ms on VPS, LCP < 2.5s.
  5. Test 1C exchange — if integration is planned, verify CommerceML exchange before launch.

Additionally, check software versions, caching settings, cron operation, SSL certificate, SPF/DKIM/DMARC, access rights, delete default users and pages. For projects with 54-FZ, ensure fiscalization is configured via OFD provider.

Deliverables

  • Fully configured server for 1C-Bitrix with MySQL, PHP, nginx optimization.
  • Installed and activated license of the required edition.
  • SSL certificate, email settings, cron and backups.
  • Documentation: all configuration parameters, access credentials, cron tasks.
  • Content manager training: how to log into admin panel, add products, upload images.
  • Post-installation support for 30 days — consultations on settings.

Why Trust Professionals with Installation?

Incorrect installation means lost time and money. We've seen projects where a store on "Start" couldn't handle 50 visitors because innodb_buffer_pool_size wasn't configured. After migrating to VPS with correct configuration, the site "flew". Incorrect configuration can cost 30,000 RUB monthly due to excessive resource consumption. You get a ready-made architecture that scales. Order turnkey 1C-Bitrix installation — get a reliable platform for business growth. Contact us for a free consultation: we'll calculate the cost and time for your project. Over 7 years of experience, 120+ Bitrix projects implemented, including highload stores with million-item catalogs. Get in touch — we'll help configure Bitrix for your project.