|
|
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Уважаемые, эксперты! Пожалуйста помогите разобраться в чем может быть причина спонтанных скачков нагрузки на жесткий диск. В нормальном состоянии система работает идеально: Код: html 1. 2. 3. Затем в какой-то момент (несколько раз в месяц) база начинает не успевать обрабатывать запросы и вследствие чего резко возрастает количество "idle" соединений ( с ~70 до ~300) и всё начинает жутко тормозить: Код: html 1. 2. 3. Такая ситуация держится примерно 5-10 минут и также резко нормализуется. Программисты исключают вину клиента и грешат на мотор базы данных. Что может происходить в моменты перегрузки в базе данных и как это отследить ? Может как-нибудь конфиг оптимизировать ? Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Другие значения дефолтные. Код: xml 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:23:11 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, Сколько сегментов у вас пишется в моменты пиков? checkpoint_timeout маленький для 30 сегментов по 18Мб. By the way - вам effective_cache_size = 50GB вместо 32Gb и maintenance_work_mem постоянно выставленная в 4GB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:42:46 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
By the way - вам effective_cache_size = 50GB вместо 32Gb и maintenance_work_mem постоянно выставленная в 4GB? зачем вам я имел ввиду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:44:57 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, а swap включен в ОС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 15:06:01 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Ёш, судя по 300 соеденениям включен;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 15:11:19 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Свап включён и проблем с ним не замечалось, максимально уходит в 300МБ в не зависимости от перегрузки. Код: html 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 15:26:47 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
hydrobiontoustkast, Сколько сегментов у вас пишется в моменты пиков? checkpoint_timeout маленький для 30 сегментов по 18Мб. By the way - вам effective_cache_size = 50GB вместо 32Gb и maintenance_work_mem постоянно выставленная в 4GB? Пишется как и обычно, по 1-2 сегмента в минуту. Все значения выставлял по рекомендациям, где их брал уже не помню, но расчитывались они исходя от кол-ва RAM-памяти. maintenance_work_mem = 4GB - да, постоянно А какие бы значения выставили вы ? Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. maintenance_work_mem = 4GB - да, постоянно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 15:41:32 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Так елки... 30 * 16 = 480Мб. Вот оно переодически и всасывает, когда их из WAL'а в базу вставляет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 17:19:46 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, 1. То что в свап уходит плохо. 2. Рискну предположить, что в пиках у вас происходит затык по IO тк чекпойнты наезжают по друг на друга (у вас не получается воспользоваться выигрышем от checkpoint_segments = 30 тк таймаут 5 минут, за это время пишется максимум 10 сегментов и чекпоинт происходит чаще чем надо). В результате растет кол-во воркеров (до 300) что при work_mem = 448MB съедает всю память и база чувствует себя погано. 3. effective_cache_size лучше shared_buffers * 2б в большинстве случаев это разумная настройка. 4. maintenance_work_mem лучше держать небольшим и выставлять сессионно в большое значение только там где надо, напирме для перестройки индекса, иначе у вас например каждый автовакуум съедает эти 4Гб попробуйте для начала сильно увеличить checkpoint_timeout - до получаса или даже часа. Потом можно еще поиграть с checkpoint_completion_target в промежутке 0.5-0.7, чтобы поравномерней диск грузился. А как настроен актовакуум и bgwriter? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 17:28:02 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, И да - что за рейд и как настроен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 17:29:16 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
hydrobiont, 1. А какие настройки поменять, чтоб не уходило ? Хотя с другой стороны ~200 МБ свапа - ничего криминального. 2. Прокопал все логи последних пиков и нигде чекпойнты друг на друга не накладываются, каждый чекпойнт длится ~150 сек (при нормальной нагрузке также), но один раз во время пика скаканул до 277 сек. Правильно я понимаю, что каждые 5 минут мотор пишет в базу все 30 сегментов, когда необходимо вписать только 10, и некоторые сегменты просто переписываются заново ? Нашел в логах и такое: Код: html 1. что связано с чекпойнтами. Не пойму одного, если уменьшить частоту чекпойнтов, то диск будет же всё равно грузится, но только реже, как это может помочь данной ситуации ? 3. "effective_cache_size лучше shared_buffers * 2б" - не понял какие значения им выставить, пожалуйста поясните. 4. maintenance_work_mem - и до скольки гигов советуете его снизить ? актовакуум и bgwriter: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. RAID10 (4x 300GB 15K SCSI) дефолтные настройки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:10:16 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Чекпойнты во время пика: Код: html 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:32:59 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, 1. Меньше воркеров, меньше воркмем. Любой уход в свап машины с бд это плохо. Часто даже vm.swappiness = 0 имеет смысл 2. Чекпойнт наступает либо когда накопилось указанное кол-во сегментов, либо когда сработал таймаут. И пишется тогда столько сегментов, сколько накопилось на момент таймаута. Если вы хотите выиграть от более редких чекпойнтов (что оправданно когда писанины много), настройка checkpoint_segments = 30 оправдана (если ее тянет ваш рейд). Если мы 270 разделим на 60, то получим, что база занималась чекпойнтом почти все время между двумя таймаутами. Какой кэш на рейде? Во что выставлены vm.dirty_ratio и dirty_background_ratio (если у вас линукс)? 3. опечатка, сорри. effective_cache_size в два раза больше чем shared_buffers, тк есть еще кэш ОС. 4. Поставьте 512, где надо больше, подымайте на сессию. 5. на таком объеме записи уже лучше вакуум иметь более агрессивный autovacuum_vacuum_scale_factor = 0.01 6. bgwriter тоже лучше настроить агрессивней. что сейчас в select * from pg_stat_bgwriter;? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 15:49:18 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
hydrobiont, 2. Спасибо за пояснение! Кэш на рейде = 256MB . Во время пиков чтение с диска в 3 раза больше чем писанины. То есть нагрузка идёт именно на чтение с диска. vm.dirty_ratio = 20 vm.dirty_background_ratio = 10 (Debian 6 defaults) 4. "Поставьте 512, где надо больше, подымайте на сессию." - не совсем понял как это делается.. поднимать со стороны клиента ? 6. select * from pg_stat_bgwriter;? Код: html 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 17:27:17 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkasthydrobiont, 2. Спасибо за пояснение! Кэш на рейде = 256MB . Во время пиков чтение с диска в 3 раза больше чем писанины. То есть нагрузка идёт именно на чтение с диска. vm.dirty_ratio = 20 vm.dirty_background_ratio = 10 А как меряли соотношение чтений и записи? Дефолты не подходят совсем если памяти много. Поставьте например vm.dirty_ratio = 33554432 vm.dirty_background_ratio = 268435456 oustkast4. "Поставьте 512, где надо больше, подымайте на сессию." - не совсем понял как это делается.. поднимать со стороны клиента ? Да, глобально у вас стоит например 512МБ, если надо конкретной сессии дать больше (например перестроить индекс) - делаете в ней set oustkast6. select * from pg_stat_bgwriter;? Код: html 1. 2. Гм, а можете вывести 3-4 вызова с промежутком примерно в минуту? Типа psql#\x и потом select now(), * from pg_stat_bgwriter;? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 17:52:46 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
hydrobiont, авторА как меряли соотношение чтений и записи? Munin: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 18:09:09 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, Хорошая картинка с мунина. Эти пики чтения - перезаполнение баферкэша. Система встала колом на чекпойнте, провела некоторое время в ожидании, потом вокреры начали в шаренную память подымать то что им нужно, получился еще один пик, на чтение. Устойчивое 51641 к 339 или вроде подтверждает то что я говорил - чекпойнт у вас срабатывает по таймауту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 18:33:14 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
hydrobiont, Ну понятно, значит поправлю параметры конфигурации и сдам их позже на проверку =) Кстати, в версии 9.1.9, короторую сейчас и юзаем, замечены несколько багов с утечкой памяти: авторFix checkpoint memory leak in background writer when wal_level = hot_standby (Naoya Anzai) Fix memory leak caused by lo_open() failure (Heikki Linnakangas) Fix memory overcommit bug when work_mem is using more than 24GB of memory (Stephen Frost) Link Может это они и есть или всё таки кривой конфиг ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 18:42:36 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, врядли они. А конфиг однозначно с проблемами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 19:00:43 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Проштудировал ещё раз настройку сервера (при 72GB RAM) и решил поменять следующие параметры: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Источник рекомендаций: Работа с PostgreSQL - настройка и масштабирование 1. Не уверен по настройке cpu_tuple_cost, cpu_index_tuple_cost , стоит их менять или нет, является ли XEON E5606 достаточно быстрым )) ? 2. Исходя из всего вышепречисленного смелю предположить, что проблема перегрузки заключается в слишком частых чекпойнтах, только непонятно одно, почему это происходит рэндомно? Получается спонтанный конфликт между выделенной памятью Postgres и памятью ОС ? Ведь встаёт колом не при каждом чекпойнте же. Буду рад дельным отзывам и комментариям! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 18:50:23 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkastКэш на рейде = 256MBЭто на запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 18:56:13 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Ёш, Yep, HP Smart Array P410i/256 MB BBWC Controller ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 19:09:48 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, какая файловая система? как смонтирована? -- какой планировщик ввода/вывода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 19:11:42 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
и версия ядра какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 19:12:27 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, Код: html 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 22:23:41 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, Своп точно надо вырубать. swapoff -a И уменьшить шаред буфера минимум в два раза. Планировшик - noop И наблюдать дальше ) --- Вы уверены что никакой хитрой нагрузки к вам не приходит иногда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2013, 01:19:16 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Еще. Весь кеш рейд контроллера отдайте на запись. И уменьшить упреждающее чтение хорошо через blockdev, если у вас много конкурентных индекссканов. Вот такие общие замечания могут быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2013, 02:13:55 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Чекпоинт таймаут в 1час И чекпоинт таргет в 1цу (checkpoint_completion_target) И пусть всегда по времени пишется. Поставки много чекпоинт сегментс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2013, 02:23:38 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Misha TyurinИ уменьшить шаред буфера минимум в два раза. Вы уверены что никакой хитрой нагрузки к вам не приходит иногда? А могли бы пожалуйтса пояснить зачем уменьшать shared_buffers ? Рам-памяти же достаточно на машине, 72 ГБ. Никакой хитрой нагрузки не приходит, ей некуда приходить и страдает только база данных, графики веб сервера без изменений. Бывало и так, что во время пиков активности клиентов база и вовсе не страдала, а при средней нагрузке выкидывала неприятные сюрпризы.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2013, 13:40:49 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, я бы не уменьшал шаред бафферс, при налиыие настроенного рейда (дисков правда малова-то, но это уже подробнее надо смотреть более подробно). Вам нужно сделать более редкими чекпойнты (поднять таймаут) и скорее всего уменьшать ворк_мемори м/или кол-во процессов. От 300 процессов пользы ноль, вреда много - с таким воркмемом вы уходите в свап как только система затыкается на чекпойнте. За баунсером вообще крайне редко нужно больше пары десятков процессов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2013, 18:59:08 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Начал пока что со следующих изменений: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Со следующей недели ожидается большой поток посетителей и отпишусь о результатах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 10:59:02 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
hydrobiontА как меряли соотношение чтений и записи? Дефолты не подходят совсем если памяти много. Поставьте например vm.dirty_ratio = 33554432 vm.dirty_background_ratio = 268435456 это не в байтах случаем числа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 14:00:34 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
_Monah_hydrobiontА как меряли соотношение чтений и записи? Дефолты не подходят совсем если памяти много. Поставьте например vm.dirty_ratio = 33554432 vm.dirty_background_ratio = 268435456 это не в байтах случаем числа? в байтах да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 14:51:50 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, А зачем вам 16gb ? Всегда рекомендуют начинать с 4 gb. Большие буфера - вероятны оверхеды. Их можно исключить. А значет нужно уменьшаит . практически уверен что вам и 4/8 gb хватит более чем. Но так как сервер не выделен - то все может оч сильно зависеть не от постгреса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 07:00:17 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Misha Tyurinoustkast, А зачем вам 16gb ? Всегда рекомендуют начинать с 4 gb. Большие буфера - вероятны оверхеды. Их можно исключить. А значет нужно уменьшаит . практически уверен что вам и 4/8 gb хватит более чем. Но так как сервер не выделен - то все может оч сильно зависеть не от постгреса Изначально выставил в 16GB из примера мануала по настройке Postgres-a : 1/4 of RAM. Если будет мешать - снижу до 8GB , а вообще план добавить в ближайшем будущем ещё 48 GB RAM-a. С чего берёте, что сервер не выделен ? =) В первом посте приведена полная спецификация сервера и уточню, что кроме Postgres-a на сервере ничего больше не бегает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 17:06:08 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Возможно вопрос не в тему но сколько попугаев на такой системе дает нагрузочный тест Гилева ? (у меня аналогичная система с меньшим обьемом памяти 16ГБ и по тесту выше 9 попугаев прыгнуть просто не выходит) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 06:37:14 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
KntВозможно вопрос не в тему но сколько попугаев на такой системе дает нагрузочный тест Гилева ? (у меня аналогичная система с меньшим обьемом памяти 16ГБ и по тесту выше 9 попугаев прыгнуть просто не выходит) Не нашел документации как его под Линуксом запускать через эс-эс-ха.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 14:31:14 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
hydrobiont Дефолты не подходят совсем если памяти много. Поставьте например vm.dirty_ratio = 33554432 vm.dirty_background_ratio = 268435456 hydrobiont, пардон, если туплю, но прогуглив эти параметры, числа должны быть указаны в процентах (0-100), а не байтах: Код: html 1. 2. 3. Может уточните, откуда такие длинные числа ? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 19:23:55 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Код: html 1. 2. или же это имелось в виду.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2013, 19:40:24 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, я думаю, что это. Только разницы лично я на наших серверах не заметил от изменения этих параметров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2013, 09:50:39 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Ситуация начала повторяться, но уже слабее, слоты пока ещё не переполнялись. Кол-во воркеров скакало от нормальных ~90 до 220 в пик нагрузки вне зависимости от чекпойнта. С чем это связано непонятно.. Походу память временами забивается. (самая длинная полоска - это запуск команды ANALYZE ALL каждый день в 5 утра) Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Что думаете, может попробовать теперь снизить shared_buffers с 16GB до 8GB и ещё work_mem с 288MB до 250MB ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 18:43:13 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast Код: html 1. 2. или же это имелось в виду.. Да, конечно это, сорри. [quot oustkast] Код: html 1. Зачем это? И зачем вам такой большой воркмем? каждая сессия реально в таковом нуждается? И да - у вас база за баунсером или напрямую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 18:51:02 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
hydrobiont, ANALYZE для оптимизации планировщика запросов. Рекомендацию нашел из вики: Using ANALYZE to optimize PostgreSQL queries] http://wiki.postgresql.org/wiki/Introduction_to_VACUUM,_ANALYZE,_EXPLAIN,_and_COUNT Используем джававский баунсер - c3p0 . как насчёт таких уменьшений, разумно ? Код: html 1. 2. 3. Правильно ли я понимаю, что каждый процесс Postgres использует количество памяти = work_mem или же это максимальное значение, что сможет при надобности использовать процесс ? Т.е. 90 процессов будут использовать кол-во памяти равное 90*128MB=11.25GB или не обязательно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2013, 19:09:56 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
hydrobiont, ANALYZE для оптимизации планировщика запросов. Рекомендацию нашел из вики: Using ANALYZE Используем джававский баунсер - c3p0 . как насчёт таких уменьшений, разумно ? Код: html 1. 2. 3. Правильно ли я понимаю, что каждый процесс Postgres использует количество памяти = work_mem или же это максимальное значение, что сможет при надобности использовать процесс ? Т.е. 90 процессов будут использовать кол-во памяти равное 90*128MB=11.25GB или не обязательно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2013, 19:11:17 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, oustkastmaintenance_work_mem = 4GB --> 2GB shared_buffers = 16GB --> 8GB work_mem = 288MB --> 128MB Правильно ли я понимаю, что каждый процесс Postgres использует количество памяти = work_mem или же это максимальное значение, что сможет при надобности использовать процесс ? Т.е. 90 процессов будут использовать кол-во памяти равное 90*128MB=11.25GB или не обязательно ? maintenance_work_mem берется из расчета 75% размера от самой большой таблицы. Отъедает по maintenance_work_mem раз сколько у вас воркеров будет запущено. Оптимально для почти всех видов баз в которых никто ничего не понимает 512 мб при средней нагрузке. структуры shared_buffers формируются при старте БД и содержат разделяемые структуры (буферы, спинлоки, двухфазные метки транзакций и др). Чем структура больше, тем каждый бэкэнд неповоротливее. Но не может быть слишком маленьким иначе начнутся тормоза. условно перемножте количество структур в БД на 2 мб (это метрика _снизу_) . work_mem формируется при подключении бакенда. Оптимально установить 1Мб и смотреть в логи на запросы которые выполняются больше 100мс. к этим запросам выполнить экплейн аналайз и посмотреть нет ли сортировки на диске, если есть - то увеличивать work_mem на указанную величину. (повторить по необходимости). effective_cache_size носит рекомендательный характер для построения плана (агрессивно или деликатно использовать ресурсы). effective_cache_size обычно 75% всей оперативки. сиблинг поставьте больше, к примеру 16 или 24. проверьте ваши фризы - возможно у вас уже 97% от 200 000 000 000, по тому постгрес и стартует воркеры так часто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 08:09:34 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
nedbamaintenance_work_mem берется из расчета 75% размера от самой большой таблицы. Отъедает по maintenance_work_mem раз сколько у вас воркеров будет запущено. Оптимально для почти всех видов баз в которых никто ничего не понимает 512 мб при средней нагрузке. сиблинг поставьте больше, к примеру 16 или 24. проверьте ваши фризы - возможно у вас уже 97% от 200 000 000 000, по тому постгрес и стартует воркеры так часто. Самая большая таблица в базе 30 GB. попробую увеличить и это тогда: Код: html 1. Сорри, но как проверить фризы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:19:33 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Запустил на тестовом сервере (где выставил work_mem=1 MB) тяжелый запрос и как видно он использует максимально памяти в 3 MB , получается нам за глаза хватит и размера work_mem=25 MB , к примеру ? Или ещё надо что-то учитывать ? Код: html 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 19:14:50 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkastЗапустил на тестовом сервере (где выставил work_mem=1 MB) тяжелый запрос и как видно он использует максимально памяти в 3 MB , получается нам за глаза хватит и размера work_mem=25 MB , к примеру ? Или ещё надо что-то учитывать ? Код: html 1. "Sort Method: external merge Disk: 3120kB" говорит о том, что work_mem не хватает для этого запроса, приблизительно 10 МБ, тк при записи на диск хорошо жмется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 21:03:44 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, 0) 30Гб - если на таблице нет триггеров и референсов, возможно ее стоит партиционировать - снять нагрузку с вакуума и менеджера запросов. 1) Ну, дам вам удочку про фризы http://www.databasesoup.com/2012/09/freezing-your-tuples-off-part-1.html 2) maintenance_work_mem вам нужен только для _измененной_ части таблицы. Условно: из 30Гб меняется не так много блоков. Каждый блок структур по 4Кб (для таблиц), в блоке содержится заголовок, указатель на первый свободный блок для туплов, пустое пространство, сами туплы и их версионированые строки, контрольная сумма блока (у индексов почти так же, только организовано в виде дерева и туплы содержат указатели на данные и линки на следующий и предыдущий элементы). Вакуум (не фулл) бежит по блокам с первого к последнему и те блоки в которых находит версионированые данные пытается сопоставить с текущими (виртуальными) транзакциями. Все завершенные транзакции и их версии признаются устаревшими и помечаются внутри блока как свободные. все блоки в _конце_ таблицы помеченые полностью как пустые возвращаются в общий пул и уменьшают место на диске. Не так много существует систем в которых транзакции одновременно затрагивают очень много строк и висят долгое время в пустую расширяя таблицу. В большинстве случаев таких блоков с версиями у которых транзакций уже нет не так много. Чем больше maintenance_work_mem тем больше нужно выкинуть из кэша данных, чтобы просто запустить воркер (ненужная нагрузка). 3) bloated table - возможно, что у вас данные давно не оптимальны на диске. Оптимизатор собрав статистику может на это делать поправку (чтобы не хранить почти пустые блоки с мусором в кэше, а всегда их считывать с диска). Посмотреть можно, для таблиц и индексов: SELECT relname AS table_name, pg_size_pretty(pg_relation_size(oid)) AS table_size, pg_size_pretty(pg_total_relation_size(oid)) AS total_size FROM pg_class WHERE relkind in ('r','i') ORDER BY pg_relation_size(oid) DESC; и для страниц SELECT relname, relkind, reltuples, relpages FROM pg_class ORDER BY relpages DESC; 4) Очень полезный набор скриптов https://github.com/ikatson/postgres-useful-sql/blob/master/postgres_useful.sql (дальше из схемы adm выбрать adm.bloat) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 18:15:03 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
nedba, Спасибо за линки и разъяснения, сейчас снизил только значения work_mem = 32 MB , maintenance_work_mem = 2 GB . С фризами пока что всё ок: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Слежу дальше.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2013, 03:24:06 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
nedba 3) bloated table - возможно, что у вас данные давно не оптимальны на диске. По поводу tbloat , примерно раз в месяц запускаю команду CLUSTER на проблемные таблицы, так что с этим тоже должно быть всё ок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2013, 03:27:01 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
И так.. с новыми настройками система работает более менее стабильно и колом не вставала, load больше 4-х не поднимался, но почему-то по прежнему уходит в swap . Пожалуйста помогите разобраться в чем тут может быть дело и что ещё в конфиге подкрутить, совсем вырубать swap не хочется. config: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. meminfo: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. load average: 0.38, 0.31, 0.30 SWAP 109184k used ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2013, 13:27:08 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Самый плохой случай: ((8 воркеров Х 2Гб) + 48 + 16) и еще (32+16+6 на каждый коннект Х 250) Итого 70Гб + 13,5Гб максимум на что рассчитывает постгрес. По факту, пиковых нагрузок на пределе возможностей нет, по тому в своп попали системные либы (скорее всего экзотическая аутентификация, ненужные драйвера и т.д.). 1) Используйте pgbouncer. (тогда разгрузите shared) 2) Постепенно снижайте все параметры (по одному за раз), пока не упретесь в проседания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2013, 18:58:59 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
nedba, Ну понятно, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 12:05:02 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
.. и снова привет! В общем с очередным большим наплывом посетителей ситуация начала повторяться, но уже в другом ракурсе: резко, в течении 20 секунд, на базу пришло порядком 100 запросов: Код: html 1. 2. 3. что привело к тормозам: Код: html 1. 2. 3. 4. 5. 6. и, как следствие, к переполнению слотов: Код: html 1. В отличии от прошлых перегрузок, load average теперь остаётся в норме. Пожалуйста посоветуйте, что ещё можно тут предпринять во избежание переполнения слотов ? Крутить конфиг или взяться за железо и добавить RAM-памяти ? Поможет ли добавление памяти как-то ускорить переработку запросов или же просто даст возможность увеличить "max_connections" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2013, 18:16:33 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, авторрезко, в течении 20 секунд, на базу пришло порядком 100 запросов какие запросы? где планы? 20 секунд, 100 запросов - это ваще-то оч мало запросов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2013, 18:20:41 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, Не совсем понял вопроса, explain analyze запросов предоставить ) ? Просто запросы бегут постоянно одни и те же, нету каких-либо особенных или сверхтяжелых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2013, 18:47:05 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, explain analyze buffers ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2013, 19:27:35 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Misha TyurinЕще. Весь кеш рейд контроллера отдайте на запись. И уменьшить упреждающее чтение хорошо через blockdev, если у вас много конкурентных индекссканов. Вот такие общие замечания могут быть. Кешь рэйда настраивается только через биос ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 13:16:30 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Уменьшил shared_buffers до 8GB , но всё равно система не стабильна. В данный момент на ресурсе пик нагрузки по трафику и база данных прекрасно со всем справляется, но утром (08:30-35 график подтверждает), когда трафик не был ещё таким большим она встала на пару минут колом. Кажется, что с распределением памяти (swap pagein?) что-то не того, может кто увидит ключ к разгадке ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 14:04:39 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, а почему Вы swap не отключаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 16:30:21 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Ёш, Да стрёмно в продакшене совсем без свапа, вруг системе памяти не хватит и база отвалится ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 16:47:39 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, авторshared_buffers до 8GB - OK у вас же видно !явно, что дело в свапе. убирите его и всё. линукс работает с памятью и свапом оч специфически. свап вам не нужен. сделайте небольшой ворк мем. контролируетйе кол-во запущенных процессов через пгбоунсер. у вас памяти вагоны совбодной, всё под кеш. так что убирите свап, и всё будет совсем хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 16:54:05 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkastЁш, Да стрёмно в продакшене совсем без свапа, вруг системе памяти не хватит и база отвалится ? для начала попробуйте vm.swappiness = 1 если еще не сделали.... скорее всего поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 16:59:31 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, авторсделайте небольшой ворк мем сделайте 16MB. и поставте логгироваться врменые файлы. 18.8.3. What To Log http://www.postgresql.org/docs/9.3/static/runtime-config-logging.html log_temp_files (integer) A value of zero logs all temporary file information если они будут появляться, то 1) увеличивайте ворк мем для всего сервера на немного или 2) увеличивайте ворк мем только для тех транзакций, где надо, прямо через команды set local work_mem ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 17:06:25 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, по вашим картинкам у вас диски ТОЛЬКО СВАП обслуживают (база вся в где-то в памяти у вас). а далее возможны такие варианты 1) в этот свап попадает что-то нужное пг (часть какого-то индекса, например) 2) диски не справляются под нагрузкой свопа (что врятли, но возможно, покажите графики иопс/латенси), а пг что-то делает с дисками синхронно, например, транзакции коммитятся синхронно. ИТОГО. убирайте свап. я за вариант сразу swapoff -a // при условии, что вы поработаете с воркмемом ну и можно пробывать вариант Максима vm.swappiness = 1 и/или другие еще настрйоки vm. мне из vm помогали когда-то только настройки ридахеда. как раз на ядре 2.6.32 при планировщике NOOP. а vm.swappiness = 1 - не помогало, свап продожал что-то делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 17:20:18 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
графики иопс/латенси: С work_mem экспериментировать пока не буду, т.к заказаны дополнительные 72 GB ram-памяти и придут они уже в начале года. А скажите, vm.swappiness = 1 можно поменять на лету (sysctl -p) без каких-либо рисков ? Сейчас значение> vm.swappiness = 60 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 17:44:54 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 17:48:19 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
oustkast, у вас там lvm что-ли еще? как она работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2013, 19:34:48 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, Да, изначально дисковая система была настроена на LVM, чтобы при необходимости была возможность менять размер дисков на лету. Но это никак не должно сказоваться на производительности системы в целом, т.к в среднем пишется по одному WAL-файлу (17MB) в минуту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2013, 13:37:54 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Поменял в ядре такие значения: Код: html 1. 2. и буду следить дальше. Всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 17:08:04 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Сори, что влезаю в чужую тему. Подскажите пожалуйста, что можно сделать в такой ситуации: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Код: sql 1. 2. 3. 4. Настройки: checkpoint_segments = 40 checkpoint_timeout = 30min checkpoint_completion_target = 0.7 Постоянный iowait 20% и больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 10:39:38 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
_Monah_, авторcheckpoint starting: xlog checkpoint_segments = 40 ваши 40 валов за несколько минут копятся. сделайте много сегментов. но оч вероятно, что ваши проблемы с iowait в другом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 15:24:46 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, я недавно с постгресом познакомился. В чем может быть проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 17:57:51 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
_Monah_, я давно, и тоже не знаю, в чем у вас может быть проблема. не телепат) много возможных мест ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 18:13:26 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, увеличил количество сегментов до 80 и checkpoint_completion_target = 0.9 - появляются окна, но iowait не падает. Постоянно растет размер бд. Где-то 15Гб в сутки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 19:24:17 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
nedba Очень полезный набор скриптов https://github.com/ikatson/postgres-useful-sql/blob/master/postgres_useful.sql (дальше из схемы adm выбрать adm.bloat) _Monah_ Во первых сколько у вас коннектов одновременно. Во вторых размер самой большой таблицы с которой идет работа. В третьих vacuum analyze на все БД. Индексы (все ли есть на референсы, уники и первичные ключи) Используете ли pgbouncer(или аналог, так как бакенды дорогой ресурс) Кто еще использует диск (бэкапер, крон и т.д). vmstat. Железо в каком состоянии - состояние рейда, формат рейда (не 5(0) и не 6(0)), контроллер и его батарейка. В сислог не сыпятся ли ошибки про DMA и RAM? Нет ли в стойке с сервером устройства, которое рассылает флуд пакеты. и т.д. Будет интересно, сообщайте побольше подробностей. А так только могу советовать все (!) партиционировать (так вы снимите нагрузку с перестройки индексов) и перенести архивные данные на физически другое устройство (возможно медленное, но так вы разгрузите бутылочное горлышко IO) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 20:35:24 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
_Monah_Misha Tyurin, увеличил количество сегментов до 80 и checkpoint_completion_target = 0.9 - появляются окна, но iowait не падает. Постоянно растет размер бд. Где-то 15Гб в сутки. вариантов собственно два - 1)железо не соответсвующее текущей нагрузке (какой у вас размер базы? что в нее пишется и как? сколько памяти на сервере? какая конфигурация дисковой подсистемы?) или 2)напрограмировали что то не то при работе с базой и она не справляется под получившейся нагрузкой По сути одно и тоде но с важным различием: 1) - нагрузка по делу и надо ддумать о обновлениии железа 2) - нагрузка не по делу и надо искать от чего идет столько записи и лечить код возможно сочетание 1 и 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 01:28:43 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Стоит посмотреть, жива ли батарейка на RAID контроллере. Правильные контроллеры, обнаружив проблемы с батареей, тут же выключают write-back. В результате очень сильно проседает IO на запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 12:22:54 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
to all, джавовский c3p0 Используется. коннектов в среднем 140, в пиках до 250. Самая большая таблица порядка 30Гб autovacuum трудится(но, по-моему, не справляется) индексы на фк надо проверять Код: sql 1. 2. 3. 4. Бэкапы делаются на сетевой диск Железо: 2 Intel Xeon E5-2620 (12 Cores CPU) 56GB RAM RAID5 (8x600GB) 15,000RPM SAS (или что вы имеете ввиду?) контроллер хардварный, 448Мб памяти вроде. батарейка живая. Ошибки в лог не сыпятся, иначе приходили б смски. Нет ли в стойке с сервером устройства, которое рассылает флуд пакеты не знаю. сервера арендованные Партицинировать нету смысла, потому что нету архивных данных. Все постоянно обновляется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 17:50:54 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
_Monah_ <> Партицинировать нету смысла, потому что нету архивных данных. Все постоянно обновляетсяесли всё постоянно обновляется, надо делать периодические реиндексы (таки надо, как показывает практика -- поправьте, если не так) а партицирование, вероятно, позволяло бы реиндексировать меньшее кол-во записей за раз хотя того же можно добиться условным индексом, но на условный не навесишь фк (и да, партицирование сильно усложняет возможность обвеситься фкеями) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 18:22:44 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
_Monah_, RAID5 - это очень подозрительно. 10ку надо - это максимальная производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 19:08:11 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
_Monah_, "448Мб" - а размер шаред буферов какой у вас при этом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 19:09:32 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
qwwq, была большая таблица одна, мы ее разбили на части, но на нее не было фк. Автовакуумы стали отрабатывать. Реиндекс ж лочит таблицу. pg_reorg еще работает, но запустили его не очень давно, поэтому статистики маловато. Misha Tyurin, надо, но нужно нагрузочное тестирование проводить, чтобы сравнить производительность shared_buffers = 8192MB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:06:22 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
_Monah_qwwq, <> Реиндекс ж лочит таблицу. <> а куда деваццо пример: таблица - пол1000 записей 2 [составных] unique индекса, оба 2- по несколько мегов (изрядно многостраничны, даже после [авто]вакуума) вакуум (простой) не спасает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 11:37:22 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
йццй, надо подумать. возможно созданием технологических окон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 12:41:07 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
йццйа куда деваццо Возможно созданием рядом такого же индекса concurrently, прибиваем старый и переименовываем новый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2013, 12:35:16 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
_Monah_йццйа куда деваццо Возможно созданием рядом такого же индекса concurrently, прибиваем старый и переименовываем новыйну, да, но при наличии ф-кея (реиндекс п-кея)-- требуется ещё кучка пассов руками - снос ф-кея, дроп старого индекса создание ф-кея на новом. одной транзакцией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2013, 13:01:37 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin_Monah_, RAID5 - это очень подозрительно. 10ку надо - это максимальная производительность. и как по-вашему должна выглядеть дисковая подсистема с таким количеством дисков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2014, 15:30:44 |
|
||
|
Высокий IO wait
|
|||
|---|---|---|---|
|
#18+
_Monah_Misha Tyurin_Monah_, RAID5 - это очень подозрительно. 10ку надо - это максимальная производительность. и как по-вашему должна выглядеть дисковая подсистема с таким количеством дисков? 4 зеркала. RAID5 по записи в 2 раза менее эффективен, чем RAID10. В RAID5 для записи одного измененного блока вам надо прочитать старые данные, старую контрольную сумму, посчитать новую контрольную сумму, записать новые данные, записать новую контрольную сумму. Итого 4 I/O. В RAID10 просто пишется две копии новых данных. Итого 2 I/O. Это если на пальцах, потому что разные производители контроллеров делают всякие оптимизации, но если затык по записи, то с RAID5 надо соскакивать. Ну еще хорошо в этот RAID10 добавить дисков и WAL выкинуть на отдельное зеркало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2014, 03:59:47 |
|
||
|
|

start [/forum/topic.php?all=1&fid=53&tid=1998903]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
242ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 546ms |

| 0 / 0 |
