- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
ВПС постоянно вырубается, даже увеличения тарифа в 4 раза памяти до 2х гигов - не помогло и сегодня 2 раза падали сайты от нагрузки на БД.
в саппорте говорят надо выявлять что это за запросы в джумле, что их делает и как устранить в движке .
сначала там какие-то блокировки были - я перевел на иннодб, потом сортировки вешали базу.. потом таблицы стали ломаться всех сайтов.
еще пишут сообщение, что-то типа "недостаточно памяти, убить процесс или пожертвовать ребенком"
вот, точнее:
вот собственно вопрос - как смотреть, что ложит сайт?
я так понимаю тут какие-то спец проги нужны в phpmyadmin логов не нашел. Там только советы. А какие конкретно? я начал смотреть и запутался...
Ничего не ложит сайт, просто mysql неправильно настроен. На впске ему надо выделять 128 МБ памяти максимум.
1) пробуйте включить лог долгих запросов mysql
2) в момент проблем анализируйте работу mysql при помощи той же утилиты mytop
3) попробуйте попросить хостера оптимизировать mysql. Если откажутся и захотите все сделать самостоятельно, воспользуйтесь скриптом mysqltuner.pl (ВАЖНО: перед тем как менять тот или иной параметр, почитайте о нем информацию, чтобы понимать, для чего это делается и стоит ли это вообще делать)
воспользуйтесь скриптом mysqltuner.pl
Он не для случаев, когда памяти перебрали, хотя наверное и закричит, что памяти под mysql больше, чем оперативки выделено.
Тут наоборот, надо просто памяти уменьшить на все в my.cnf.
Хотя, я забыл, еще может быть, что памяти перебрал apache, а mysql убивают просто, как самого толстого. Так что в апаче тоже уменьшайте количество процессов и в php устанавливайте ограничения по памяти.
(а вообще php процесс для каждого сайта должен быть под разным юзером и в limits.conf ему должна быть ограничена память)
OOM говорит что сервер неправильно настроен. Ищи кто есть память и ограничивай.
учусь с putty работать, вот что в результате получил:
(хостинг 2 гига)
только что удалось запустить тюнер, пишет
по поводу оптимизации и дефрагментации таблиц - я это регулярно стал делать, они всеравно крашатся. лог запросов только что включил..
Кстати вот еще что пхпмайадмин пишет:
Использовано менее 80% кеша запросов.
Рекомендация:
Это может быть вызвано низким значением переменной query_cache_limit. Так же, может помочь очистка кеша запросов.
Обоснование:
Текущее соотношение свободного кеша запросов по отношению к полному кешу запросов составляет 12.6%. Значение должно быть выше 80%
Было отсортировано большое количество строк.
Рекомендация:
Несмотря на то, что большое количество сортировок само по себе не является плохим показателем, вы должны убедиться, что запросы требующие сортировки используют поля индексов в выражении ORDER BY, так как это приведет к значительно более быстрой сортировке
Обоснование:
Средний показатель отсортированных строк: 31.18 в секунду
Слишком большое количество объединения не использующих индексы.
Рекомендация:
Это означает сканирование всей таблицы при объединении. Добавление индексов для полей используемых в условии, значительно увеличит скорость объединения
Обоснование:
Среднее значение объединения таблиц: 1.12 в секунду, данное значение должно быть менее 1 в час
Рекомендация:
Обычно это означает частое полноиндексное сканирование. Полноиндексное сканирование быстрее сканирования таблицы, но для больших таблиц требует прохождения значительного количества циклов центрального процессора. Если для этих таблиц часто выполняются запросы UPDATE и DELETE, выполнение 'OPTIMIZE TABLE' может уменьшить объем и увеличить скорость полноиндексного сканирования. Другим образом уменьшить полноиндексное сканирование можно только переписав запросы.
Обоснование:
Среднее значение сканирования индексов: 1.88 в секунду, значение должно быть менее 1 в час
Доля чтения первого вхождения индекса высока.
Рекомендация:
Обычно это означает частое полноиндексное сканирование. Полноиндексное сканирование быстрее сканирования таблицы, но для больших таблиц требует прохождения значительного количества циклов центрального процессора. Если для этих таблиц часто выполняются запросы UPDATE и DELETE, выполнение 'OPTIMIZE TABLE' может уменьшить объем и увеличить скорость полноиндексного сканирования. Другим образом уменьшить полноиндексное сканирование можно только переписав запросы.
Обоснование:
Среднее значение сканирования индексов: 1.88 в секунду, значение должно быть менее 1 в час
Доля чтения следующей строки таблицы высока.
Рекомендация:
Указывает на то, что большое количество запросов совершают полное сканирование таблицы. Добавьте индексы где это возможно.
Обоснование:
Доля чтения следующей строки таблицы: 7576.1 в секунду, данное значение должно быть менее 1 в час
{tmp_table_size} и {max_heap_table_size} не одно и то же.
Рекомендация:
Если вы обдуманно изменили одну из переменных: Для определения максимального размера таблиц в памяти, сервер использует наименьшее из двух значений. Таким образом, если вы хотите увеличить ограничение размера таблиц в памяти, необходимо изменить второе из них соответственно.
Обоснование:
Текущие значения tmp_table_size: 32 МБ, max_heap_table_size: 16 МБ
Значительное количество временных таблиц было записано на диск, вместо то чтобы быть сохранено в памяти.
Рекомендация:
Может помочь увеличение значений переменных max_heap_table_size и tmp_table_size. Однако некоторые временные таблицы всегда будут записываться на диск, в независимости от значений данных переменных. Для исправления данной проблемы, в должны переписать запросы таким образом, чтобы исключить условия (Внутри временной таблицы: Наличие столбца BLOB или TEXT, или наличие столбца более чем 512 байт) упомянутые в Документации MySQL
Обоснование:
Соотношение временных таблиц записанных на диск: 17.54 в минуту, данное значение должно быть менее 1 в час
Низкий % использования буфера ключей MyISAM (кеш индекса).
Рекомендация:
Вероятно необходимо уменьшение размера key_buffer_size, пересмотрите ваши таблицы, чтобы убедиться в удалении индексов, или просмотрите запросы и используемые ими индексы.
Обоснование:
Максимальный % буфера ключей MyISAM, который был использован: 13.6%, данное значение должно быть выше 95%
Высокое соотношение открытых таблиц.
Рекомендация:
Открытые таблицы требуют выполнения затратных операций ввода-вывода. Избежать этого можно увеличением значения переменной table_open_cache.
Обоснование:
Соотношение открытых таблиц: 3.3 в секунду, данное значение должно быть менее 10 в час
Высокое соотношение открытых файлов.
Рекомендация:
Рассмотрите возможность увеличения значения переменной open_files_limit, и после её изменения и перезагрузки проверьте журнал ошибок.
Обоснование:
Соотношение открытых файлов: 30.04 в минуту, данное значение должно быть менее 5 в час
в одной из баз есть таблица с 15 тысячами записями. суточная посещаемость всех сайтов около 7-8к. Однако фактически ВПС ложится зачастую ночью. Впрочем в любое время суток. Но около 4-5 утра достаточно часто пробуждаюсь от смсок...т.е. это не от посещаемости. в логах какие-то сортировки были, когда писал хостеру.
хостинг стабильно работал, никаких проблем. как вдруг они начались месяц назад и досихпор продолжаются. ничего с сайтами не делал кроме как запустил новый и опубликовал несколько статей на старый
---------- Добавлено 06.10.2015 в 14:48 ----------
Увеличить или уменьшать настройки?
прошло несколько часов работы mysqltuner
подскажите что с этим делать? пишут что надо увеличивать, но выше писали, что наоборот надо ограничивать. Кстати там совет оптимизировать и починить таблицы- я это сделал. а они видимо опять..
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering
[OK] Currently running supported MySQL version 5.5.45-log
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MRG_MYISAM
[--] Data in MyISAM tables: 302M (Tables: 413)
[--] Data in InnoDB tables: 8M (Tables: 96)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[--] Data in MEMORY tables: 0B (Tables: 14)
[!!] Total fragmented tables: 101
-------- Security Recommendations -------------------------------------------
[OK] All database users have passwords assigned
-------- Performance Metrics -------------------------------------------------
[--] Up for: 2h 43m 46s (115K q [11.745 qps], 7K conn, TX: 1B, RX: 32M)
[--] Reads / Writes: 62% / 38%
[--] Total buffers: 184.0M global + 6.2M per thread (70 max threads)
[OK] Maximum possible memory usage: 621.5M (33% of installed RAM)
[OK] Slow queries: 0% (1/115K)
[OK] Highest usage of available connections: 15% (11/70)
[OK] Key buffer size / total MyISAM indexes: 8.0M/7.4M
[OK] Key buffer hit rate: 99.4% (722K cached / 4K reads)
[OK] Query cache efficiency: 50.2% (30K cached / 61K selects)
[!!] Query cache prunes per day: 25605
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 12K sorts)
[!!] Joins performed without indexes: 9445
[OK] Temporary tables created on disk: 14% (2K on disk / 19K total)
[OK] Thread cache hit rate: 99% (11 created / 7K connections)
[!!] Table cache hit rate: 10% (512 open / 5K opened)
[OK] Open file limit used: 65% (724/1K)
[OK] Table locks acquired immediately: 99% (89K immediate / 89K locks)
[OK] InnoDB buffer pool / data size: 128.0M/8.9M
[OK] InnoDB log waits: 0
-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Adjust your join queries to always utilize indexes
Increase table_open_cache gradually to avoid file descriptor limits
Read this before increasing table_open_cache over 64: http://*******/1mi7c4C
Variables to adjust:
query_cache_size (> 16M)
join_buffer_size (> 1.0M, or always use indexes with joins)
table_open_cache (> 512)
прошло несколько часов работы mysqltuner
подскажите что с этим делать? пишут что надо увеличивать, но выше писали, что наоборот надо ограничивать. Кстати там совет оптимизировать и починить таблицы- я это сделал. а они видимо опять..
Здравствуйте.
Можно бесконечно пытаться что-то сделать тыкаясь наобум. Это редко приводит к успеху.
Если позволите, могу предложить за небольшую цену решить ваши проблемы. Могу гарантировать, что после пары дней мониторинга смогу исправить ситуацию.
Сервер надо оптимизировать, это факт. По данной информации, можно попробовать его еще покрутить. Тут еще один момент, если он падает по ночам, проверьте задачи планировщика. Может там какой парсер или еще что-то срабатывает, что грузит базу и ложит ее.
подскажите что с этим делать?
Ничего с этим не делать.
У вас процесс mysql прибивается оом киллером, это значит, что какой-то процесс просит больше памяти, но памяти нет и кого-то нужно прибить и забрать у него память. Есть два алгоритма кого прибивать: того кто просит или кого-то другого, кого система посчитает самым ненужным. Чаще второй алгоритм включен, потому что он позволяет постепенную деградацию (правда ему нужен супервизор чтобы подкручивать oom_adj под конкретную задачу, чтобы не убивал mysql, например). Можно проверить какой алгоритм включен выполнив cat /proc/sys/vm/oom_kill_allocating_task, если там 0, то работает именно второй алгоритм.
Предположим, что второй. Тогда mysql точно не причина и решений может быть несколько:
1. Перейти на первый алгоритм (записать в /proc/sys/vm/oom_kill_allocating_task единичку) и тогда будет прибиваться тот процесс, который просит больше памяти.
2. Настроить оом для автоматической перезагрузки сервера при срабатывании. Он такое умеет.
3. Найти, какие процессы плодятся и едят много памяти и поубавить их аппетиты. Возможно это apache, потому что у него идиотские настройки по умолчанию, которые позволяют плодить много процессов просто от обращений к нему.
Если вдруг алгоритм первый, то в my.cnf просто поуменьшать память на все.
ВПС постоянно вырубается, даже увеличения тарифа в 4 раза памяти до 2х гигов - не помогло
На графике падение начинается всего при 650Мб занятой памяти. И своп всегда равен нулю. Имхо, дело не в Мускуле, как и сказали выше.