Падает сервер при входе в админку - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2

Падает сервер при входе в админку

#1 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 23 Июль 2019 - 20:26

Здравствуйте, обновил форум с 3.4.5 на 4.4.4 все роде нормально два дня, пересчет шёл и тд, все пересчитало и работало нормально потихоньку все настраивал.
Последнее не помню, что менял в админке(вроде последнее это отредактировал шаблоны userBar и mobileNavigation в добавил доп.ссылки в панель пользователя типа ссылки на Мои Публикации и ссылку для админа вход в админку портала) через какое то время пытаюсь войти в админку форума и сервер зависает напрочь забивает все процессами в логах ошика mod_fcgid: can't apply process slot for перезагружаю сервер и все нормально работает 140-170 процессов, опять пробую зайти и опять все зависает процессов сразу 300-380 в логах опять эта ошибка, перезагрузка и опять нормальная работа хоть несколько часов, пока опять не попробую войти в админку и все повисает на авторизации.
В чем проблема как решить её?? в админку естественно не войти, что бы попробовать откатить шаблоны которые редактировал ((
содержимое /etc/apache2/mods-available/fcgid.conf
<IfModule mod_fcgid.c>
 FcgidConnectTimeout 20
 IPCCommTimeout 600
  MaxRequestLen 104857600
  <IfModule mod_mime.c>
    AddHandler fcgid-script .fcgi
  </IfModule>
</IfModule>

пробовал добавлять туда
MaxRequestsPerProcess 500
DefaultMaxClassProcessCount 250
IdleTimeout 60
MaxProcessCount 2000

но не коем образом это проблему не решала, разве что процессов ещё больше становилось

Так же сильно выросла таблица ibf_core_output_cache 2.8г и продолжает увеличиваться, когда вся база после обновления была 1.7г

Сообщение изменено: avgaz (23 Июль 2019 - 20:35)

0

#2 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 24 Июль 2019 - 00:50

Замучался не как не могу решить проблему вернее её даже найти, а она походу связана с базой данных. Решил попробовать подключить данную базу на второй сайт на котором тоже стоит версия 4.4 который полностью работает в админку заходит все отлично, в конфиге прописал подключение к базе данных проблемного сайта, второй сайт загрузился с этой базой пробую войти в админку и на тебе так же все падает, то есть что то с базой проблемного сайт. попробовал выполнить SHOW PROCESSLIST там там множество таких записей Waiting for table level lock /*IPS\Session\Store\_Database::loadSession:93*/ SE.

Теперь в обще не знаю куда копать (((

Посмотрел что таблица core_sessions имеет 27000 записей, что в принципе не может быть столько в онлайне, очистил её и без проблем вошёл в админку. С чем могло быть связано такое наполнение этой таблицы? и как это связано с увеличением процессов при входе в админку

Сообщение изменено: avgaz (24 Июль 2019 - 01:16)

0

#3 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 4 048
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 588
  • IPB version:I have no IPB
 

Отправлено 24 Июль 2019 - 07:55

Цитата

SHOW PROCESSLIST там там множество таких записей Waiting for table level lock /*IPS\Session\Store\_Database::loadSession:93*/ SE.
Используйте InnoDB. Там блокировка идет на уровне записи, а не таблицы.
0

#4 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 24 Июль 2019 - 09:11

Просмотреть сообщениеnewbie 24 Июль 2019 - 07:55 сказал(а):

Используйте InnoDB. Там блокировка идет на уровне записи, а не таблицы.

Ситуация повторилась, таблица ibf_core_sessions имеет записей 17360 и mysql перестает отвечать при заходе в админку или на страницу пользователи онлайн то есть где список пользователей онлайн есть.

как перевести таблицы правильно в InnoDB и поможет ли это решить проблему??
почему такая ситуация почему забивается эта таблица??

Сообщение изменено: avgaz (24 Июль 2019 - 09:16)

0

#5 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 4 048
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 588
  • IPB version:I have no IPB
 

Отправлено 24 Июль 2019 - 10:34

ALTER TABLE ibf_core_sessions ENGINE=InnoDB;

0

#6 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 24 Июль 2019 - 11:17

Не пойму почему эта таблица постоянно увеличивается, очищаешь через phpmyadmin через полчаса там уже более 5тыс записей и постоянно увеличивается, хотя в реальности с гостями максимум 200-300 пользователей

может какие задачи не выполняются? по этому и не очищается таблица сессий и output_cache тоже растет по идее она тоже должна очищатся по времени кеша

Сообщение изменено: avgaz (24 Июль 2019 - 11:24)

0

#7 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 4 048
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 588
  • IPB version:I have no IPB
 

Отправлено 24 Июль 2019 - 11:25

Просмотреть сообщениеavgaz сказал(а):

может какие задачи не выполняются?

Смотрите в списке задач.
0

#8 Пользователь не на сайте   Zero108 ответил: »

 
 
  • Advanced
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 860
  • Регистрация: 25-Июль 09
  • Репутация: 117
  • IPB version:4.1.x
 

Отправлено 24 Июль 2019 - 12:58

Цитата

хотя в реальности с гостями максимум 200-300 пользователей


У меня с роботами 11000 уников в сутки, а без роботов 150 ))
0

#9 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 24 Июль 2019 - 14:36

Просмотреть сообщениеnewbie 24 Июль 2019 - 11:25 сказал(а):

Смотрите в списке задач.

В списке задач она висит и без ошибок был косяк это при обновлении пересчете использовал cron после обновления задачу из крона удалил, а в алминке не переключил, что задачи по трафику запускать видимо это и вызвало переполнение этой таблицы, хотя все равно почему при более чем 4к записей в таблице сервер уходит в аут на страницах где есть вывод списка онлайн, то есть это в админке, в списке онлайн пользователей, так же если разместить виджет онлайн пользователей то тоже создает большое количество процессов и сервер перегружает перестает отвечать??
Сейчас вроде задача по о чистке выполняется, то есть таблица периодически очищается, и не превышает 3к записей, но при этом записей все равно много которые уже более 15минут не активны. Пришлось закрыть страницу пользователей онлайн и убрать виджет, списка онлайн т.к при открытии этих страниц тормоза страница грузится по минуте, без них нормально все.

Просмотреть сообщениеZero108 24 Июль 2019 - 12:58 сказал(а):

У меня с роботами 11000 уников в сутки, а без роботов 150 ))

тут проблема переполнения таблицы было записями и как понял при большом количестве записей в таблице ibf_core_sessions страницы где выводится список онлайн просто перегружали сервер процессами и он тупо не справлялся, даже сейчас когда записей в этой таблице не более 3000 при открытии этих страниц, только одним человеком добавляется порядка 50-100 дополнительных процессов и страница загружается по минуте.

Так пока и не понял как решить проблему эту???
0

#10 Пользователь не на сайте   Zero108 ответил: »

 
 
  • Advanced
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 860
  • Регистрация: 25-Июль 09
  • Репутация: 117
  • IPB version:4.1.x
 

Отправлено 24 Июль 2019 - 20:24

Ну, как решить. Как учили. Отключить все не дефолтное (темы, приложения, убрать все изменения в коде) и смотреть. Базу переконвертировать в инно. Нгинкс конф подкрутить. Сервер взять дедик в хетзнере...

Сообщение изменено: Zero108 (24 Июль 2019 - 20:25)

0

#11 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 24 Июль 2019 - 22:19

Просмотреть сообщениеZero108 24 Июль 2019 - 20:24 сказал(а):

Ну, как решить. Как учили. Отключить все не дефолтное (темы, приложения, убрать все изменения в коде) и смотреть. Базу переконвертировать в инно. Нгинкс конф подкрутить. Сервер взять дедик в хетзнере...

Дак все и так на дефолте, суть в том, что эти страницы где идет опрос кто онлайн запрашивают данные всей таблицы разом ещё и параллельно делают запрос в таблицу пользователей и если таблица скажем на 5000 просто все не тянет.
Причем не понятно как работает очищение этой таблицы как я понимаю раз в 15минут выполняется запрос на очищение, но такое ощущение, что очищается явно не все что старше 15 минут т.к в списке пользователей онлайн есть те кто совершал 30 минут назад.
Вот где этот код который очищает таблицу от старых сессий? где время задач настраивается?

Сейчас например в этой таблице 7500 тыс записей, и и запрос
SELECT * FROM `ibf_core_sessions` WHERE `running_time` > unix_timestamp(now()) - 1200
выдает 4986 то есть 5к записей которые уже без движения более 20минут

Сообщение изменено: avgaz (24 Июль 2019 - 22:37)

0

#12 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 25 Июль 2019 - 09:24

а так и должно быть, что сессии с одинаковыми ip там дублируются? то есть яндекс бот в этой таблице с одним ip имеет несколько записей, я просто понять не могу почему эта таблица разрастается так. Не когда в онлайне и не боло более 900 с гостями в месте, а тут постоянно тысячи записей в этой таблице

Сообщение изменено: avgaz (25 Июль 2019 - 09:28)

0

#13 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 25 Июль 2019 - 17:39

Пытаясь решить проблему выяснил что вот эта функция загружает sql на полную
public function getOnlineUsers( $flags=0, $sort='desc', $limit=NULL, $memberGroup=NULL, $showAnonymous=FALSE )
	{
		/* Query */
		$where = array(
			array( 's.running_time>?', \IPS\DateTime::create()->sub( new \DateInterval( 'PT30M' ) )->getTimeStamp() ),
			array( "s.login_type!=?", \IPS\Session\Front::LOGIN_TYPE_SPIDER )
		);
		
		if ( ! $showAnonymous )
		{
			$where[] = array( "s.login_type!=?", \IPS\Session\Front::LOGIN_TYPE_ANONYMOUS );
		}

		if ( ! $flags and ! $limit )
		{
			/* Simple query for PHP processing */
			return iterator_to_array( \IPS\Db::i()->select( 's.id,s.member_id,s.member_name,s.seo_name,s.member_group,s.login_type', array( 'core_sessions', 's' ), $where, 's.running_time ' . $sort )->setKeyField('id') );
		}
		else
		{
			/* Complex group by mode with all the lovely trimmings yum */
			$subWhere = $where;
			
			/* Ok, this looks odd, but the ONLY_FULL_GROUP_BY bites us here, so selecting max(id) allows us to return a session ID even though we're grouping on member_id */
			$where = array( array( "( core_sessions.id IN(?) OR ( core_sessions.member_id IS NULL AND core_sessions.login_type != ? AND core_sessions.running_time > ?) )", \IPS\Db::i()->select( 'MAX(id)', array( 'core_sessions', 's' ), $subWhere, NULL, NULL, 'member_id' ), \IPS\Session\Front::LOGIN_TYPE_SPIDER, \IPS\DateTime::create()->sub( new \DateInterval( 'PT30M' ) )->getTimeStamp() ) );

			/* Limiting to a user group? */
			if ( $memberGroup )
			{
				$where[] = array( 'core_sessions.member_group=?', $memberGroup );
			}
			
			/* Just looking for guests? */
			if ( $flags AND ! ( $flags & static::ONLINE_MEMBERS ) )
			{
				$where[] = array( '( core_sessions.member_id IS NULL )' );
			}
			
			if ( $flags AND ! ( $flags & static::ONLINE_GUESTS ) )
			{
				/* No guests */
				$where[] = array( 'core_sessions.member_id IS NOT NULL' );
			}

			/* Just fetching a count? */
			if ( $flags & static::ONLINE_COUNT_ONLY )
			{
				return \IPS\Db::i()->select( 'COUNT(*)', 'core_sessions', $where )->first();
			}

			return iterator_to_array( \IPS\Db::i()->select( '*', 'core_sessions', $where, 'core_sessions.running_time ' . $sort, $limit )->setKeyField('id') );
		}
	}
	

и как я понял в этом месте вот это приводит к этому
\IPS\Db::i()->select( 'COUNT(*)', 'core_sessions', $where )->first();
так как если это удалить то страница открывается быстро, ну естественно только 30 записями на странице

не пойму в чем проблема форум в целом работает хорошо но как только идет вызов этой функции то все падает ((
0

#14 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 298
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 26 Июль 2019 - 13:45

Перевел таблицу core_sessions в InnoDB база перестала падать при вызове этой функции getOnlineUsers, но как бы проблему это не решило т.к при вызове этой функции приходится ждать загрузки страницы по несколько секунд, при этом top показывает, что процесс mysql грузит процессор на 100% в остальных случаях все нормально (((
то есть пришлось закрыть доступ к списку онлайн и не использовать блок онлайна стандартный ((
Попробовал экспортировать эту таблицу с 2к записями на локалку(опенсервер) и там не каких проблем в обще нет, страницы где используется эта функция открываются мгновернно даже при таком количестве записей в таблице. Но есть разница в том что при одних и техже записях в этой таблице, форум показывает 350 онлайн, а локалка 750 онлайн, может в этом проблема форум что то ещё обрабатывается с этими онлайн? с ботами онлайн может связано есть может такая настройка где?
В общем может у кого есть мысли в чем проблема и как её решить то?? в обще не могу понять, что это и с чем вдруг стало связано (( может действительно где то накосячил в админке но где

Сообщение изменено: avgaz (26 Июль 2019 - 14:00)

0

#15 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 4 048
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 588
  • IPB version:I have no IPB
 

Отправлено 27 Июль 2019 - 11:07

Вы же клиент в IPS. Создайте тикет. Пусть посмотрят на месте.
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2019 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна