Dəstək Xenforo-da performans problemi yaşayıram

Mr. Algorithm

while(true) { code(); }
Rəhbər
Administrator
Xallar 117
Mesajlar 282
Salam dostlar.

XenForo 2.3 istifadə edirəm və son bir həftədir ki, forumda hiss olunan yavaşlama baş verib. Xüsusilə də çox istifadəçi onlayn olanda səhifələr gec yüklənir, bəzən isə 2–3 saniyə gecikmə olur.

Araşdırdım, amma dəqiq səbəb tapa bilmədim.
İndi sizdən xahiş edirəm, təcrübənizə əsasən mənə yol göstərin:
  • Hansı cache üsulu daha stabildir? Redis, Memcached, yoxsa default File cache?
  • Cloudflare istifadə etmək performansı yaxşılaşdırır?
  • “Deferred tasks” çox görünür, bunun səbəbi nə ola bilər?
  • Add-onların performansa ciddi təsiri varmı? Hansılarını deaktiv etmək məsləhətdir?
  • PHP versiyası və server parametrləri nə qədər rol oynayır?
Forumda kontent çoxaldıqca performans məsələləri özünü göstərməyə başlayıb. Bəlkə hansısa yanlış tənzimləmə etmişəm.
Təcrübəli dostların hər cür məsləhətinə açığam. 🙏

Əvvəlcədən təşəkkür edirəm.
 
Salam dostum,

XenForo 2.3 forumunuzda yavaşlama problemi yaşadığınızı başa düşürəm və bu, böyüyən forumlarda tez-tez rast gəlinən bir məsələdir. Təcrübəmə əsasən, sizə bu məsələdə kömək edəcək bəzi məsləhətlər və addımlar təqdim edəcəyəm.

---

XenForo 2.3 Performans Problemlərinin Həlli Yolları

1. Hansı cache üsulu daha stabildir? Redis, Memcached, yoxsa default File cache?

Forumunuzda istifadəçi və kontent sayı artdıqca, File Cache ən zəif variantdır və ciddi performans problemlərinə səbəb ola bilər. Çünki hər cache əməliyyatı disk IO tələb edir.

* File Cache (Default): Ən sadə üsuldur, diskdə fayllar olaraq saxlanılır. Kiçik və orta ölçülü forumlar üçün kifayət edə bilər, lakin yüksək trafikdə çox yavaşdır.
* Memcached: Verilənləri serverin RAM-ında saxlayan in-memory caching sistemidir. Fayl cache-dən qat-qat sürətlidir və bir neçə server arasında paylaşıla bilər. PHP üçün xüsusi Memcached uzantısı tələb edir.
* Redis: Həm Memcached kimi in-memory bir verilənlər bazasıdır, həm də cache sistemi kimi istifadə olunur. Memcached-dən daha zəngin funksionallığa (məsələn, müxtəlif verilənlər strukturları, persistensi) malikdir və ümumiyyətlə daha müasir, yüksək performanslı tətbiqlər üçün tövsiyə olunur. PHP üçün xüsusi Redis uzantısı tələb edir.

Məsləhət: Sizin vəziyyətinizdə, hiss olunan yavaşlama varsa, mütləq Redis və ya Memcached-ə keçməlisiniz. Redis bir çox hallarda ən yaxşı seçimdir, çünki daha stabil və performanslıdır.

XenForo-da Redis-i aktivləşdirmək üçün config.php faylına aşağıdakı kodları əlavə edə bilərsiniz:
PHP:
<?php

$config['cache']['enabled'] = true;
$config['cache']['provider'] = 'Redis'; // 'Redis' və ya 'Memcached'
$config['cache']['config'] = [
    'host' => '127.0.0.1', // Redis serverinizin IP adresi və ya localhost
    'port' => 6379,       // Redis-in default portu
    'password' => '',     // Əgər Redis üçün şifrə təyin etmisinizsə
    'database' => 0       // Redis verilənlər bazası indeksi
];

// PHP Redis uzantısının quraşdırıldığından əmin olun.
Memcached üçün də oxşar konfiqurasiya edə bilərsiniz, sadəcə `provider` hissəsini `Memcached` olaraq dəyişməlisiniz.

2. Cloudflare istifadə etmək performansı yaxşılaşdırır?

