Автор Тема: Postgresql, 2 базы, тормоза одной.  (Прочитано 4934 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Flyer_SPb

  • Модераторы
  • Ветеран
  • *****
  • Сообщений: 1024
  • Рейтинг: 26
  • Пол: Мужской
  • Ветеран войны с Kilrathi
    • Просмотр профиля
  • Откуда: 2:5030
Postgresql, 2 базы, тормоза одной.
« : 25 октября 2011, 13:17:29 »
Дано:
Postgresql 9.0.5 на CentOS 5.7 x86_64 (виртуалка под XenServer 5.6.0)
top - 13:47:27 up 28 days,  2:17,  5 users,  load average: 2.70, 3.28, 3.04
Tasks: 269 total,   2 running, 267 sleeping,   0 stopped,   0 zombie
Cpu(s): 20.0%us,  1.6%sy,  0.0%ni, 76.6%id,  1.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16777216k total, 16438964k used,   338252k free,    59640k buffers
Swap:  1081336k total,  1080396k used,      940k free,  4170364k cached
На нём крутится 2 базы близкородственной структуры.
Одна база (~200GB) нагружена, на другую (~2GB) нагрузки почти нет.
(+ streaming replication на другой сервер)

К базам обращаются 2 почти одинаковых сайта (каждый к своей) - apache-itk 2.2.20, php 5.3.8 CentOS 5.7 (также под XenServer 5.6.0, на другом хосте).
Сайты едва нагружены.
top - 14:02:34 up 6 days, 15:47,  2 users,  load average: 0.03, 0.05, 0.01
Tasks: 100 total,   2 running,  98 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st
Mem:   1048760k total,   519984k used,   528776k free,   154628k buffers
Swap:  1081336k total,    17140k used,  1064196k free,   276712k cached

К первой базе большинство обращений идёт не от сайта, ко второй обращается только сайт.
Вторая база работает в разы медленнее (т.е., второй сайт, но узкое место - база, запросы выполняются очень медленно).
С чем бы это могло быть связано (кэш?) и в какую сторону копать?
They stole my gun, my beautiful Steltek gun!

Оффлайн VanDyke

  • Модераторы
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
Postgresql, 2 базы, тормоза одной.
« Ответ #1 : 25 октября 2011, 13:31:35 »
Flyer_SPb, посмотри на самые длинные запросы через pg_stat_activity (или если сайт позволяет - через него) и сделай им EXPLAIN ANALYZE.
PS гиг свопа это нехорошо. Значит в какой-то момент памяти не хватило...
Not as ultimate as 42, but pretty close...

Оффлайн Flyer_SPb

  • Модераторы
  • Ветеран
  • *****
  • Сообщений: 1024
  • Рейтинг: 26
  • Пол: Мужской
  • Ветеран войны с Kilrathi
    • Просмотр профиля
  • Откуда: 2:5030
Postgresql, 2 базы, тормоза одной.
« Ответ #2 : 25 октября 2011, 13:40:44 »
То, что он в память упирается, я в курсе. Но пока (XenServer 5.6.0) больше дать не могу.
They stole my gun, my beautiful Steltek gun!

Оффлайн VanDyke

  • Модераторы
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
Postgresql, 2 базы, тормоза одной.
« Ответ #3 : 25 октября 2011, 13:44:16 »
Flyer_SPb, попробуй отловить медленные запросы тогда. Возможно можно ограничиться малой кровью.
Not as ultimate as 42, but pretty close...

Оффлайн Flyer_SPb

  • Модераторы
  • Ветеран
  • *****
  • Сообщений: 1024
  • Рейтинг: 26
  • Пол: Мужской
  • Ветеран войны с Kilrathi
    • Просмотр профиля
  • Откуда: 2:5030
Postgresql, 2 базы, тормоза одной.
« Ответ #4 : 25 октября 2011, 14:17:15 »
Сейчас вторая база ходит на другой виртуалке, и всё просто летает.
top - 15:12:54 up 23:47,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 111 total,   2 running, 109 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2097152k total,  2051264k used,    45888k free,  1075956k buffers
Swap:  1081336k total,    26180k used,  1055156k free,   791436k cached
They stole my gun, my beautiful Steltek gun!

Оффлайн VanDyke

  • Модераторы
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
Postgresql, 2 базы, тормоза одной.
« Ответ #5 : 25 октября 2011, 14:23:01 »
Flyer_SPb, ну тут и своп не юзается, да и вообще всё по нулям :)
Not as ultimate as 42, but pretty close...

Оффлайн Flyer_SPb

  • Модераторы
  • Ветеран
  • *****
  • Сообщений: 1024
  • Рейтинг: 26
  • Пол: Мужской
  • Ветеран войны с Kilrathi
    • Просмотр профиля
  • Откуда: 2:5030
Postgresql, 2 базы, тормоза одной.
« Ответ #6 : 25 октября 2011, 14:49:12 »
Именно.
Что ж она с той-то вместе не живёт.
И почему та так не тормозит при этом.
Или она, как редкоиспользуемая, вытесняется из кэшей? Других идей у меня пока нет.
They stole my gun, my beautiful Steltek gun!

Оффлайн VanDyke

  • Модераторы
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
Postgresql, 2 базы, тормоза одной.
« Ответ #7 : 25 октября 2011, 14:53:04 »
Или она, как редкоиспользуемая, вытесняется из кэшей?
Ну как минимум из кэша файловой системы вытеснится.
Not as ultimate as 42, but pretty close...