|
|
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
Здавствуйте. Все довольно просто если не учитывать нагрузку. Есть сайт, он выдает страницы, если на странице есть реклама то происходит вставка записи в таблицу вида u_id, ads_id, date, type (тип действия в данном случае view = показ) движек myisam. В конце дня собираются данные о кол-ве показов, сколько из них уникальных и тд. И таблица очищается. И так каждый день. Все вроде нормально, но как только количество показов переваливает за 200 000 в сутки, сервер падает из-за больного количества дисковых операций записи. Одним из вариантов я вижу сбор статистики в таблицу на движке memory (чтобы не обращаться к диску для insertа в нее) и через какой то период вываливать из нее в обычную. Но тогда возникает вопрос как поставить создание таблицы автозагрузку сервера? Если через init.d, то скорее всего он выполнится до старта mysql, с задержкой тоже некамильфо. Может быть вы предложите другой вариант хранения статистики в данном случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 17:17:00 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
Если не требуется какой-то супер-оперативности, то писать в файл, а файл периодически (раз в час-сутки) грузить в таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 17:54:34 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
Так запись в файл все равно же обращение к диску на запись, есть существенная разница как писать на диск через бд или напрямую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 18:09:55 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
fourtyТак запись в файл все равно же обращение к диску на запись, есть существенная разница как писать на диск через бд или напрямую?Во-первых, файлы лучше кэшируются (в отличие от таблиц MyISAM, которые не кэшируются вовсе). Во-вторых, нет перестройки и записи индексов (не без индексов же у вас таблица?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 18:16:25 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
В третьих, писать можно в несколько файлов, чтобы меньше налетать на взаимную блокировку писателей. Тогда как в MyISAM при любой попытке модификации таблицы она блокируется целиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 18:17:51 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
авторВо-первых, файлы лучше кэшируются (в отличие от таблиц MyISAM, которые не кэшируются вовсе). просто эпично. ссылку на доку дадите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 18:53:08 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
ScareCrowавторВо-первых, файлы лучше кэшируются (в отличие от таблиц MyISAM, которые не кэшируются вовсе). просто эпично. ссылку на доку дадите? The MyISAM Storage Engine Data caches No ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 19:07:33 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
Да дело совершенно не кешируются. Селект из данной таблицы делается ровно раз в сутки, чтобы подсчитать показатели. А вот INSERTов очень много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 19:20:23 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
* Да дело совершенно не в кешировании ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 19:21:08 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
fourty* Да дело совершенно не в кешированииИ в нем тоже. Хотя монопольная блокировка таблиц, пожалуй, похуже эффект дает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 19:29:04 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
То есть memory таблицы Вы не рекомендуете использовать в данной ситуации? Кроме потери статистики при перезагрузке сервера есть какие-то еще причины? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 19:41:00 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
fourtyТо есть memory таблицы Вы не рекомендуете использовать в данной ситуации? Кроме потери статистики при перезагрузке сервера есть какие-то еще причины?Да нет, почему же? Если оперативки хватает, то пожалуйста. Просто дискового места обычно больше и оно обычно дешевле. Только почитайте про особенности этого движка, например: http://dev.mysql.com/doc/refman/5.5/en/memory-storage-engine.html MEMORY tables use a fixed-length row-storage format. Variable-length types such as VARCHAR are stored using a fixed length. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 19:45:12 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
miksoft, Спасибо попробую оба варианта, начну с memory ради интереса. Может быть есть еще решения для больших нагрузок до кучи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 19:47:53 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
fourtyМожет быть есть еще решения для больших нагрузок до кучи?Решение, в общем-то, одно - буферизация. Просто реализовать ее можно разными способами. Еще вариант - перевести таблицу на InnoDB с включенным innodb_file_per_table. Возможны частные решения в рамках конкретной задачи, но это уже надо разбираться в задаче. Например, бывает, что "сырые" данные не пишут вообще, а модифицируют уже имеющиеся счетчики, суммы и прочие агрегаты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 19:54:38 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
автор количество показов переваливает за 200 000 в сутки, детский объем для среднестатистического openx. просто поставьте этот скрипт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 20:30:54 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
miksoftScareCrowпропущено... просто эпично. ссылку на доку дадите? The MyISAM Storage Engine Data caches No просто эпика. ты сделал мой день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 14:08:04 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
ScareCrowmiksoftпропущено... The MyISAM Storage Engine пропущено... просто эпика. ты сделал мой день.Конкретные возражения по делу есть? Со ссылками и прочим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 14:24:22 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
miksoft, эта пометка в документации сделана просто для "продвижения" от innodb. означает лишь то, что внутри mysql нет специально выделенной памяти для кеширования данных в отличие от innodb где buffer pool заполняется страницами и данных и индекса. в контексте обсуждения, очевидно, что данные в myisam кешируются как минимум не хуже чем данные в файлах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 14:40:07 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
netwindвнутри mysql нет специально выделенной памяти для кеширования данныхИменно об этом я и говорил (в контексте MyISAM, разумеется). netwindв контексте обсуждения, очевидно, что данные в myisam кешируются как минимум не хуже чем данные в файлах.Мне не очевидно. Можно раскрыть мысль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 14:45:20 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
авторВо-первых, файлы лучше кэшируются (в отличие от таблиц MyISAM, которые не кэшируются вовсе). фраза целиком неправильная ибо данные кэшируются ровно тем же местом что и файлы. direct io я для myisam не знаю. настройка есть только для innodb ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 14:45:58 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
miksoftnetwindв контексте обсуждения, очевидно, что данные в myisam кешируются как минимум не хуже чем данные в файлах.Мне не очевидно. Можно раскрыть мысль? не имея количественных данных о конкретном приложении, можно рассуждать только о качественных различиях. память для кеширования они одну и ту же же разделяют между собой. так что в теории все одинаково будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 16:16:23 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
miksoftМне не очевидно. Можно раскрыть мысль?Данные муисам не кэшируются самой СУБД. Это вовсе не говорит о том, что они не кэшируются ОС (точно так же, как и обычные файлы). Другое дело, что СУБД "лучше знает", какие данные на данный момент больше нуждаются в кэшировании, но если мы сравниваем не инно с муисамом, а файлик с муисамом, то разницы тут невооружённым взглядом кагбэ не заметить (имхо). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 17:22:29 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
tanglirmiksoftМне не очевидно. Можно раскрыть мысль?Данные муисам не кэшируются самой СУБД. Это вовсе не говорит о том, что они не кэшируются ОС (точно так же, как и обычные файлы). Другое дело, что СУБД "лучше знает", какие данные на данный момент больше нуждаются в кэшировании, но если мы сравниваем не инно с муисамом, а файлик с муисамом, то разницы тут невооружённым взглядом кагбэ не заметить (имхо).Ну хорошо, втроем уговорили :) В очередной раз даю себе задание слазить в исходники по этому вопросу (ибо не факт с какими именно опциями открывается файл и как часто он флэшится). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 17:35:08 |
|
||
|
Сколько INSERTов что падает сервер
|
|||
|---|---|---|---|
|
#18+
miksoft, все с обычными опциями. Есть правда интересный трюк : myisam_use_mmap=1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 17:58:21 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1834558]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 369ms |

| 0 / 0 |
