Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация работы с таблицей sessions в ip.board 
V
    Опции темы
Pokoinik
Дата 2.11.2012, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 17.3.2007
Где: /dev/null

Репутация: нет
Всего: 3



IPB хранит часть сессионной информации в memcached, и часть в такой таблице
Код

CREATE TABLE `sessions` (
  `id` VARCHAR(60) NOT NULL DEFAULT '0',
  `member_name` VARCHAR(255) DEFAULT NULL,
  `seo_name` VARCHAR(255) NOT NULL DEFAULT '',
  `member_id` INT(11) NOT NULL DEFAULT '0',
  `ip_address` VARCHAR(46) DEFAULT NULL,
  `browser` VARCHAR(200) NOT NULL DEFAULT '',
  `running_time` INT(10) DEFAULT NULL,
  `login_type` TINYINT(1) DEFAULT '0',
  `member_group` SMALLINT(3) DEFAULT NULL,
  `in_error` TINYINT(1) NOT NULL DEFAULT '0',
  `location_1_type` VARCHAR(255) NOT NULL,
  `location_1_id` INT(10) NOT NULL DEFAULT '0',
  `location_2_type` VARCHAR(255) NOT NULL,
  `location_2_id` INT(10) NOT NULL DEFAULT '0',
  `location_3_type` VARCHAR(255) NOT NULL,
  `location_3_id` INT(10) NOT NULL DEFAULT '0',
  `current_appcomponent` VARCHAR(100) NOT NULL DEFAULT '',
  `current_module` VARCHAR(100) NOT NULL DEFAULT '',
  `current_section` VARCHAR(100) NOT NULL DEFAULT '',
  `uagent_key` VARCHAR(200) NOT NULL DEFAULT '',
  `uagent_version` VARCHAR(100) NOT NULL DEFAULT '',
  `uagent_type` VARCHAR(200) NOT NULL DEFAULT '',
  `uagent_bypass` INT(1) NOT NULL DEFAULT '0',
  `search_thread_id` INT(11) NOT NULL DEFAULT '0',
  `search_thread_time` INT(10) NOT NULL DEFAULT '0',
  `was_failed_login_attempts` INT(11) NOT NULL DEFAULT '0',
  `session_msg_id` INT(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `location1` (`location_1_type`,`location_1_id`),
  KEY `location2` (`location_2_type`,`location_2_id`),
  KEY `location3` (`location_3_type`,`location_3_id`),
  KEY `running_time` (`running_time`),
  KEY `member_id` (`member_id`)
) ENGINE=MEMORY DEFAULT CHARSET=utf8


Эта инфа используется для статистических фич (форум читают и т.п.)
Проблема в том, что одномоментно на форуме находятся ~10k пользователей (всего активных сессий ~100k)
и выборки работают несколько медленно. 
Кешировать выборки нельзя - инфа должна быть актуальной. Возможно стоит вынести это из mysql, но куда? Key-Value storage совсем не подходят.  smile 


--------------------
ICQ: 490-993
Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!!
Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают.

Делай или не делай! Никаких попробую!
Йода (Yoda), мастер-джедай
PM MAIL ICQ   Вверх
MoLeX
Дата 2.11.2012, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 0
Всего: 140



Цитата

ENGINE=MEMORY


Цитата

Проблема в том, что одномоментно на форуме находятся ~10k пользователей (всего активных сессий ~100k)
и выборки работают несколько медленно. 


оперативная память то хоть есть? а то похоже что подкачка используется


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Pokoinik
Дата 2.11.2012, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 17.3.2007
Где: /dev/null

Репутация: нет
Всего: 3



128Gb ram on db server
память есть. smile


--------------------
ICQ: 490-993
Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!!
Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают.

Делай или не делай! Никаких попробую!
Йода (Yoda), мастер-джедай
PM MAIL ICQ   Вверх
Sanchezzz
Дата 4.11.2012, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 2
Всего: 60



утилиту mysqltuner   пробовали запускать и следовать советам ?  мне кажется вы упираетесь в настройку
хабпост1    про оптимизацию много постов уже накатано на хабре которые можно почитать. Обязательно читаем комментарии к статьям. и не забываем бекап конфигов делать)

И вот достойный хабпост как раз под вашу посещаемость 


Это сообщение отредактировал(а) Sanchezzz - 4.11.2012, 11:51


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Pokoinik
Дата 5.11.2012, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 17.3.2007
Где: /dev/null

Репутация: нет
Всего: 3



Оптимизация конфигов очень часто упирается в архитектурные решения приложения. 
в данном случае этого замечательного форума IPB

решили разделить сессионную информацию и статистику..  под последнюю написать отдельный аппликейшн.. 


--------------------
ICQ: 490-993
Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!!
Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают.

Делай или не делай! Никаких попробую!
Йода (Yoda), мастер-джедай
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0702 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.