Сертификация Bitrix: ответы теста курса "Конфигурирование веб-систем для оптимальной работы"

Неправильные ответы зачеркнуты вот так.
Вопросы и ответы каждый раз выводятся в разном порядке.

По этому списку тест проходится на 230 ил 240 баллов. Если подскажете где ошибка, буду премного благодарен.

Вопросы:

Ответы:
Для стабилизации системы по расходу памяти и для ограничения числа одновременно запущенных процессов Back-end нужно установить:
  • MaxClients
  • MinSpareServers
  • StartServers

Back-end это:
  • обычный веб-сервер Apache с установленным обработчиком PHP
  • база данных MySQL/Oracle/MSSQL
  • обычный веб-сервер Apache, только с неустановленным обработчиком PHP
  • прокси-сервер или облегченный веб-сервер без PHP

Соединение с базой данных по имени localhost позволяет:
  • гарантированно соединиться с базой данных, установленной на локальной машине
  • соединиться с базой данных без использования стека TCP/IP, что ускоряет работу

Какие возможности MySQL стоит использовать для улучшения производительности?
  • отложенные транзакции для InnoDB (innodb_flush_log_at_trx_commit)
  • многопотоковую (multithreading) сборку MySQL
  • при использовании InnoDB обязательно конфигурировать переменные innodb_*

Front-end позволяет:
  • существенно уменьшить потребление оперативной памяти при обработке статических файлов
  • уменьшить число запросов к Back-end за счет самостоятельной обработки статических файлов
  • снять зависимость производительности системы от медленных каналов пользователей
  • уменьшить число соединений к базе данных
  • увеличить производительность PHP
  • защитить систему от медленных каналов пользователей и ускорить время выполнения запросов к базе данных

Сжатие страниц модулем компрессии позволяет:
  • ускорить загрузку страниц пользователями сайта
  • снизить нагрузку на процессоры
  • ускорить установку обновления программного продукта по технологии SiteUpdate
  • ускорить работу PHP прекомпилятора и сделать работу пользователей более комфортной

При настройке Oracle желательно:
  • использовать постоянное соединение при правильно настроенной двухуровневой архитектуре FrontEnd/BackEnd
  • использовать отложенные транзакции (Enhanced COMMIT) для Oracle 10g R2
  • использовать протокол IPC, если Oracle размещен на той же машине, что и веб-сервер

Время ожидания между Front-end и Back-end должно быть достаточно большим, чтобы:
  • дождаться завершения работы длительных запросов к Back-end
  • чтобы дождаться освобождения процессов Back-end, если все они заняты обработкой текущих запросов
  • чтобы передать всю страницу пользователю на медленных каналах

«Большим» можно назвать проект, если наблюдается:
  • большие интерактивные проекты: форумы, блоги, журналы
  • большие объемы данных
  • индивидуальные страницы для отдельных пользователей
  • невозможность кэшировать страницы в силу сложной бизнес-логики
  • высокие пиковые нагрузки
  • недостаточность аппаратных ресурсов по отношению к предыдущим факторам
  • большая посещаемость проекта в среднесуточном выражении

Для ускорения работы PHP интерпретатора рекомендуется:
  • использовать прекомпилятор PHP
  • максимально ускорить работу базы данных
  • настраивать Front-end и Back-end конфигурацию

Определите, где и как выполняется PHP-скрипт:
  • PHP-скрипт выполняется только на сервере и является интерпретируемым языком
  • PHP-скрипт выполняется только на сервере и представляет собой отдельную программу, которая компилируется и выполняется только один раз в момент первого запуска
  • PHP-скрипт выполняется практически всегда на сервере, но в некоторых случаях может быть выполнен браузером

Front-end это:
  • компактный веб-сервер или кэширующий прокси-сервер
  • обычный веб-сервер Apache с подключенным обработчиком PHP

Значение MaxClients надо подбирать так, чтобы:
  • даже при стрессовых нагрузках запущенные процессы Back-end потребляли в среднем не более 90% процессорных ресурсов
  • MaxClients должен быть меньше или равен максимальному числа соединений с базой данных
  • объем используемой памяти процессами Back-end никогда не превышал объем свободной оперативной памяти
  • число процессов Back-end было всегда больше максимального одновременного числа запросов к сайту

Какой тип таблиц MySQL рекомендуется использовать для улучшения производительности при больших нагрузках?
  • InnoDB
  • MyISAM