Bəli, Cloudflare forum performansını əhəmiyyətli dərəcədə yaxşılaşdıra bilər. Bunun bir neçə səbəbi var:

* CDN (Content Delivery Network): Cloudflare sizin forumunuzun statik məzmununu (şəkillər, CSS, JavaScript) özünün dünya üzrə yayılmış serverlərində saxlayır. Bu, istifadəçilərin forumunuza coğrafi olaraq daha yaxın serverlərdən məzmun almasına imkan verir ki, bu da yükləmə sürətini sürətləndirir.
* DDoS Mühafizəsi: Cloudflare DDoS hücumlarından qoruyaraq serverinizin həddindən artıq yüklənməsinin qarşısını alır.
* WAF (Web Application Firewall): Zərərli trafikin qarşısını alır.
* Caching: Cloudflare brauzer caching-i idarə edir və səhifələrin bəzi hissələrini kəşdə saxlaya bilər.

Vacib qeyd: Cloudflare-i düzgün konfiqurasiya etmək çox vacibdir. Xüsusilə dinamik məzmunu (istifadəçi postları, şəxsi mesajlar) önbelleğe almadığınızdan əmin olmalısınız, əks halda köhnə məlumatlar göstərilə bilər. XenForo-nun özündə Cloudflare ilə bağlı mövcuddur.

3. “Deferred tasks” çox görünür, bunun səbəbi nə ola bilər?

"Deferred tasks" (Təxirə salınmış tapşırıqlar) XenForo-nun fon rejimində yerinə yetirdiyi tapşırıqlardır. Bunlara önbellek yeniləmələri, e-poçt göndərişləri, axtarış indeksinin yenilənməsi və s. daxildir. Əgər bunların sayı çox görünürsə, bu adətən iki əsas səbəbdən ola bilər:

* Cron işləmir və ya gec işləyir: Deferred tasks-lar Cron işləri vasitəsilə icra olunur. Serverinizin Cron tablosunun düzgün qurulduğundan və müntəzəm olaraq işlədiyindən əmin olun. XenForo Cron-u CLI (Command Line Interface) PHP vasitəsilə işlətmək tövsiyə olunur.
Bash:
    * * * * * cd /path/to/xenforo/directory && php cmd.php xf:run-jobs
(Burada `/path/to/xenforo/directory` yerinə forumunuzun kök qovluğunun yolunu yazın.)
* Resurs çatışmazlığı və ya add-on problemi: Əgər server resursları çatışmırsa və ya bir add-on çoxlu sayda deferred task yaradırsa, bunlar yığılıb qala bilər. Server loglarınızı (PHP error logs, XenForo error logs) yoxlayın.

4. Add-onların performansa ciddi təsiri varmı? Hansılarını deaktiv etmək məsləhətdir?

Bəli, add-onların performansa çox ciddi təsiri ola bilər. Xüsusilə keyfiyyətsiz yazılmış, optimallaşdırılmamış və ya çox sayda verilənlər bazası sorğusu edən add-onlar forumu kəskin şəkildə yavaşlada bilər.

Nə etməli:
* Tədricən deaktivasiya: Ən yaxşı yol, ən son quraşdırdığınız add-onlardan başlayaraq bir-bir deaktiv etmək və hər deaktivasiyadan sonra forumun performansını yoxlamaqdır. Bu, problemin hansı add-ondan qaynaqlandığını tapmağa kömək edəcək.
* Add-on Monitorinqi: Bəzi performans monitorinq add-onları (məsələn, XenForo Community-də mövcud olan bəzi resurslar) hansı add-onların ən çox resurs sərf etdiyini göstərə bilər.
* Yalnız zəruri add-onları saxlayın: Həqiqətən ehtiyacınız olmayan add-onları silin.
* Etibarlı mənbələrdən quraşdırın: Yalnız tanınmış və dəstəklənən developerlərin add-onlarını istifadə edin.

5. PHP versiyası və server parametrləri nə qədər rol oynayır?

PHP versiyası və server parametrləri performansda ən kritik rollardan birini oynayır!

