Спецификация виртуальной площадки
Материал из DiPHOST.Ru wiki system
Schors (Обсуждение | вклад) (→Работа с базой данных) |
Schors (Обсуждение | вклад) (→Веб-сервер) |
||
(29 промежуточных версий не показаны.) | |||
Строка 6: | Строка 6: | ||
Запрос из сети общего пользования к сайту сначала обрабатывается веб-сервером nginx в режиме проксирования к веб-серверу клиента без кэширования. Предполагается, что веб-сервер используется для отдачи так называемого ''"сайта"''. Возможно использование веб-сервера и для других целей, но только в случае отсутствия негативного влияния на состояние системы. | Запрос из сети общего пользования к сайту сначала обрабатывается веб-сервером nginx в режиме проксирования к веб-серверу клиента без кэширования. Предполагается, что веб-сервер используется для отдачи так называемого ''"сайта"''. Возможно использование веб-сервера и для других целей, но только в случае отсутствия негативного влияния на состояние системы. | ||
+ | |||
+ | Кодировка веб-сервера по умолчанию UTF-8 | ||
Веб-сервер nginx имеет следующие технические ограничения: | Веб-сервер nginx имеет следующие технические ограничения: | ||
- | * размер заголовка запроса - 8Kb | + | * размер заголовка запроса - 8Kb (по умолчанию), 16Kb или 32Kb |
- | * размер тела запроса (закачиваемого файла) - | + | * размер тела запроса (закачиваемого файла) - 16Mb (по умолчанию) - 500Mb |
* ожидание заголовка запроса - 10 минут | * ожидание заголовка запроса - 10 минут | ||
* ожидание тела запроса - 60 минут | * ожидание тела запроса - 60 минут | ||
- | * ожидание соединения с веб-сервером клиента | + | * ожидание соединения с веб-сервером клиента 60 секунд |
* ожидание ответа от веб-сервера клиента 5 минут | * ожидание ответа от веб-сервера клиента 5 минут | ||
Ограничения могут быть индивидуально изменены для каждого сайта по мотивированному запросу в службу поддержки. | Ограничения могут быть индивидуально изменены для каждого сайта по мотивированному запросу в службу поддержки. | ||
- | Веб-сервер клиента представляет собой apache с подключённой желаемой технологией. Для каждой технологии каждой версии свой экземпляр веб-сервера, работающего с привилегиями системного пользователя, соответствующего аккаунту. Количество | + | Веб-сервер клиента представляет собой выделенный apache с подключённой желаемой технологией. Для каждой технологии каждой версии свой экземпляр веб-сервера, работающего с привилегиями системного пользователя, соответствующего аккаунту. Количество обработчиков каждого веб-сервера является постоянным и зависит от выбранного тарифа и технологии: |
- | * TINCO, apache с php | + | * TINCO, apache с php каждой версии - 3 динамических процесса обработчика |
- | + | * PARMA, apache с php каждой версии - 5 процессов обработчика | |
- | * PARMA, apache с | + | * CALMA, apache с php каждой версии - 3 процесса обработчика |
- | * CALMA, apache с php | + | * CALMA, apache с python/WSGI каждой версии - 2 процесса по 3 треда обработчика приложения |
- | * CALMA, apache с python/WSGI | + | * CALMA, apache с ruby/RACK каждой версии - 3 процесса обработчика приложения |
При занятости веб-сервера обработкой других запросов, новый ставится в очередь, размер очереди - 50 запросов. Если очередь запросов заполнена, новый запрос отклоняется. | При занятости веб-сервера обработкой других запросов, новый ставится в очередь, размер очереди - 50 запросов. Если очередь запросов заполнена, новый запрос отклоняется. | ||
- | Для веб-серверов с python/WSGI существует параметр, отвечающий за выгрузку приложения при отсутствии обращений. Он установлен в 5 минут. При новом обращении приложение вновь загружается. | + | Для php всех версий установлен предел используемой памяти в 128Mb. Для кэша APC установлен сегмент разделяемой памяти в 128Mb. |
+ | |||
+ | Для веб-серверов с python/WSGI и ruby/RACK существует параметр, отвечающий за выгрузку приложения из памяти при отсутствии обращений. Он установлен в 5 минут. При новом обращении приложение вновь загружается. | ||
Для веб-серверов apache с php всех версий поддерживается запуск CGI-программ. Для них существуют отдельные технические ограничения, равные для любого тарифа: | Для веб-серверов apache с php всех версий поддерживается запуск CGI-программ. Для них существуют отдельные технические ограничения, равные для любого тарифа: | ||
Строка 35: | Строка 39: | ||
Системный аккаунт предназначен для выполнения программ пользователя, так или иначе обеспечивающих работу сайта. Возможно и иное использование системного аккаунта, если это не создаёт негативного влияния на систему. | Системный аккаунт предназначен для выполнения программ пользователя, так или иначе обеспечивающих работу сайта. Возможно и иное использование системного аккаунта, если это не создаёт негативного влияния на систему. | ||
+ | |||
+ | По умолчанию кодировка системного аккаунта UTF-8, язык en_US.UTF-8 | ||
Для запущенных программ существуют следующие технические ограничения: | Для запущенных программ существуют следующие технические ограничения: | ||
Строка 46: | Строка 52: | ||
При превышении ограничения программа останавливается и выдаётся сообщение об ошибке. | При превышении ограничения программа останавливается и выдаётся сообщение об ошибке. | ||
- | Для системного аккаунта регламентируются нормы потребления резидентной памяти в сумме по всем его процессам. Для подсчёта суммы выделенной памяти берётся среднее значение по мгновенным периодическам снимкам показаний по потреблению памяти процессами. Регламентируемые нормы не имеют технического ограничения и | + | Для системного аккаунта регламентируются нормы потребления резидентной памяти в сумме по всем его процессам. Для подсчёта суммы выделенной памяти берётся среднее значение по мгновенным периодическам снимкам показаний по потреблению памяти процессами. Регламентируемые нормы не имеют технического ограничения и носят рекомендательный характер: |
* тариф TINCO 64Mb | * тариф TINCO 64Mb | ||
- | * тариф CALMA и PARMA | + | * тариф CALMA и PARMA 256Mb |
=== Доступ FTP === | === Доступ FTP === | ||
Строка 70: | Строка 76: | ||
База MySQL данных предназначена для хранения данных сайта. Возможно и иное использование базы данных MySQL, если это не оказывает негативного влияния на систему. | База MySQL данных предназначена для хранения данных сайта. Возможно и иное использование базы данных MySQL, если это не оказывает негативного влияния на систему. | ||
- | Для работы с базой данных MySQL существует единственное техническое ограничение | + | Кодировка сервера и клиента по умолчанию UTF-8. |
+ | |||
+ | Для работы с базой данных MySQL существует единственное техническое ограничение: | ||
+ | * 64 одновременных соединения для одного пользователя базы данных MySQL; | ||
+ | * тело запроса не должно превышать 8Mb. | ||
+ | |||
+ | Регламентируются следующие нормы работы с базой данных: | ||
+ | * количество запросов в среднем за час на чтение данных должно быть в 4 раза больше количества запросов на их запись или изменение | ||
+ | * количество запросов к базе от одного пользователя не должно превышать 1 запроса в секунду в среднем за час | ||
+ | * использование запросов, явно или косвенно создающих временные таблицы должно иметь характер вынужденного исключения | ||
+ | * использование запросов, делающих выборку без использования индексов должно иметь характер вынужденного мотивированного исключения | ||
+ | * не рекомендуется хранение двоичных данных (например, картинок) в базе | ||
+ | * размер одной таблицы не должен превышать 2Gb | ||
+ | |||
+ | Нормы носят рекомендательный характер и применяются в случае возникновения явно выраженных негативных последствий для системы. | ||
=== Запуск задач по расписанию === | === Запуск задач по расписанию === | ||
+ | |||
+ | Запуск задач по расписанию служит для планирования управления сайтом. Допускается и иное использование, если это не оказывает негативного влияния на систему. На задачи, запускаемые по расписанию, накладываются технические ограничения и нормы [[#.D0.A1.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D0.BD.D1.8B.D0.B9_.D0.B0.D0.BA.D0.BA.D0.B0.D1.83.D0.BD.D1.82|системного аккаунта]]. | ||
+ | |||
+ | Не рекомендуется: | ||
+ | * запускать больше одной задачи в минуту для аккаунта | ||
+ | * запускать задачу в 00:00 часов (время Московское) | ||
+ | * запускать задачу путём обращения к скрипту сайта | ||
+ | |||
+ | Рекомендуется: | ||
+ | * проверять в программе, завершено ли выполнение предыдущего задания, например, используя утилиту lockf | ||
+ | |||
+ | === Потребление процессорного времени === | ||
+ | |||
+ | Для каждого аккаунта собирается статистика потребления [[CPUTime|процессорного времени]]. Она включает и работу веб-сервера, и задачи по расписанию, и доступ по FTP, и работу по SSH. Статистика суммируется и накапливается. Ограничивается предельное дневное потребление процессорного времени. | ||
+ | |||
+ | Ограничения по тарифам: | ||
+ | * TINCO - 30 CP | ||
+ | * PARMA - 80 CP | ||
+ | * CALMA - 80 CP | ||
+ | |||
+ | Предел процессорного времени в сутки можно докупить с шагом по 10 CP, но не превышая 120 CP. | ||
=== Отправка электронной почты === | === Отправка электронной почты === | ||
+ | |||
+ | Отправка электронной почты с аккаунта предназначена для обратной связи с пользователями сайтов. Возможно и иное применение, если оно не оказывает негативного влияния на систему и не вызывает организационных и юридических проблем. Электронная почта может быть отправлена только с использованием стандартной утилиты sendmail или через [[AccessMail|авторизованное подключение к почтовому серверу хостинга]]. | ||
+ | |||
+ | Отправка электронной почты имеет технические ограничения: | ||
+ | * запрещена отправка от отправителя <> | ||
+ | * запрещена отправка более чем 32 получателям в одном письме | ||
+ | * запрещена отправка сообщения размером более 50Mb | ||
+ | * запрещено добавление более чем одного поля Received | ||
+ | * запрещено представление десктопными почтовыми клиентами при отправке с сайта | ||
+ | * запрещена отправка вирусов (письмо будет молча уничтожено) | ||
+ | Письма не будут отправлены. | ||
+ | |||
+ | При отправке электронной почты запрещено: | ||
+ | * подделывать заголовки Received и X-Mail-Agent | ||
+ | * использовать несуществующий адрес в поле FROM конверта и/или тела письма | ||
+ | * рассылать сообщения рекламного характера, если нет уверенности, что на них подписывались | ||
+ | * нарушать стандарты (8-битные заголовки, и тому подобное) | ||
+ | При выявлении систематических нарушений будет отключаться возможность пользования отправкой почты. | ||
+ | |||
+ | Регламентируются рекомендательные нормы при отправке сообщений электронной почты: | ||
+ | * не более 1 сообщение в секунду | ||
+ | * размер письма не более 5Mb | ||
+ | Нормы носят рекомендательный характер и применяется при возникновении негативного влияния на систему. Рекомендуется заранее предполагать последовательную разнесённую по времени рассылку писем при большом количестве получателей. | ||
[[Category:Architecture]] | [[Category:Architecture]] |
Текущая версия на 16:02, 24 августа 2016
Содержание |
Веб-сервер
Запрос из сети общего пользования к сайту сначала обрабатывается веб-сервером nginx в режиме проксирования к веб-серверу клиента без кэширования. Предполагается, что веб-сервер используется для отдачи так называемого "сайта". Возможно использование веб-сервера и для других целей, но только в случае отсутствия негативного влияния на состояние системы.
Кодировка веб-сервера по умолчанию UTF-8
Веб-сервер nginx имеет следующие технические ограничения:
- размер заголовка запроса - 8Kb (по умолчанию), 16Kb или 32Kb
- размер тела запроса (закачиваемого файла) - 16Mb (по умолчанию) - 500Mb
- ожидание заголовка запроса - 10 минут
- ожидание тела запроса - 60 минут
- ожидание соединения с веб-сервером клиента 60 секунд
- ожидание ответа от веб-сервера клиента 5 минут
Ограничения могут быть индивидуально изменены для каждого сайта по мотивированному запросу в службу поддержки.
Веб-сервер клиента представляет собой выделенный apache с подключённой желаемой технологией. Для каждой технологии каждой версии свой экземпляр веб-сервера, работающего с привилегиями системного пользователя, соответствующего аккаунту. Количество обработчиков каждого веб-сервера является постоянным и зависит от выбранного тарифа и технологии:
- TINCO, apache с php каждой версии - 3 динамических процесса обработчика
- PARMA, apache с php каждой версии - 5 процессов обработчика
- CALMA, apache с php каждой версии - 3 процесса обработчика
- CALMA, apache с python/WSGI каждой версии - 2 процесса по 3 треда обработчика приложения
- CALMA, apache с ruby/RACK каждой версии - 3 процесса обработчика приложения
При занятости веб-сервера обработкой других запросов, новый ставится в очередь, размер очереди - 50 запросов. Если очередь запросов заполнена, новый запрос отклоняется.
Для php всех версий установлен предел используемой памяти в 128Mb. Для кэша APC установлен сегмент разделяемой памяти в 128Mb.
Для веб-серверов с python/WSGI и ruby/RACK существует параметр, отвечающий за выгрузку приложения из памяти при отсутствии обращений. Он установлен в 5 минут. При новом обращении приложение вновь загружается.
Для веб-серверов apache с php всех версий поддерживается запуск CGI-программ. Для них существуют отдельные технические ограничения, равные для любого тарифа:
- перед запуском CGI-программы проверяется ограничение на 32 одновременно запущенных процесса от пользователя
- размер виртуальной памяти для одной выполняемой программы 96Mb
- суммарное процессорное время для одной выполняемой программы 32 процессорных секунды
При превышении ограничения программа останавливается и выдаётся сообщение об ошибке.
Системный аккаунт
Системный аккаунт предназначен для выполнения программ пользователя, так или иначе обеспечивающих работу сайта. Возможно и иное использование системного аккаунта, если это не создаёт негативного влияния на систему.
По умолчанию кодировка системного аккаунта UTF-8, язык en_US.UTF-8
Для запущенных программ существуют следующие технические ограничения:
- размер виртуальной памяти на один процесс 512Mb
- размер сегмента данных на один процесс 64Mb
- размер стека на один процесс 16Mb
- размер блокированной памяти на один процесс 16Mb
- суммарное процессорное время для одного процесса 120 процессорных секунд
- количество одновременно запущенных процессов на один системный аккаунт - 32
При превышении ограничения программа останавливается и выдаётся сообщение об ошибке.
Для системного аккаунта регламентируются нормы потребления резидентной памяти в сумме по всем его процессам. Для подсчёта суммы выделенной памяти берётся среднее значение по мгновенным периодическам снимкам показаний по потреблению памяти процессами. Регламентируемые нормы не имеют технического ограничения и носят рекомендательный характер:
- тариф TINCO 64Mb
- тариф CALMA и PARMA 256Mb
Доступ FTP
Доступ по FTP предназначен исключительно для обновления информации на аккаунте. Не допускается его использования для массового доступа к информации. Для доступа только к определённым каталогам аккаунта возможно создание отдельного дсотупа. Технически это отдельный системный пользователь с uid и привилегиями, совпадающими с основным системным пользователем аккаунта.
Для доступа по FTP существуют следующие технические ограничения:
- 10 одновременных соединений с одного IP
- 5 одновременных соединений одного системного пользователя
FTP является нерекомендуемым способом работы с данными на хостинге.
Доступ SSH
Доступ по SSH предназначен для обновления информации на системном аккаунте и эффективной работы с системным аккаунтом. SSH может использоваться для туннелирования, связанного с аварийными работами с сайтом, или с обновлением сайта. Возможны и иные использования SSH, если это не создаёт негативного влияния на систему.
Доступ по SSH не имеет отдельных ограничений, для него работают ограничения системного аккаунта.
Работа с базой данных MySQL
База MySQL данных предназначена для хранения данных сайта. Возможно и иное использование базы данных MySQL, если это не оказывает негативного влияния на систему.
Кодировка сервера и клиента по умолчанию UTF-8.
Для работы с базой данных MySQL существует единственное техническое ограничение:
- 64 одновременных соединения для одного пользователя базы данных MySQL;
- тело запроса не должно превышать 8Mb.
Регламентируются следующие нормы работы с базой данных:
- количество запросов в среднем за час на чтение данных должно быть в 4 раза больше количества запросов на их запись или изменение
- количество запросов к базе от одного пользователя не должно превышать 1 запроса в секунду в среднем за час
- использование запросов, явно или косвенно создающих временные таблицы должно иметь характер вынужденного исключения
- использование запросов, делающих выборку без использования индексов должно иметь характер вынужденного мотивированного исключения
- не рекомендуется хранение двоичных данных (например, картинок) в базе
- размер одной таблицы не должен превышать 2Gb
Нормы носят рекомендательный характер и применяются в случае возникновения явно выраженных негативных последствий для системы.
Запуск задач по расписанию
Запуск задач по расписанию служит для планирования управления сайтом. Допускается и иное использование, если это не оказывает негативного влияния на систему. На задачи, запускаемые по расписанию, накладываются технические ограничения и нормы системного аккаунта.
Не рекомендуется:
- запускать больше одной задачи в минуту для аккаунта
- запускать задачу в 00:00 часов (время Московское)
- запускать задачу путём обращения к скрипту сайта
Рекомендуется:
- проверять в программе, завершено ли выполнение предыдущего задания, например, используя утилиту lockf
Потребление процессорного времени
Для каждого аккаунта собирается статистика потребления процессорного времени. Она включает и работу веб-сервера, и задачи по расписанию, и доступ по FTP, и работу по SSH. Статистика суммируется и накапливается. Ограничивается предельное дневное потребление процессорного времени.
Ограничения по тарифам:
- TINCO - 30 CP
- PARMA - 80 CP
- CALMA - 80 CP
Предел процессорного времени в сутки можно докупить с шагом по 10 CP, но не превышая 120 CP.
Отправка электронной почты
Отправка электронной почты с аккаунта предназначена для обратной связи с пользователями сайтов. Возможно и иное применение, если оно не оказывает негативного влияния на систему и не вызывает организационных и юридических проблем. Электронная почта может быть отправлена только с использованием стандартной утилиты sendmail или через авторизованное подключение к почтовому серверу хостинга.
Отправка электронной почты имеет технические ограничения:
- запрещена отправка от отправителя <>
- запрещена отправка более чем 32 получателям в одном письме
- запрещена отправка сообщения размером более 50Mb
- запрещено добавление более чем одного поля Received
- запрещено представление десктопными почтовыми клиентами при отправке с сайта
- запрещена отправка вирусов (письмо будет молча уничтожено)
Письма не будут отправлены.
При отправке электронной почты запрещено:
- подделывать заголовки Received и X-Mail-Agent
- использовать несуществующий адрес в поле FROM конверта и/или тела письма
- рассылать сообщения рекламного характера, если нет уверенности, что на них подписывались
- нарушать стандарты (8-битные заголовки, и тому подобное)
При выявлении систематических нарушений будет отключаться возможность пользования отправкой почты.
Регламентируются рекомендательные нормы при отправке сообщений электронной почты:
- не более 1 сообщение в секунду
- размер письма не более 5Mb
Нормы носят рекомендательный характер и применяется при возникновении негативного влияния на систему. Рекомендуется заранее предполагать последовательную разнесённую по времени рассылку писем при большом количестве получателей.