mysql при работе использует только одно ядро CPU
Гость 29 Августа, 2009 - 09:41
Приветствую!
Тут такое дело: делал выборку по запросу из БД mysql и обнаружил, что на многоядрёной машине (у меня Core2Quad Q9400 @ 2.66GHz) mysql использует только одно ядро! Картинка в top при выполнении выборки такая:
top - 09:32:31 up 10:16, 5 users, load average: 0.96, 0.52, 0.27 Tasks: 128 total, 1 running, 127 sleeping, 0 stopped, 0 zombie Cpu0 : 1.0%us, 1.0%sy, 0.0%ni, 98.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu1 : 1.0%us, 0.7%sy, 0.0%ni, 98.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu2 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu3 :100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 3368616k total, 2437828k used, 930788k free, 192372k buffers Swap: 2008116k total, 0k used, 2008116k free, 1774100k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5550 mysql 20 0 129m 41m 3212 S 100 1.2 138:34.91 mysqld
Как полечить можно? (если это вообще возможно :-) ) Используй она все 4 ядра я бы выполнял выборку не за 30 минут а в 3 раза быстрее :)
»
- Для комментирования войдите или зарегистрируйтесь
А выборка, на сколько я
А выборка, на сколько я понял, идёт в один поток ведь?
Очень сомневаюсь, что распаралеливать один поток, вот если сам процесс выборки в 4 потока запустить.
dancingfire написал(а): А
Да, в один. А как запустить в несколько, если запрос всего один?
P.S. Эксперимент показал, что на двухпроцессорной (не двухядерной) машине поведение mysql аналогичное.
Не уверен что это возможно.
Не уверен что это возможно. но, имхо, принцип что-то вроде:
1. разбить весь массив данных на n равных частей.
2. запустить n потоков, делающих выборку и сливающих результат в итоговый массив данных.
n зависит от числа процессоров.
Но я не знаю, на сколько это возможно реализовать в рамках БД.
gcc-4.4.1 + graphite вам
gcc-4.4.1 + graphite вам поможет, чтобы было всегда, либо предыдущий оратор прав, и мускул возможно просто не распаралеливает единые запросы.
NightNord
А можно познакомиться с этим Graphite? Если не затруднит, дайте ссылочку на доки (очень жеательно на русском) где можно почитать что это такое и с чем едят?
Новая фича в gcc-4.4.*. Это
Новая фича в gcc-4.4.*. Это единственная информация. Хинт: ходят слухи, что нужен ppl с флагом prolog, ебилд gcc этого вроде как не учитывает. Флаги -floop-* - смотрите в мане. Русской документации не сущетсвует (вообще забудьте про это понятие, совет такой)