* PHP Versiyası: XenForo 2.3 üçün PHP 8.1+ və ya PHP 8.2+ istifadə etmək tövsiyə olunur. Hər yeni PHP versiyası əvvəlki versiyalardan əhəmiyyətli dərəcədə daha sürətli olur və yaddaş istifadəsini optimallaşdırır. PHP 7.x versiyalarından PHP 8.x-ə keçmək belə bir çox hallarda performansı 20-30% artıra bilər.
* PHP-FPM: Apache istifadə edirsinizsə `mod_php` əvəzinə `PHP-FPM` istifadə etmək performansı xeyli yaxşılaşdırır. Nginx serverləri üçün PHP-FPM standartdır.
* OPcache: PHP OPcache mütləq aktivləşdirilməlidir. Bu, PHP kodunu kompilyasiya edilmiş formada yaddaşda saxlayaraq hər sorğu üçün yenidən kompilyasiya ehtiyacını aradan qaldırır. `php.ini` faylınızda aşağıdakı parametrləri yoxlayın:
INI:
    opcache.enable=1
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=10000
    opcache.revalidate_freq=0
    opcache.fast_shutdown=1
* Server Resursları:
* CPU: Yetərli sayda nüvəyə (cores) malik prosessor.
* RAM: Forumunuzun ölçüsünə və trafikinə uyğun kifayət qədər yaddaş (minimum 4-8GB RAM məsləhətdir).
* Disk I/O: NVMe SSD disklər ən yaxşı performansı təmin edir. Mütləq SSD disklərdən istifadə edin.
* Verilənlər Bazası (MySQL/MariaDB): Verilənlər bazası serveri də düzgün konfiqurasiya edilməlidir. `my.cnf` faylında `innodb_buffer_pool_size`, `key_buffer_size` kimi parametrləri serverinizin RAM-ına uyğun tənzimləməlisiniz. `innodb_buffer_pool_size` ümumi RAM-ın 50-70%-i qədər təyin edilə bilər.

---

Əlavə Performans Məsləhətləri:

1. Verilənlər Bazası Optimallaşdırılması: XenForo-nun admin panelində "Tools" -> "Optimize and Repair Tables" hissəsindən verilənlər bazası cədvəllərini optimallaşdırın.
2. Şəkillərin Optimallaşdırılması: İstifadəçilərin yüklədiyi şəkillərin ölçüsünü kiçiltmək üçün ImageMagick və ya GD kimi PHP uzantılarının düzgün işlədiyindən əmin olun. Böyük şəkillər səhifə yükləmə sürətini azalda bilər.
3. Axtarış Mexanizmi: Əgər forumunuzda kontent çoxdursa, standart MySQL axtarışı əvəzinə Elasticsearch kimi xarici axtarış sistemlərindən istifadə etmək performansı xeyli artırır.
4. CDN (Statik Fayllar üçün): Cloudflare ilə yanaşı, statik fayllar (şəkillər, avatar, ataşmentlər) üçün ayrıca CDN xidmətindən istifadə etmək serveriniz üzərindəki yükü azalda bilər.

---

Diaqnostika üçün Addımlar:

1. Server Resurslarını Yoxlayın: VPS/Dedicated serveriniz varsa, hər hansı bir resursun (CPU, RAM, Disk I/O) həddindən artıq yüklənib-yüklənmədiyini yoxlayın.
2. Server Logları: PHP error logları, Nginx/Apache error logları, MySQL error logları, həmçinin XenForo-nun öz error loglarını (Admin Control Panel -> Tools -> Server error log) diqqətlə nəzərdən keçirin. Hər hansı təkrarlanan xəta performans problemə səbəb ola bilər.
3. Development Mode: Lazım olduqda, `config.php` faylınızda `$config['development']['enabled'] = true;` təyin edərək inkişaf rejimini aktivləşdirin. Bu, səhifənin alt hissəsində sorğu sayı, sorğu vaxtı kimi faydalı debug məlumatları göstərəcək. Unutmayın, testlərdən sonra bunu deaktiv edin.

---

Ümid edirəm ki, bu məsləhətlər forumunuzun performansını yaxşılaşdırmaqda sizə kömək edəcək. Addım-addım bu məsləhətləri tətbiq etməklə problemin kökünü tapa bilərsiniz.

Hər hansı əlavə sualınız olarsa, çəkinmədən soruşun!

Uğurlar!
 
Geri
Yuxarı