SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.01.2011 09:57:29

Григорий
Участник
Зарегистрирован: 19.01.2011
Сообщений: 5

Online Игра (оптимизация производительности)

Здравствуйте уважаемые пользователи форума.
Прошу у вас помощи по оптимизации mysql MyISAM
Есть онлайн игра, само ядро работает на java (онлайн в игре достигает до 1500 человек)
Использует базу MySql
Управление базой происходит через Navicat for MySQL
в базе 126 таблиц все они работают на MyISAM
Характеристика оборудования:
Процессор Inte(R) Xeon(R) E5410 2.33GHz 2.33GHz (2 ядра)
Память (Ram) 24Гб

Настройка MyISAM в my.ini

#*** MyISAM Specific options

# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
myisam_max_sort_file_size=4000G

# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method.  This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_sort_buffer_size=69M

# Size of the Key Buffer, used to cache index blocks for MyISAM tables.
# Do not set it larger than 30% of your available memory, as some memory
# is also required by the OS to cache rows. Even if you're not using
# MyISAM tables, you should still set it to 8-64M as it will also be
# used for internal temporary disk tables.
key_buffer_size=64M

# Size of the buffer used for doing full table scans of MyISAM tables.
# Allocated per thread, if a full scan is needed.
read_buffer_size=64K
read_rnd_buffer_size=256K

Как я понимаю все другие значения в my.ini мне трогать не надо, так как они относятся к настройке innodb.

Прошу у вас помощи по оптимизации базы.

Неактивен

 

#2 19.01.2011 14:44:22

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Online Игра (оптимизация производительности)

key_buffer_size=10G

А почему не хотите использовать InnoDB?

Неактивен

 

#3 19.01.2011 14:57:33

Григорий
Участник
Зарегистрирован: 19.01.2011
Сообщений: 5

Re: Online Игра (оптимизация производительности)

с MyISAM как то проще)
а вы считаете что InnoDB лучше подойдет для онлайн игр?
спасибо за key_buffer_size=10G

Отредактированно Григорий (19.01.2011 14:58:07)

Неактивен

 

#4 19.01.2011 15:57:06

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Online Игра (оптимизация производительности)

Да, если в игру играет более одного человека smile
InnoDB хорош хотя бы тем, что он позволяет осуществлять параллельную запись
в одну таблицу.

Неактивен

 

#5 19.01.2011 17:01:01

Григорий
Участник
Зарегистрирован: 19.01.2011
Сообщений: 5

Re: Online Игра (оптимизация производительности)

ну опять же если я воспользуюсь InnoDB
то мне снова придется просить у вас помощи об оптимизации))

Неактивен

 

#6 20.01.2011 08:21:40

Григорий
Участник
Зарегистрирован: 19.01.2011
Сообщений: 5

Re: Online Игра (оптимизация производительности)

Здравствуйте еще раз.
у меня логин сервере все время пишет что то с вязаное с буффером
вот какая ошибка пишется: *WARN* Pooled Buffer is Exhausted!
Хотел бы поинтересоваться, может она как то связана с mysql?
если да, то как можно устранить ее?

+ возможно как то еще лучше улучшить производительность на MyISAM?
к примеру:
в онлайн игре жанра MMORPG игроки собираются в одном месте (к примеру 500 человек)
и начинаются маааленькие задержки, возможно это из за MyISAM?

Отредактированно Григорий (20.01.2011 14:42:51)

Неактивен

 

#7 22.01.2011 21:39:02

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Online Игра (оптимизация производительности)

Это не ошибка MySQL, но связана ли она с MySQL, не известно. Например,
это может быть буфер приложения.

Может быть из-за MyISAM, а может быть и нет. Зависит от запросов. Смотрите,
ждут ли у Вас какие-то запросы таблиц.

Неактивен

 

#8 23.01.2011 08:28:58

Григорий
Участник
Зарегистрирован: 19.01.2011
Сообщений: 5

Re: Online Игра (оптимизация производительности)

Так как я во обще мало чего знаю о Mysql, не могли бы вы подсказать как узнать (посмотреть) ждут ли запросы таблиц или нет.

Неактивен

 

#9 23.01.2011 14:47:29

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Online Игра (оптимизация производительности)

Выполните SHOW PROCESSLIST и смотрите состояние потоков. Если все висят в
состоянии Sleep — они ничего не делают, и в базу Вы не упираетесь. Если Waiting
for table — ждут таблицу. Скорее всего, из-за MyISAM.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson