Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
MySQL 5.0, FreeBSD 6.1 и SMP..
Новая тема
Ответить
цитата
19/09/07 в 23:10
Dantist
опять вопрос из области DualProcessor Systems....
Система - ФриБСД 6.1, мускуль - 5.0.22 ..
1. Как заставить MySQL юзать оба процессора?...
Конфиг, это нечто такое (Вырезка):
Код:
[mysqld]
skip-locking
skip-innodb
skip-networking
query_cache_limit=1M
query_cache_size=32M
query_cache_type=1
max_connections=2500
interactive_timeout=100
wait_timeout=1000
connect_timeout=30
thread_cache_size=128
key_buffer=16M
join_buffer=1M
max_allowed_packet=16M
table_cache=1024
record_buffer=1M
sort_buffer_size=2M
read_buffer_size=2M
max_connect_errors=10
thread_concurrency=4
myisam_sort_buffer_size=64M
log-warning = 2
log-error = /var/log/mysql/log-error.log
log-slow-queries = /var/log/mysql/slowqueries.log
long_query_time = 10
open_files_limit = 8192
#log-queries-not-using-indexes
[mysqldump]
quick
max_allowed_packet=16M
[mysql]
no-auto-rehash
#safe-updates
В мануале к мускулю про SMP упоминается совсем не часто...
Цитата:
The operating system to use is very important. To get the best use of multiple-CPU machines, you should use Solaris (because its threads implementation works well) or Linux (because the 2.4 and later kernels have good SMP support).
Тут конечно всё написано... Но там же не "you should use
only
..."
В гугле нашел упоминания, что мускуль надо собрать с "linuxthreads".. потом нашел, что 5я версия мускуля и 6я фряхи отлично работают в SMP Режиме...
То, что выше, отсюда:
http://jeremy.zawodny.com/blog/archives/000697.html
Статья древняя, но каменты доходят до этого года....
Больше ничего внятного не нашел... УЖС...
Оффтоп:
Почему
top
показывает напротив
процесса
- номер процессора, который юзается данным процессом?... Неужели один процесс не может одновременно работать на 2х процессорах?... В процессе же много потоков и их самих можно "возложить" на разные процессоры.... А
top
напротив каждого процесса показывает конкретный логический номер процессора... Непонятка...
Всем Спасибо и +4 по традиции ))
цитата
20/09/07 в 00:56
tramper2
По идее все у тебя должно работать. Сделай WITH_PROC_SCOPE_PTH=yes , по идее должно помочь.
з.ы. Может тебе действительно переставиться на что-нить Linuxоподобное? Сразу полегчает.
з.ы.ы. Может тебя хорошего фрюшного админа порекомендовать?
цитата
20/09/07 в 10:31
xreload
Вообщем невдаваясь в подробности, хочешь чтобы нагрузка распределялась на несколько процессоров равномерно, ставь Linux или linux-base и собирай с поддержкой linuxthreads.
Цитата:
Почему top показывает напротив процесса - номер процессора, который юзается данным процессом?... Неужели один процесс не может одновременно работать на 2х процессорах?... В процессе же много потоков и их самих можно "возложить" на разные процессоры.... А top напротив каждого процесса показывает конкретный логический номер процессора... Непонятка..
.
Процесс может выполняться только на одном процессоре.
В linux
потоки
одного
процесса могут работать на разных процессорах по средствам kernel threads.
цитата
20/09/07 в 10:59
tramper2
xreload писал:
Вообщем невдаваясь в подробности, хочешь чтобы нагрузка распределялась на несколько процессоров равномерно, ставь Linux или linux-base и собирай с поддержкой linuxthreads.
То что я написал и является аналогом линукстридс для фряхи. Да и сами они могут поставиться на фряху. Только это действительно как-то странно выглядит...
цитата
20/09/07 в 16:32
Dantist
tramper2 писал:
По идее все у тебя должно работать. Сделай WITH_PROC_SCOPE_PTH=yes , по идее должно помочь.
Сейчас поглядим с чем это едят... Пасиб!
tramper2 писал:
з.ы. Может тебе действительно переставиться на что-нить Linuxоподобное? Сразу полегчает.
В ДЦ не ставят линух... :(
Из ОС - CentOS, FreeBSD, OpenBSD, Fedora Core, Debian Stable, NetBSD, Ubuntu Server Edition...
А если про линух говорить - про какой речь?...
tramper2 писал:
з.ы.ы. Может тебя хорошего фрюшного админа порекомендовать?
Себя? :) Понимаешь в чем дело, админ нужен, когда нифика не работает, или совсем не умеешь ничего ставить/настраивать, или времени нет и желания геморроем заниматься...
Хорошими Фрюшными Админами же не рождаются.. Ими становятся... С временем и опытом.. Я пока сам поэксперементирую.. ))
цитата
20/09/07 в 16:47
Dantist
xreload писал:
Вообщем невдаваясь в подробности, хочешь чтобы нагрузка распределялась на несколько процессоров равномерно, ставь Linux или linux-base и собирай с поддержкой linuxthreads.
Интересно... Правда в портах этих linux_base'ов столько... Какой нужен?... Помню для сутры когда-то ставили linux_base-rh-9... Так а что linux_base сделает? Научит приложения, которые "умеют" с ним работать правильно разделять свои вычисления на 2 проца?...
xreload писал:
Процесс может выполняться только на одном процессоре.
В linux
потоки
одного
процесса могут работать на разных процессорах по средствам kernel threads.
Мдя... ФриБСД в этом плане странная какая-то... :-/
Вот, кстати, в top такое сейчас висит:
Цитата:
last pid: 2629; load averages: 3.39, 3.60, 3.63 up 34+01:39:41 13:40:25
395 processes:5 running, 386 sleeping, 1 zombie, 3 lock
CPU states: 37.6% user, 0.0% nice, 52.0% system, 0.6% interrupt, 9.9% idle
Mem: 1472M Active, 178M Inact, 272M Wired, 74M Cache, 112M Buf, 5176K Free
Swap: 4096M Total, 79M Used, 4016M Free, 1% Inuse
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
85101 mysql 514 20 0 171M 89120K kserel 3 31.3H 182.28% mysqld
Призадумался... WCPU На мускуле - 182.28%... ))) Выходит, здесь указанно суммарное потребление проца по обоим процессорам? ))) ** top этот из FreeBSD 6.1 (А то на каждой ОС - он "своё" вкладывает в подобные колонки)...
Просто CPU - тоже самое... 182%...
Но как такое реально, если процесс - один и выходит висит лишь на одном процессоре?.. (Номер 3... Даже указанно...)
P.S. Все по +4 получили! )
Спасибо за помощь!
цитата
20/09/07 в 17:28
zuborg
linux_threads не стоит
стоит во первых обновить ОС до 6.2, а как только зарелизят 7.0 - то до 7.0
во вторых надо в /etc/libmap.conf записать
# cat /etc/libmap.conf
[mysqld]
libpthread.so.2 libthr.so.2
libpthread.so libthr.so
ну и в третьих если вопрос в производительности мускуля то стоит поставить
key_buffer=256M хотя бы
цитата
20/09/07 в 18:08
zuborg
WCPU На мускуле - 182.28%
как раз показывает что мускуль кушает оба ядра
я на 8-ми ядерном сервере запускал thread-bench - показало 800% WCPU! ))
цитата
20/09/07 в 18:50
xreload
Dantist писал:
В ДЦ не ставят линух...
Из ОС - CentOS, FreeBSD, OpenBSD, Fedora Core, Debian Stable, NetBSD, Ubuntu Server Edition...
Ну как это не ставят ?
Из твоего же списка : Fedora Core, Debian Stable.
Цитата:
А если про линух говорить - про какой речь?...
про любой.
цитата
20/09/07 в 19:10
Pentarh
libthr + SMP + FreeBSD 6.2 рулит (как Зуборг написал)
Ну и там еще в конфигах подправить thread_concurrency
цитата
20/09/07 в 20:26
Dantist
Я щас ребутнусь... ))))
Думал в аську написать некоторым товарищам, да в профиле нет..
zuborg, если есть время проконсультировать - 15694zero736.. Буду безмерно благодарен ))
Поставил всем рейтингу, теперь по порядку...
zuborg писал:
стоит во первых обновить ОС до 6.2, а как только зарелизят 7.0 - то до 7.0
Zuborg, есть одна нерешенная трабла, которая поднялась тут:
Настройка серверной части VPN.. (Роутинг траффика)
... Там в середине обсуждения всплывает то, что ядро собрать, оказывается проблематично, а именно в середине процесса "# make buildkernel" вылазит:
Код:
--------------------------------------------------------------
>>> stage 3.1: making dependencies
--------------------------------------------------------------
cd /usr/obj/usr/src/sys/GENERIC; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=i386 MACHINE=i386
CPUTYPE= GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font
GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac _SHLIBDIRPREFIX=/usr/obj/usr/src/tmp INSTALL="sh /usr/src/tools/install.sh" PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:
/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin make KERNEL=kernel depend -DNO_MODULES_OBJ
machine -> /usr/src/sys/i386/include
cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/ipfilter -I/usr/src/sys/contrib/pf -I/usr/src/sys/dev/ath -I/usr/src/sys/contrib/ngatm -I/usr/src/sys/dev/twa -I/usr/src/sys/gnu/fs/xfs/FreeBSD -I/usr/src/sys/gnu/fs/xfs/FreeBSD/support -I/usr/src/sys/gnu/fs/xfs -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding /usr/src/sys/i386/i386/genassym.c
cc1: error: unrecognized command line option "-Wno-pointer-sign"
*** Error code 1
Stop in /usr/obj/usr/src/sys/GENERIC.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
dantist#
И трабла так и не решилась... Был бы рад услышать (хотя бы там) и твое мнение по этому вопросу...
Далее..
zuborg писал:
WCPU На мускуле - 182.28%
как раз показывает что мускуль кушает оба ядра
я на 8-ми ядерном сервере запускал thread-bench - показало 800% WCPU! ))
М-м-м-... Так все ОК?..
1. Что дает в этом случае libthr?.. Возможность разбить потоки одного процесса по разным вычислительным ядрам?.. Дык выходит, если WCPU у одного mysql > 100%, то он уже разбит на несколько ядер...
2. Можно линку на thread-bench?.. Гугля не нашла, в портах тож нету..
3. linux_threads - /usr/ports/devel/libpthread-stubs/ - это оно?... :-/
xreload писал:
Ну как это не ставят ? icon_smile.gif Из твоего же списка : Fedora Core, Debian Stable.
Понял.. )))
Pentarh писал:
Ну и там еще в конфигах подправить thread_concurrency
Да стоит вроде ))) =4 )
цитата
20/09/07 в 20:33
xreload
Dantist:
я надеюсь, ты ядро из под root-пользователя собираешь ? :-)
Ты бы это, на опеннет прошел, почитал , посоветовался, а не тут устраивал курсы молодого администратора.
цитата
20/09/07 в 21:04
Dantist
xreload писал:
Dantist:
я надеюсь, ты ядро из под root-пользователя собираешь ? :-)
Ты бы это, на опеннет прошел, почитал , посоветовался, а не тут устраивал курсы молодого администратора.
Из под рута, из под рута.... )))
Я по опеннет лажу так: google -> "мой вопрос site:opennet.ru"... Но там такого, что у меня при сборке ядра - нет...
Может реально спросить?
цитата
21/09/07 в 00:18
tramper2
Dantist писал:
Сейчас поглядим с чем это едят... Пасиб!
В ДЦ не ставят линух...
Из ОС - CentOS, FreeBSD, OpenBSD, Fedora Core, Debian Stable, NetBSD, Ubuntu Server Edition...
А если про линух говорить - про какой речь?...
Себя?
Понимаешь в чем дело, админ нужен, когда нифика не работает, или совсем не умеешь ничего ставить/настраивать, или времени нет и желания геморроем заниматься...
Хорошими Фрюшными Админами же не рождаются.. Ими становятся... С временем и опытом.. Я пока сам поэксперементирую.. ))
Нет, не себя. Я сам не админ и сейчас не вожусь даже с собственными дедиками ;) Просто есть пара людей , у которых можно проконсультироваться в случае внештатной ситуации. Это удобнее чем гуглить и общаться на форумах. Это кстати относится не только к администрированию, но и вообще ко всей работе. ;)
цитата
21/09/07 в 10:43
zuborg
/home/ports/benchmarks/sysbench
# sysbench --test=threads --num-threads=4 run
5545 root 9 119 0 2948K 1260K CPU1 1 1:19 360.89% sysbench
Test execution summary:
total time: 34.0017s
total number of events: 10000
total time taken by event execution: 135.9657
per-request statistics:
min: 0.0084s
avg: 0.0136s
max: 0.0214s
approx. 95 percentile: 0.0143s
Threads fairness:
events (avg/stddev): 2500.0000/27.32
execution time (avg/stddev): 33.9914/0.00
это что касается бенча тредов
по libthr:
во фре есть несколько либ (3 стандартные, плюс можно из портов ставить), реализующих POSIX треды, все они очень разные, хотя в принципе все они очень интенсивно развиваются, так что разница может быть и совсем небольшой
надо тестить, в общем
на самом деле производительность mysql и postgresql на многоядерных cpu очень!! зависит от шедулера:
http://jeffr-tech.livejournal.com/
который в 7.0 очень превосходит шедулер в 6.2 и даже в linux (бенчи всех рассудят, когда зарелизят 7.0, не надо холиварить, если что :-)
такова селяви
а что касается проблем сборки: надежней всего удалить /usr/src (сохранив конф ядра) и собрать все с нуля стандартным системным компилером, если опять будут ошибки, значит проблема в /etc/make.conf
Новая тема
Ответить
Эта страница в полной версии