Socialengine поради щодо збільшення продуктивності - російська підтримка і розробка

Звичайний хостинг, як правило, найдешевший, але він не підходять для сайтів з великим трафіком. Віртуальний хостинг працює наступним чином, безліч веб-сайтів розташовуються на одному сервері, і ці сайти ділять всі наявні ресурси. У деяких випадках загальний сервер може містити сотні або навіть тисячі активних веб-сайтів на одному сервері, які можуть впливати на роботу один одного. У той же час, хостинг-провайдери встановлюють жорсткі обмеження на віртуальному хостингу, які призводять до частих помилок. Загальний хостинг найкраще підходять для легкого або статичного контенту, а для сильно динамічних додатків, таких як SocialEngine, ви повинні вибирати з, віртуальних приватних серверів (VPS) або виділених серверів.

VPS або виділені сервери

Як згадувалося раніше, VPS і виділені сервера є кращим вибором при розгляді хостингу. Однак, є кілька застережень.

По-перше, більшість хостинг-провайдерів надають керовані і не керовані плани для VPS і виділених серверів. За допомогою керованих планів, хостинг-провайдер бере на себе відповідальність за надання допомоги і вносить зміни в конфігурацію сервера, а також допомагає вам у разі несправності серверного програмного забезпечення. Це впливає на збільшення вартості. Чи не керовані плани, створені для тих, хто має досвід роботи з серверами. Вся настройка такого сервера ляже вам на плечі.

По-друге, обраний план, повинен мати, по крайней мере, 2 Гб оперативної пам'яті. Якщо ваш хостинг-провайдер пропонує VPS або виділений сервер з 4 гігабайтами пам'яті, а ваш бюджет дозволяє придбати, виберіть його. Причина цього полягає в використання SocialEngine'ом MySQL InnoDB для зберігання таблиць бази даних. InnoDB використовує пам'ять для зберігання індексів, а також кеш для часто використовуваних даних, що дозволяє більшу частину запитів SQL SocialEngine, виконувати за мілісекунди.

Поради щодо підвищення продуктивності в PHP

2. Кеш в пам'яті, а не на файлах
З усіх функцій кешування, підтримуваних SocialEngine, File-based caching на сьогоднішній день є самим повільним. Всі інші функції кешування в SocialEngine використовують пам'ять і мають високу швидкість доступу в кеш, ніж швидкість доступу до файлів.

3. Налаштування конфігурації APC для кращих результатів
Якщо ви використовуєте APC як кешування в SocialEngine, відредагуйте php.ini файл на сервері і підійміть apc.shm_size директивою 128:

Якщо у вас APC 3.1.9, використовуйте наступні:

Це повинно бути зроблено, щоб уникнути високої фрагментації, що знижує продуктивність APC.

Трохи попереджень, на деяких Unix / Linux серверах, вам може знадобитися вручну підняти ресурс kernel.shmmax з метою забезпечення APC 128M пам'яті. Для цього знайдіть Sysctl конфігураційний файл на вашому сервері, як правило, /etc/sysctl.conf, і внести наступні зміни:

Ця зміна має бути зроблено до підвищення apc.shm_size директиви.

4. Слідкуйте за помилками PHP. Перевіряйте журнали.
Помилки і виключення в SocialEngine автоматично реєструються в журналах помилок SocialEngine, розташований в temporary / log. Журнал - ви можете перевірити в Stats> Log Browser через адмін-панель.

Деякі з найбільш поширених помилок і їх рішення:

1. Використання двох розширень PHP з opcode cache на сервері (наприклад, APC, Xcache, Eaccelerator або Zend Optimizer). Якщо ви плануєте використовувати APC або Xcache, всі інші розширення для кешування коду повинні бути відключені.

2. MySQli losing connection to the MySQL database. Втрата з'єднання з базою даних MySQL. Зазвичай вирішується установкою mysqli.reconnect директиви.

3. MySQL max connection errors. Максимальна кількість з'єднань. Зазвичай вирішується установкою меншого значення interactive_timeout і wait_timeout до 30 секунд в MySQL.

Якщо ви зіткнетеся з помилкою і потребуєте допомоги, будь ласка, зайдіть на наш форум.

5. Використовуйте mod_php5 або mod_fastcgid з APC
Одна з поширених проблем, яка зустрічається при роботі APC, використання mod_fcgid з PHP, який на багатоядерних системах є поганою ідеєю. Розглянемо сценарій, в якому є 2 чотириядерних процесора на сервері. З 8 доступними ядрами mod_fcgid використовується в якості сервера API, APC виділяє 8 buckets в пам'яті для зберігання даних. Якщо у вас APC налаштований на використання 128 Мб пам'яті, що розділяється, то вийде, що APC використовує 1 Гб оперативної пам'яті (8 * 128MB = 1024MB = 1 Гб) в кінцевому підсумку. Наявність 8 ядер, призводить APC до збільшення промахів кешу, вони в свою чергу збільшують навантаження на процесор.

Щоб уникнути цієї проблеми, ви можете використовувати mod_fastcgid або mod_php5 з Apache. Якщо SocialEngine працює на сервері без будь-яких інших веб-сайтів, mod_php5 дасть більш високу продуктивність. Якщо у вас є кілька веб-сайтів, проте, кожен веб-сайт існують в рамках окремої облікового запису користувача з міркувань безпеки, ви можете використовувати mod_fastcgid. 128M пам'яті для apc.shm_size - см. №3, APC буде використовувати 1 ГБ пам'яті. Крім того, PHP буде використовувати випадкові осередки пам'яті для APC кешування, в результаті чого підвищуються промахи кеша і це збільшує навантаження на центральний процесор.

Поділитися