Чтобы обеспечить передачу реального IP адреса с Front-end в Back-end, необходимо:
  • установить модуль mod_realip для веб-сервера Apache
  • произвести в Back-end замену переменной REMOTE_ADDR на значение переменной HTTP_X_FORWARDED_FOR которая передается из Front-end
  • отключить KeepAlive в Back-end

Статические файлы на веб-сайте это:
  • JavaScript файлы
  • таблицы стилей css
  • страницы HTML, которые не содержат программный код
  • XML файлы, PowerPoint (PPT), Microsoft Word (DOC), PDF
  • все графические файлы: gif, jpg, png, bmp
  • PHP страницы и страницы программного продукта «Битрикс»
  • музыкальные MP3 файлы и PHP скрипты

Если веб-сервер сам передает данные пользователю после их создания, то:
  • число обработанных веб-сервером запросов напрямую зависит от скорости Интернет-канала посетителей сайта
  • число обработанных запросов очень несущественно зависит от скорости Интернет-канала пользователя
  • число обработанных запросов зависит только от производительности процессоров

Для соединения с базой данных PHP использует:
  • встроенные библиотеки PHP для данного типа базы данных
  • собственный обработчик соединений Битрикс для данного типа базы данных

Порядок работы Back-end:
  • получает запросы от Front-end и передает готовые (сгенерированные) страницы Front-end для передачи их пользователям
  • получает запросы от Front-end и передает готовые страницы и статические файлы пользователям
  • получает запросы от пользователей, обрабатывает и передает данные Front-end для передачи их пользователям
  • получает запросы от Front-end и передает готовые страницы и статические файлы Front-end для передачи их пользователям

Тип соединения с базой данных устанавливается:
  • в файле /bitrix/php_interface/dbconn.php константой DBPersistent
  • в любом месте продукта конструкцией define(«DBPersistent», true);
  • в файле dbconn.php конструкцией define(«DBPersistent», yes);

Если на сервере одновременно запускается много процессов веб-сервера, то возможно:
  • превышение установленного максимума для одновременных соединений к базе данных
  • из-за нехватки оперативной памяти процессы будут вытесняться в виртуальную память и общая производительность системы резко упадет
  • значительное снижение производительности системы из-за нехватки процессорных ресурсов для одновременного выполнения всех процессов
  • новые процессы будут размещаться в виртуальной памяти, общая производительность системы снизится очень незначительно
  • перезапуск веб-сервера
  • закончится место на диске

Постоянное соединение с базой данных предпочтительнее, потому что:
  • соединение к базе данных всегда открыто и тратится меньше времени и ресурсов на повторное открытие соединений
  • SQL запросы исполняются быстрее
  • база данных потребляет меньше оперативной памяти и больше памяти остается для кэширования данных

В результате построения двухуровневой архитектуры и выполнения ряда рекомендаций мы должны получить следующие результаты:
  • в стрессовой ситуации система будет стабильно и равномерно обрабатывать запросы, Back-end не будет увеличивать число одновременно выполняемых процессов выше установленного лимита MaxClients, Front-end будет принимать все запросы от пользователей и ожидать освобождения процессов Back-end
  • пользователи комфортно работают со сжатыми страницами
  • использование процессорных ресурсов ограничено числом одновременно работающих процессов Back-end в соответствии с MaxClients; не начнется регрессия производительности;
  • возможно безопасное использование постоянного соединения с базой данных без опасения превысить число возможных соединений; в памяти все время находится установленное число Back-end процессов, готовых к обработке запросов и с установленным соединением с базой данных;
  • процессорные ресурсы существенно высвобождены за счет прекомпиляции PHP-кода
  • система стабилизирована по расходу памяти при запуске; Front-End и Back-End занимают заранее отведенный объем памяти, а при увеличении нагрузки будут использовать виртуальную память

Использование общего веб-сервера для обработки PHP программ и статических файлов:
  • неэффективное решение из-за большого и неэффективного использования оперативной памяти веб-сервером для обработки статических файлов
  • неэффективное решение из-за наличия задержек при определении типа файлов: статические или PHP программы
  • это лучшее решение для обеспечения оптимального расходования оперативной памяти

Поздравляю. Вы успешно прошли тест.
Оглавление.

2 комментария

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

Здесь все ответы — правильные:
+ отложенные транзакции для InnoDB (innodb_flush_log_at_trx_commit)
+ многопотоковую (multithreading) сборку MySQL
+ при использовании InnoDB обязательно конфигурировать переменные innodb_*
avatar
Спасибо, исправили.

Оставить комментарий