php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 19/09/07 в 23:10 |
опять вопрос из области 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 по традиции ))
|
|
Толковый программист ждет [не]больших заказов (:
|
0
|
|
|
С нами с 08.05.06
Сообщения: 112
Рейтинг: 116
|
Добавлено: 20/09/07 в 00:56 |
По идее все у тебя должно работать. Сделай WITH_PROC_SCOPE_PTH=yes , по идее должно помочь.
з.ы. Может тебе действительно переставиться на что-нить Linuxоподобное? Сразу полегчает.
з.ы.ы. Может тебя хорошего фрюшного админа порекомендовать?
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 20/09/07 в 10:31 |
Вообщем невдаваясь в подробности, хочешь чтобы нагрузка распределялась на несколько процессоров равномерно, ставь Linux или linux-base и собирай с поддержкой linuxthreads.
Цитата: | Почему top показывает напротив процесса - номер процессора, который юзается данным процессом?... Неужели один процесс не может одновременно работать на 2х процессорах?... В процессе же много потоков и их самих можно "возложить" на разные процессоры.... А top напротив каждого процесса показывает конкретный логический номер процессора... Непонятка.. |
.
Процесс может выполняться только на одном процессоре.
В linux потоки одного процесса могут работать на разных процессорах по средствам kernel threads.
|
|
|
|
С нами с 08.05.06
Сообщения: 112
Рейтинг: 116
|
Добавлено: 20/09/07 в 10:59 |
xreload писал: | Вообщем невдаваясь в подробности, хочешь чтобы нагрузка распределялась на несколько процессоров равномерно, ставь Linux или linux-base и собирай с поддержкой linuxthreads.
|
То что я написал и является аналогом линукстридс для фряхи. Да и сами они могут поставиться на фряху. Только это действительно как-то странно выглядит...
|
|
|
|
php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 20/09/07 в 16:32 |
tramper2 писал: | По идее все у тебя должно работать. Сделай WITH_PROC_SCOPE_PTH=yes , по идее должно помочь.
|
Сейчас поглядим с чем это едят... Пасиб!
tramper2 писал: |
з.ы. Может тебе действительно переставиться на что-нить Linuxоподобное? Сразу полегчает.
|
В ДЦ не ставят линух... :(
Из ОС - CentOS, FreeBSD, OpenBSD, Fedora Core, Debian Stable, NetBSD, Ubuntu Server Edition...
А если про линух говорить - про какой речь?...
tramper2 писал: | з.ы.ы. Может тебя хорошего фрюшного админа порекомендовать? |
Себя? :) Понимаешь в чем дело, админ нужен, когда нифика не работает, или совсем не умеешь ничего ставить/настраивать, или времени нет и желания геморроем заниматься...
Хорошими Фрюшными Админами же не рождаются.. Ими становятся... С временем и опытом.. Я пока сам поэксперементирую.. ))
|
|
Толковый программист ждет [не]больших заказов (:
|
0
|
|
|
php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 20/09/07 в 16:47 |
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 получили! )
Спасибо за помощь!
|
|
Толковый программист ждет [не]больших заказов (:
|
0
|
|
|
С нами с 01.02.07
Сообщения: 231
Рейтинг: 294
|
Добавлено: 20/09/07 в 17:28 |
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 хотя бы
|
|
|
|
С нами с 01.02.07
Сообщения: 231
Рейтинг: 294
|
Добавлено: 20/09/07 в 18:08 |
WCPU На мускуле - 182.28%
как раз показывает что мускуль кушает оба ядра
я на 8-ми ядерном сервере запускал thread-bench - показало 800% WCPU! ))
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 20/09/07 в 18:50 |
Dantist писал: |
В ДЦ не ставят линух...
Из ОС - CentOS, FreeBSD, OpenBSD, Fedora Core, Debian Stable, NetBSD, Ubuntu Server Edition...
|
Ну как это не ставят ? Из твоего же списка : Fedora Core, Debian Stable.
Цитата: |
А если про линух говорить - про какой речь?... |
про любой.
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 20/09/07 в 19:10 |
libthr + SMP + FreeBSD 6.2 рулит (как Зуборг написал)
Ну и там еще в конфигах подправить thread_concurrency
|
|
|
|
php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 20/09/07 в 20:26 |
Я щас ребутнусь... ))))
Думал в аську написать некоторым товарищам, да в профиле нет..
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 )
|
|
Толковый программист ждет [не]больших заказов (:
|
0
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 20/09/07 в 20:33 |
Dantist: я надеюсь, ты ядро из под root-пользователя собираешь ? :-)
Ты бы это, на опеннет прошел, почитал , посоветовался, а не тут устраивал курсы молодого администратора.
|
|
|
|
php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 20/09/07 в 21:04 |
xreload писал: | Dantist: я надеюсь, ты ядро из под root-пользователя собираешь ? :-)
Ты бы это, на опеннет прошел, почитал , посоветовался, а не тут устраивал курсы молодого администратора. |
Из под рута, из под рута.... )))
Я по опеннет лажу так: google -> "мой вопрос site:opennet.ru"... Но там такого, что у меня при сборке ядра - нет...
Может реально спросить?
|
|
Толковый программист ждет [не]больших заказов (:
|
0
|
|
|
С нами с 08.05.06
Сообщения: 112
Рейтинг: 116
|
Добавлено: 21/09/07 в 00:18 |
Dantist писал: | Сейчас поглядим с чем это едят... Пасиб!
В ДЦ не ставят линух...
Из ОС - CentOS, FreeBSD, OpenBSD, Fedora Core, Debian Stable, NetBSD, Ubuntu Server Edition...
А если про линух говорить - про какой речь?...
Себя? Понимаешь в чем дело, админ нужен, когда нифика не работает, или совсем не умеешь ничего ставить/настраивать, или времени нет и желания геморроем заниматься...
Хорошими Фрюшными Админами же не рождаются.. Ими становятся... С временем и опытом.. Я пока сам поэксперементирую.. )) |
Нет, не себя. Я сам не админ и сейчас не вожусь даже с собственными дедиками ;) Просто есть пара людей , у которых можно проконсультироваться в случае внештатной ситуации. Это удобнее чем гуглить и общаться на форумах. Это кстати относится не только к администрированию, но и вообще ко всей работе. ;)
|
|
|
|
С нами с 01.02.07
Сообщения: 231
Рейтинг: 294
|
Добавлено: 21/09/07 в 10:43 |
/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
|
|
|
|