powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос о перегрузках
4 сообщений из 4, страница 1 из 1
Вопрос о перегрузках
    #32751808
addass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем!

У меня на сегодняшний день существует такая пробема:
есть рейтинговая сеть
и при одновременых обращениях около 100 запросах база отрубается и пишет что сильно много подключений
я понимаю что это нужно по ковыряться в настройках сервера и увеличить лимит подключений одновременых

у меня вопрос в другом
сколько sql практически может выполнить одновременых запросов
(все запросы к разным таблицам одной базы) ?
и что можно сделать что б мощность эту увеличить скажем хотя б до 15 000
одновременых запросов

у меня просто база счас не тянет 100 одновременых подключений к ней
и может помочь если поставить постоянное подключение? pconnect
...
Рейтинг: 0 / 0
Вопрос о перегрузках
    #32751953
У нас 2-процессорная тачка с 2 Gb RAM
Больше 300 процессов не ставим.
А если тормозит рейтинг - пересмотри структуру данных. Группируй статистику. Вычисляй, к примеру, рейтинг раз в час.

CPU-usage какой у тебя? Если 100% - проблема исключительно в оптимизации запросов. И если при этом ещё и добавить число подключений одновременных - будет ещё хуже.

Какой размер всех часто используемых таблиц? Если он больше размера оперативки на сервере - добавь RAM.
...
Рейтинг: 0 / 0
Вопрос о перегрузках
    #32751993
addass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас 2-процессорная тачка с 2 Gb RAM
Больше 300 процессов не ставим.
А если тормозит рейтинг - пересмотри структуру данных. Группируй статистику. Вычисляй, к примеру, рейтинг раз в час.

статистика обновляется раз пол часа

глючить сами текучие обработки данных

мне говорят люди что лучше их скидывать в файлы а атуда раз в пол часа в базу
но меня берут сомнения в таком способе


CPU-usage какой у тебя? Если 100% - проблема исключительно в оптимизации запросов. И если при этом ещё и добавить число подключений одновременных - будет ещё хуже.

Какой размер всех часто используемых таблиц?
ихний размер не более 5000 записей каждой а всего штук 100
около 1 метра всего :-) рейтинг новый
Если он больше размера оперативки на сервере - добавь RAM.
...
Рейтинг: 0 / 0
Вопрос о перегрузках
    #32772638
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
addassУ нас 2-процессорная тачка с 2 Gb RAM
Больше 300 процессов не ставим.

Очень сильно зависит от структуры запросов, да и вообще загрузки сервера...
Как пример, на одном из моих вебсерверов (P4-2.6 HT, 512Mb RAM) крутится некоторое количество проектов различной степени загруженности и безумности запросов к базам (в т.ч. и нечто схожее, полагаю, с "рейтинговой сетью" -- небольшая баннерная сеть), для данной системы опытным путём было установлено оптимальное количество разрешённых соединений в 250. Собственно, можно было бы и несколько большее количество выставить -- не нужно. При том, что на сервере не одна сеть, а и, например, официальное русское зеркало php.net, того же mysql.com и другие достаточно загруженные сайты. Так что тут всё выясняется опытным путём.

Практические советы:
1.

CPU-usage какой у тебя? Если 100% - проблема исключительно в оптимизации запросов. И если при этом ещё и добавить число подключений одновременных - будет ещё хуже.

Факт. Если дело обстоит именно так -- то либо пересматривать запросы и структуру базы (индексы под них строить дополнительные и т.п.), либо ставить отдельный сервер SQL...
Однако! Судя по описанию, скорей всего, ситуация та же, что, в своё время, возникла там у меня на сервере: множество соединений незакрытых корректно, и висящих, пока по таймауту не прибьются. В таком случае поможет
2. Погляди SHOW PROCESSLIST в клиенте mysql, либо #musqladmin -p processlist.
Если большая часть процессов выглядит примерно так:

+--------+--------+-----------+------------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+--------+-----------+------------+---------+------+-------+------------------+
| 988905 | user1 | localhost | user1 | Sleep | 300 | | |
| 989065 | user2 | localhost | user2 | Sleep | 142 | | |
| 989191 | user2 | localhost | user2 | Sleep | 9 | | |
| 989210 | user2 | localhost | user2 | Sleep | 17 | | |
| 989220 | user3 | localhost | user3 | Sleep | 1 | | |

и в рабочем режиме остаётся свободная память (Inact, Free) -- можешь смело увеличивать цифру соединений (для начала из клиента mysql: SET GLOBAL max_connections=150) 150 для примера, если памяти много свободной -- то больше. В качестве грубой оценки погляди размер процесса mysqld для сотни соединений, прикинь, сколько можно добавить, исходя из свободной памяти, ну и оставь немного запасу, бо если начнёт активно свопится -- труба...
3. Если этим методом не удастся достичь приемлемого количества соединений (вдруг действительно нужно 15к) -- читай
http://dev.mysql.com/doc/mysql/ru/Server_parameters.html
о "малой памяти и большом количестве соединений" и думай, всё же, о выделенном сервере MySQL,)

З.Ы. Да, если, всё же, процессы не спят, а активно думают -- в отладке поможет добавление в my.cnf чего-нить вроде
log_slow_queries=/var/db/mysql/slow-queries.log

set-variable = long_query_time=2

А выясненное оптимальное количество соединений надо будет прописать там же примерно так:
set-variable = max_connections=250
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос о перегрузках
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]