Базы данных/Лабораторная работа 6 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м
м
Строка 68: Строка 68:
  
 
Запуск:
 
Запуск:
   ab
+
   ab -n 10000 -kc 5000 http://server:8000/url1
  
 
= Задание =
 
= Задание =

Версия 00:58, 8 июня 2016

Цель лабораторной работы: создать высоконагруженный счётчик посещения ссылок.

Установка

окружение для сборки

 sudo apt-get install --yes libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential

Redis

 sudo apt-get install --yes redis-server redis-tools

NginX + redis2_module

 sudo -i
 mkdir -p /opt/{nginx-build,nginx,redis2}/
 
 cd redis2
 wget 'https://github.com/openresty/redis2-nginx-module/archive/v0.13.tar.gz'
 tar xf v0.13.tar.gz
 cd -
 
 cd /opt/nginx-build/
 wget 'http://nginx.org/download/nginx-1.9.15.tar.gz'
 tar -xzvf nginx-1.9.15.tar.gz
 cd nginx-1.9.15/
 ./configure --prefix=/opt/nginx --add-module=/opt/redis2/redis2-nginx-module-0.13/
 make -j2
 make install

Настройка

 sudo -i
 cd /opt/nginx/
 cat <<EOF > nginx.conf.tpl
 events {
   worker_connections  4096;
 }
 
 http {
   server {
     listen  8000;
     location / {
       # $uri variable holds part of url after "address:port"
       # Redis Server is available via 6379 port on localhost
 
       ## DO YOUR WORK HERE ##
       # docs: https://github.com/openresty/redis2-nginx-module
     }
   }
 }

Управление NginX'ом

Запуск:

 cd /opt/nginx/
 ./sbin/nginx -c nginx.conf

Остановка:

 pkill nginx  # останавливает все nginx-процессы в системе

Тестирование

Apache Benchmark

Установка:

 sudo apt-get install -y apache2-utils

Запуск:

 ab -n 10000 -kc 5000 http://server:8000/url1

Задание

  1. Воспроизвести аналогичную систему.
  2. Настроить её так, чтобы в Redis записывалось каждое посещение страницы (ключ - url страницы, например "/my/awesome/page.html")
  3. Разобраться и понимать в архитектуру и работе стенда.
  4. Провести тестирование с помощью Apache Benchmark ("ab")
  5. Убедиться, что все показы записались в базу (например с помощью "redis-cli").