Спустя полгода LS 0.4.2 стал тормозить, описание ситуации
Вот и меня настигла нелегкая карма.
Проблема: При записи пустяковых вещей (комменты, небольшие топики) в БД через интерфейс LS от любого пользователя стали наблюдаться тормоза около 10 секунд.
Причем не постоянно. Но все же тормозить последнее время все стало.
Перезагружаю серв — все некоторое время ннормально, потом опять начинается…
Вплоть до выдачи вот такой ошибки иногда: «ошибка 504 Gateway Time-out nginx» (стоит Apache+nginx, причем не совсем уверен, что оно правильно настроено, но более полугода сайт работал без нареканий).
Количество активных пользователей на сайте около 30.
Ежедневная посещаемость ~ 100 уников.
В режиме чтения сайт работает нормально.
Хостинг fastvps.ru (виртуальный выделенный серв):
Статистика из админки:
Часть Config'a:
Statistics performance:
Команда top на сервере:
Команда free -m
— И еще, в PhpMyAdmin в «текущем состоянии mysql» вот эти строки подсвечены красным, намекая, что надо как-то исправить (что это?):
Так вот, вопрос: как исправить ситуацию, чтобы LS летал как и прежде при добавлении топиков/комментов?
Проблема: При записи пустяковых вещей (комменты, небольшие топики) в БД через интерфейс LS от любого пользователя стали наблюдаться тормоза около 10 секунд.
Причем не постоянно. Но все же тормозить последнее время все стало.
Перезагружаю серв — все некоторое время ннормально, потом опять начинается…
Вплоть до выдачи вот такой ошибки иногда: «ошибка 504 Gateway Time-out nginx» (стоит Apache+nginx, причем не совсем уверен, что оно правильно настроено, но более полугода сайт работал без нареканий).
Количество активных пользователей на сайте около 30.
Ежедневная посещаемость ~ 100 уников.
В режиме чтения сайт работает нормально.
Хостинг fastvps.ru (виртуальный выделенный серв):
Статистика из админки:
Часть Config'a:
/**
* Настройки кеширования
*/
// Устанавливаем настройки кеширования
$config['sys']['cache']['use'] = true; // использовать кеширование или нет
$config['sys']['cache']['type'] = 'memory'; // тип кеширования: file и memory. memory использует мемкеш
$config['sys']['cache']['dir'] = '___path.root.server___/tmp/'; // каталог для файлового кеша, также используется для временных картинок. По умолчанию подставляем каталог для хранения сессий
$config['sys']['cache']['prefix'] = 'livestreet_cache'; // префикс кеширования, чтоб можно было на одной машине держать несколько сайтов с общим кешевым хранилищем
$config['sys']['cache']['directory_level'] = 1; // уровень вложенности директорий файлового кеша
$config['sys']['cache']['solid'] = true; // Настройка использования раздельного и монолитного кеша для отдельных операций
/**
* Настройки логирования
*/
$config['sys']['logs']['file'] = 'log.log'; // файл общего лога
$config['sys']['logs']['sql_query'] = false; // логировать или нет SQL запросы
$config['sys']['logs']['sql_query_file'] = 'sql_query.log'; // файл лога SQL запросов
$config['sys']['logs']['sql_error'] = true; // логировать или нет ошибки SQl
$config['sys']['logs']['sql_error_file'] = 'sql_error.log'; // файл лога ошибок SQL
$config['sys']['logs']['cron_file'] = 'cron.log'; // файл лога запуска крон-процессов
$config['sys']['logs']['profiler'] = false; // логировать или нет профилирование процессов
$config['sys']['logs']['profiler_file'] = 'profiler.log'; // файл лога профилирования процессов
/**
* Настройка memcache
*/
$config['memcache']['servers'][0]['host'] = 'localhost';
$config['memcache']['servers'][0]['port'] = '11211';
$config['memcache']['servers'][0]['persistent'] = true;
$config['memcache']['compression'] = true;
Statistics performance:
Команда top на сервере:
Команда free -m
— И еще, в PhpMyAdmin в «текущем состоянии mysql» вот эти строки подсвечены красным, намекая, что надо как-то исправить (что это?):
--- Обработчик ---
Handler_read_rnd 7,802 Количество запросов, на чтение строки, основанных на ее позиции. Большое значение переменной может быть обусловлено частым выполнением запросов использующих сортировку результата, выполнением большого числа запросов требующих полного сканирования таблиц, наличием объединений не использующих индексы надлежащим образом.
Handler_read_rnd_next 267 k Количество запросов на чтение следующей строки из файла данных. Данное значение будет высоким, при частом сканировании таблиц. Обычно это означает, что таблицы не проиндексированы надлежащим образом или запросы не используют преимущества индексов.
--- Временные данные ---
Created_tmp_disk_tables 90 Количество временных таблиц, автоматически созданных сервером на диске, во время выполнения SQL-выражений. Если значение Created_tmp_disk_tables велико, следует увеличить значение переменной tmp_table_size, чтобы временные таблицы располагались в памяти, а не на жестком диске.
--- Кеш индекса ---
Key_reads 9,810 Количество физических операций чтения блока индексов с диска. Если значение велико - скорее всего, задано слишком маленькое значение переменной key_buffer_size. Коэффициент неудачных обращений к кешу может быть рассчитан как: Key_reads/Key_read_requests.
--- Объединения ---
Select_full_join 40 Количество запросов-объединений, выполненных без использования индексов. Если значение переменной не равно 0, рекомендуется проверить индексы таблиц.
--- Сортировка ---
Sort_merge_passes 14 Количество проходов, сделанных алгоритмом сортировки. При большом значении следует увеличить значение переменной sort_buffer_size.
--- Таблицы ---
Opened_tables 4,535 Общее количество открывавшихся таблиц. При большом значении переменной рекомендуется увеличить размер кеша таблиц (table_cache).
Так вот, вопрос: как исправить ситуацию, чтобы LS летал как и прежде при добавлении топиков/комментов?
37 комментариев
А у вас такая проблема была с «504 Gateway Time-out nginx» тоже?
А конкретно что надо делать?
И без -m
Логи апача надо обязательно посмотреть.
а что там искать?
на сайте ~100 уников, ~120К комментариев, ~20К топиков. Жрать столько памяти, по-моему, перебор. Так и должно быть или где-то течет?