По блокировке сессий, откровенно говоря это функционал которым я горжусь, так как такого больше не у кого нету. Суть проблемы в следующем: делаем скрипт который открывает сессию и делает там sleep(100), открываем его в двух вкладках и внимательно смотрим как долго у нас открывается вторая вкладка.
При этом так называемые "тормоза сайта" не будут связаны не с мощностью сервера, не с потребляемыми ресурсами или лимитами. В свое время мы написали небольшое расширение для php, которое отлавливает эту ситуацию и сделали микросервис Redis в котором можно хранить сессии. Нельзя сказать, что решение отличное - так как возможны ситуации с неконсистентностью данных, то есть когда один процесс меняет данные пока второй работает с этими данными, но это бывает редко и в подавляющем ряде случаев не вызывает проблем.
Это не как не связанно с нагрузкой на сайт и даже если Вы перенесете сайт от нас - проблема останется, только об ее существовании Вам не кто не скажет.
Если Bitrix пишет о проблеме на habre - почему бы нам не уведомить клиентов о том, что такая проблема есть и не решить ее ? Наверное это вопрос из серии - зачем предупреждать пользователей о вирусах на их сайте ? Или о том, что запросы к БД блокируют друг друга и сайт открывается по 10 секунд ?
Я не могу сказать, что Redis для хранения сессий пользуется большой популярностью - но для тех кому он действительно нужен это очень хорошая фича.
Бегет, а много на Сёрче у вас левых аккаунтов? Чего в подписи не написали - Beget Support?
Хорошая позиция, после единственного ответа от человека который имеет отношение к Beget - тишина... Хоть прокомментируйте может мы что-то можем сделать лучше ?
MorganSalevan: Бегет, а много на Сёрче у вас левых аккаунтов? Чего в подписи не написали - Beget Support?
Дочитал до 4 страницы - дальше, особого смысла читать нету. Я являюсь соучредителем Beget, раньше писал на этом форуме, потом мои посты удалили с обоснованием, что по правилам надо писать в отдельной теме, последние полгода сюда не заглядывал.
По блокировке сессий, откровенно говоря это функционал которым я горжусь, так как такого больше не у кого нету. Суть проблемы в следующем: делаем скрипт который открывает сессию и делает там sleep(100), открываем его в двух вкладках и внимательно смотрим как долго у нас открывается вторая вкладка.
При этом так называемые "тормоза сайта" не будут связаны не с мощностью сервера, не с потребляемыми ресурсами или лимитами. В свое время мы написали небольшое расширение для php, которое отлавливает эту ситуацию и сделали микросервис Redis в котором можно хранить сессии. Нельзя сказать, что решение отличное - так как возможны ситуации с неконсистентностью данных, то есть когда один процесс меняет данные пока второй работает с этими данными, но это бывает редко и в подавляющем ряде случаев не вызывает проблем.
Это не как не связанно с нагрузкой на сайт и даже если Вы перенесете сайт от нас - проблема останется (другое дело, что для Вас она не критична), только об ее существовании Вам не кто не скажет.
Если Bitrix пишет о проблеме на habre - почему бы нам не уведомить клиентов о том, что такая проблема есть и не решить ее ? Наверное это вопрос из серии - зачем предупреждать пользователей о вирусах на их сайте ? Или о том что запросы к БД блокируют друг друга и сайт открывается по 10 секунд ?
Я не могу сказать, что Redis для хранения сессий пользуется большой популярностью - но для тех кому он действительно нужен это очень хорошая фича.
Если подвести итог: лучше пускай про нас напишет один 1 из 250000 клиентов, что мы разводим "маркейтинговую хренотень" чем у 1000 клиентов сайт будет работать медленнее и они напишут нам в техническую поддержку... Я приношу извинения если данное сообщение доставило неудобство - напишите мне (alexey песик beget.ru) Ваш логин и больше не какие уведомления подобного рода Вас беспокоить не будут.
---------- Добавлено 28.09.2017 в 23:51 ----------
devilstar: Тему прочитал по диагонали, однако свое мнение касательно beget и ему аналогичных - есть.
Любой хостер, который оперирует абстрактными CP - мышеловка.
Просто пример, это когда тот же бегет не смог мне объяснить, а что собственно означает 1cp :D
Я задал примерно такой вопрос - "Вот, скажем, ваша панель показывает, что я потребляю 50cp. Что это означает в более понятных цифрах? Скрипты жрут оперативку? Скрипты долго работают? Медленные запросы к бд? Большой поток данных на запись/чтение?" Техподдержка хостера не знает ответа на этот вопрос.
Дальше думайте сами, сидеть на таком хостере, который в любой момент может придумать повод для смены тарифа на более дорогой на основе абстрактных и ничем не подкрепленных значениях CP, или может есть хостеры получше ;)
-m, --user-summary
Print the number of processes and number of CPU minutes on a per-user basis.
Если дать точно определение из инструкции "sum of system and user time in cpu seconds " - суммарное потраченное время процессора user и kernel space на обработку процессов пользователя, получаемая стандартными средствами ядра linux.
Но наверное, многие читатели этого форума спросят - почему же этого попугая (CP) называю абстрактным. Ответ на этот вопрос достаточно простой - если у Вас сервер на базе процессора Xeon 5520 с hdd и 12 гигабайтами оперативной памяти - cp будет больше, чем когда у Вас Xeon E5-2699v4 с 8 SSD Intel 37XX и 512 гигабайтами памяти. Это время учитывает операции ввода/вывода - и на медленных системах это может быть существенно. Так же нужно понимать что чистота, архитектура у процессоров разная и сравнивать данного попугая можно только с аналогичным оборудованием.
Наверное я бы еще рассказал про то какое оборудование мы ставим, но боюсь что опять все мои сообщения удалят =)
er-ka: Вы пингонули мою VPS на которой крутится сайт http://er-ka.ru вот один изактуальных серверов хостинга: 62.79.26.191 думаю будет информативней.
Странно, я думал пингую сайт хостинга "ping h4s.ru", а оказалось Вашу VPS =).
пс. В любой случае такие сообщения и реакция подобная моей, к несчастью, появляются на данном форуме с завидной регулярностью. То же самой относится и к самой теме топика...
kondr : ~ [0] # ping h4s.ru PING h4s.ru (185.62.103.33) 56(84) bytes of data. 64 bytes from ka.user.skyvps.ru (185.62.103.33): icmp_req=1 ttl=61 time=8.40 ms 64 bytes from ka.user.skyvps.ru (185.62.103.33): icmp_req=2 ttl=61 time=8.28 ms ^C --- h4s.ru ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1113ms rtt min/avg/max/mdev = 8.281/8.343/8.406/0.110 ms kondr : ~ [0] # whois h4s.ru % By submitting a query to RIPN's Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English).
smart2web, видимо мои доводы о бесполезности open_basedir не являются авторитетными или хотя бы убедительными. Думаю по этому вопросу Вам стоит обратиться к Григорию Земскому (Revisium) - он сможет рассказать и о способах заражения самого сайта и о способах заражения соседних сайтов. Так же полагаю его мнение об изоляции сайтов можно считать самым авторитетным среди Российского сегмента сети.
>> У вирусов уже искусственный интеллект появился?
Опять же, о каком искусственном интеллекте Вы говорите, если даже в webshell скриптах обычно есть строки на подобии https://github.com/tennc/webshell/blob/master/php/12309/12309.php.txt#L402. А вот злые хакеры додумались как найти другие сайты на аккаунте, написали парсинг директорий, определения домена, но не добавили строку ini_set('open_basedir', '/');
Зачем вводить в заблуждение пользователей которые будут читать форум, что добавление open_basedir им поможет. С другой стороны хуже им от этого конечно не будет, но и не защитит их не как. Под защитой я имею в виду ситуацию, когда Вы можете в рамках одного аккаунта залить любые скрипты/программы, выполнить их и не как не сможете навредить другому сайту на аккаунте. Даже дав человеку SSH к одному сайту он не сможет навредить другим сайтам на аккаунте.
Я заранее приношу извинения, если немного резок, но либо мы говорим о разных вещих, либо Вы не понимаете сути проблемы.
пс. по поводу ссылки - предлагаю сделать проще, на следующей недели постараюсь подробно описать на форуме как это работает у нас в системе.
smart2web: Согласен, но open_basedir не даст такому процессу попасть выше указанного значения.
Вы мои сообщения читаете ? Это только в том случае если у ваз заблокированы все функции аля exec - что фактически причиняет боль пользователям. И это работает только в случае PHP.
smart2web: Ну тогда по разным дата-центрам разносить сайты, чего уж там.
Интересно, какая CMS работает с функцией exec и еще интересно, почему мы не рассматриваем php как модуль апач? Какие еще отдельные процессы?
То есть предполагается выключать функции exec ? Насколько я знаю у Bitrix долгие операции реализованы в том числе через exec (хотя могу ошибаться). Так же бывает нужно вызывать ffmpeg, curl - года 3-4 назад мы собирали статистику по вызовам этих функций и как не странно они используются.
Мы как раз и рассматриваем php как модуль apache, но при этом он работает из под разных пользователей. Но тут проблема даже не в PHP... Ок может пользователь будет использовать python, node.js или perl не дай бог. То есть данный вопрос надо решать комплексно, не на уровне отдельно взятого языка с его костылями - а на уровне операционной системы.
---------- Добавлено 24.03.2017 в 16:29 ----------
>> Какие еще отдельные процессы?
Не могу не задать вопрос - а как по вашему работает php как модуль apache ? Обрабатывает все запросы в рамках одного процесса ? =) Или же все таки apache, например создает несколько потомков - передает им обработку запроса, далее в зависимости от сайта потомок суидится в пользователя и уже потом вызывает php в рамках своего процесса для обработки запроса =)
Пожалуй я еще раз скопирую сообщение сюда:
-------------------------------
По блокировке сессий, откровенно говоря это функционал которым я горжусь, так как такого больше не у кого нету. Суть проблемы в следующем: делаем скрипт который открывает сессию и делает там sleep(100), открываем его в двух вкладках и внимательно смотрим как долго у нас открывается вторая вкладка.
При этом так называемые "тормоза сайта" не будут связаны не с мощностью сервера, не с потребляемыми ресурсами или лимитами. В свое время мы написали небольшое расширение для php, которое отлавливает эту ситуацию и сделали микросервис Redis в котором можно хранить сессии. Нельзя сказать, что решение отличное - так как возможны ситуации с неконсистентностью данных, то есть когда один процесс меняет данные пока второй работает с этими данными, но это бывает редко и в подавляющем ряде случаев не вызывает проблем.
Это не как не связанно с нагрузкой на сайт и даже если Вы перенесете сайт от нас - проблема останется, только об ее существовании Вам не кто не скажет.
Ниже ссылки на которых можно прочесть о проблеме:
https://dev.1c-bitrix.ru/learning/co...LESSON_ID=2687
https://beget.com/ru/articles/redis_session
http://php.net/manual/ru/session.examples.basic.php
https://habrahabr.ru/company/bitrix/blog/179803/
Если Bitrix пишет о проблеме на habre - почему бы нам не уведомить клиентов о том, что такая проблема есть и не решить ее ? Наверное это вопрос из серии - зачем предупреждать пользователей о вирусах на их сайте ? Или о том, что запросы к БД блокируют друг друга и сайт открывается по 10 секунд ?
Я не могу сказать, что Redis для хранения сессий пользуется большой популярностью - но для тех кому он действительно нужен это очень хорошая фича.
Хорошая позиция, после единственного ответа от человека который имеет отношение к Beget - тишина... Хоть прокомментируйте может мы что-то можем сделать лучше ?
Бегет, а много на Сёрче у вас левых аккаунтов? Чего в подписи не написали - Beget Support?
Дочитал до 4 страницы - дальше, особого смысла читать нету. Я являюсь соучредителем Beget, раньше писал на этом форуме, потом мои посты удалили с обоснованием, что по правилам надо писать в отдельной теме, последние полгода сюда не заглядывал.
По блокировке сессий, откровенно говоря это функционал которым я горжусь, так как такого больше не у кого нету. Суть проблемы в следующем: делаем скрипт который открывает сессию и делает там sleep(100), открываем его в двух вкладках и внимательно смотрим как долго у нас открывается вторая вкладка.
При этом так называемые "тормоза сайта" не будут связаны не с мощностью сервера, не с потребляемыми ресурсами или лимитами. В свое время мы написали небольшое расширение для php, которое отлавливает эту ситуацию и сделали микросервис Redis в котором можно хранить сессии. Нельзя сказать, что решение отличное - так как возможны ситуации с неконсистентностью данных, то есть когда один процесс меняет данные пока второй работает с этими данными, но это бывает редко и в подавляющем ряде случаев не вызывает проблем.
Это не как не связанно с нагрузкой на сайт и даже если Вы перенесете сайт от нас - проблема останется (другое дело, что для Вас она не критична), только об ее существовании Вам не кто не скажет.
Ниже ссылки на которых можно прочесть о проблеме:
https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=38&LESSON_ID=2687
https://beget.com/ru/articles/redis_session
http://php.net/manual/ru/session.examples.basic.php
https://habrahabr.ru/company/bitrix/blog/179803/
Если Bitrix пишет о проблеме на habre - почему бы нам не уведомить клиентов о том, что такая проблема есть и не решить ее ? Наверное это вопрос из серии - зачем предупреждать пользователей о вирусах на их сайте ? Или о том что запросы к БД блокируют друг друга и сайт открывается по 10 секунд ?
Я не могу сказать, что Redis для хранения сессий пользуется большой популярностью - но для тех кому он действительно нужен это очень хорошая фича.
Если подвести итог: лучше пускай про нас напишет один 1 из 250000 клиентов, что мы разводим "маркейтинговую хренотень" чем у 1000 клиентов сайт будет работать медленнее и они напишут нам в техническую поддержку... Я приношу извинения если данное сообщение доставило неудобство - напишите мне (alexey песик beget.ru) Ваш логин и больше не какие уведомления подобного рода Вас беспокоить не будут.
---------- Добавлено 28.09.2017 в 23:51 ----------
Тему прочитал по диагонали, однако свое мнение касательно beget и ему аналогичных - есть.
Любой хостер, который оперирует абстрактными CP - мышеловка.
Просто пример, это когда тот же бегет не смог мне объяснить, а что собственно означает 1cp :D
Я задал примерно такой вопрос - "Вот, скажем, ваша панель показывает, что я потребляю 50cp. Что это означает в более понятных цифрах? Скрипты жрут оперативку? Скрипты долго работают? Медленные запросы к бд? Большой поток данных на запись/чтение?" Техподдержка хостера не знает ответа на этот вопрос.
Дальше думайте сами, сидеть на таком хостере, который в любой момент может придумать повод для смены тарифа на более дорогой на основе абстрактных и ничем не подкрепленных значениях CP, или может есть хостеры получше ;)
Опять же не могу не прокомментировать...
doom2 : ~ [0] # sa -m
54921 4087.27re 106.96cp 0avio 2672083k
xxxxx1 1526 102.17re 19.21cp 0avio 6822458k
root 23519 3048.00re 17.11cp 0avio 230460k
xxxxx2 2811 79.44re 7.63cp 0avio 6818816k
xxxxx3 10 6.71re 6.04cp 0avio 3684966k
xxxxx4 38 5.26re 4.54cp 0avio 3694107k
cp - это как раз 3 столбец в выводе этой команды, что бы более подробно разобраться читаем инструкцию https://www.opennet.ru/man.shtml?topic=sa&category=8&russian=2.
Опция -m
-m, --user-summary
Print the number of processes and number of CPU minutes on a per-user basis.
Если дать точно определение из инструкции "sum of system and user time in cpu seconds " - суммарное потраченное время процессора user и kernel space на обработку процессов пользователя, получаемая стандартными средствами ядра linux.
Но наверное, многие читатели этого форума спросят - почему же этого попугая (CP) называю абстрактным. Ответ на этот вопрос достаточно простой - если у Вас сервер на базе процессора Xeon 5520 с hdd и 12 гигабайтами оперативной памяти - cp будет больше, чем когда у Вас Xeon E5-2699v4 с 8 SSD Intel 37XX и 512 гигабайтами памяти. Это время учитывает операции ввода/вывода - и на медленных системах это может быть существенно. Так же нужно понимать что чистота, архитектура у процессоров разная и сравнивать данного попугая можно только с аналогичным оборудованием.
Наверное я бы еще рассказал про то какое оборудование мы ставим, но боюсь что опять все мои сообщения удалят =)
Вы пингонули мою VPS на которой крутится сайт http://er-ka.ru
вот один изактуальных серверов хостинга: 62.79.26.191 думаю будет информативней.
Странно, я думал пингую сайт хостинга "ping h4s.ru", а оказалось Вашу VPS =).
пс. В любой случае такие сообщения и реакция подобная моей, к несчастью, появляются на данном форуме с завидной регулярностью. То же самой относится и к самой теме топика...
Топик достаточно приятный.
Пожалуй, прокомментирую последнее сообщение =)))
PING h4s.ru (185.62.103.33) 56(84) bytes of data.
64 bytes from ka.user.skyvps.ru (185.62.103.33): icmp_req=1 ttl=61 time=8.40 ms
64 bytes from ka.user.skyvps.ru (185.62.103.33): icmp_req=2 ttl=61 time=8.28 ms
^C
--- h4s.ru ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1113ms
rtt min/avg/max/mdev = 8.281/8.343/8.406/0.110 ms
kondr : ~ [0] # whois h4s.ru
% By submitting a query to RIPN's Whois Service
% you agree to abide by the following terms of use:
% http://www.ripn.net/about/servpol.html#3.2 (in Russian)
% http://www.ripn.net/about/en/servpol.html#3.2 (in English).
domain: H4S.RU
nserver: achinsk.ens.mail.ru.
nserver: yakutsk.ens.mail.ru.
state: REGISTERED, DELEGATED, UNVERIFIED
person: Private Person
registrar: REGTIME-RU
admin-contact: https://whois.webnames.ru
created: 2015-04-20T20:01:04Z
paid-till: 2018-04-20T20:01:04Z
free-date: 2018-05-21
source: TCI
kondr : ~ [0] # ping rus-beauty.com
PING rus-beauty.com (185.62.103.33) 56(84) bytes of data.
64 bytes from ka.user.skyvps.ru (185.62.103.33): icmp_req=1 ttl=61 time=8.50 ms
64 bytes from ka.user.skyvps.ru (185.62.103.33): icmp_req=2 ttl=61 time=8.47 ms
^C
--- rus-beauty.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 8.474/8.489/8.504/0.015 ms
kondr : ~ [0] # ping er-ka.ru
PING er-ka.ru (185.62.103.33) 56(84) bytes of data.
64 bytes from ka.user.skyvps.ru (185.62.103.33): icmp_req=1 ttl=61 time=8.57 ms
^C
--- er-ka.ru ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 8.575/8.575/8.575/0.000 ms
Где именно вы опишите вашу систему?
Вторая неделя пошла, но пока не нашёл где оно описано, как собственно и ссылок никаких не дождались...
Написать хорошую статью - не так просто. Описал со стороны пользователя как это выглядит /ru/forum/961280
Как это работает со стороны ядра - постараюсь написать на хабр. Лично в моем случае каждая статья на хабр занимает от дня до трех. Не хватает времени.
2) На beget.ru сделали нечто, что решает проблему разделения сайтов на одном хостинг аккаунте.
Описал это нечто /ru/forum/961280, со стороны пользователя это выглядит именно так.
smart2web, видимо мои доводы о бесполезности open_basedir не являются авторитетными или хотя бы убедительными. Думаю по этому вопросу Вам стоит обратиться к Григорию Земскому (Revisium) - он сможет рассказать и о способах заражения самого сайта и о способах заражения соседних сайтов. Так же полагаю его мнение об изоляции сайтов можно считать самым авторитетным среди Российского сегмента сети.
>> У вирусов уже искусственный интеллект появился?
Опять же, о каком искусственном интеллекте Вы говорите, если даже в webshell скриптах обычно есть строки на подобии https://github.com/tennc/webshell/blob/master/php/12309/12309.php.txt#L402. А вот злые хакеры додумались как найти другие сайты на аккаунте, написали парсинг директорий, определения домена, но не добавили строку ini_set('open_basedir', '/');
Зачем вводить в заблуждение пользователей которые будут читать форум, что добавление open_basedir им поможет. С другой стороны хуже им от этого конечно не будет, но и не защитит их не как. Под защитой я имею в виду ситуацию, когда Вы можете в рамках одного аккаунта залить любые скрипты/программы, выполнить их и не как не сможете навредить другому сайту на аккаунте. Даже дав человеку SSH к одному сайту он не сможет навредить другим сайтам на аккаунте.
Я заранее приношу извинения, если немного резок, но либо мы говорим о разных вещих, либо Вы не понимаете сути проблемы.
пс. по поводу ссылки - предлагаю сделать проще, на следующей недели постараюсь подробно описать на форуме как это работает у нас в системе.
Согласен, но open_basedir не даст такому процессу попасть выше указанного значения.
Вы мои сообщения читаете ? Это только в том случае если у ваз заблокированы все функции аля exec - что фактически причиняет боль пользователям. И это работает только в случае PHP.
А если посмотреть более внимательно http://php.net/manual/ru/ini.core.php open_basedir изменяется PHP_INI_ALL после версии 5.3 что означает http://php.net/manual/ru/configuration.changes.modes.php "Значение может быть установлено отовсюду" - ну кто мешает получив доступ к файлу, изменить .htaccess ?
При этом Вы продолжаете уверять меня, что open_basedir защитит сайты пользователей ?
Ну тогда по разным дата-центрам разносить сайты, чего уж там.
Интересно, какая CMS работает с функцией exec и еще интересно, почему мы не рассматриваем php как модуль апач? Какие еще отдельные процессы?
То есть предполагается выключать функции exec ? Насколько я знаю у Bitrix долгие операции реализованы в том числе через exec (хотя могу ошибаться). Так же бывает нужно вызывать ffmpeg, curl - года 3-4 назад мы собирали статистику по вызовам этих функций и как не странно они используются.
Мы как раз и рассматриваем php как модуль apache, но при этом он работает из под разных пользователей. Но тут проблема даже не в PHP... Ок может пользователь будет использовать python, node.js или perl не дай бог. То есть данный вопрос надо решать комплексно, не на уровне отдельно взятого языка с его костылями - а на уровне операционной системы.
---------- Добавлено 24.03.2017 в 16:29 ----------
>> Какие еще отдельные процессы?
Не могу не задать вопрос - а как по вашему работает php как модуль apache ? Обрабатывает все запросы в рамках одного процесса ? =) Или же все таки apache, например создает несколько потомков - передает им обработку запроса, далее в зависимости от сайта потомок суидится в пользователя и уже потом вызывает php в рамках своего процесса для обработки запроса =)