Skip to content

Commit 1f792d1

Browse files
committed
Add benchmark and optimization.
1 parent 177b81c commit 1f792d1

File tree

1 file changed

+51
-12
lines changed

1 file changed

+51
-12
lines changed

README.md

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Los temas a tratar en este tutorial son:
99
1. Instalar el sistema base.
1010
2. Instalar Nginx y Passenger.
1111
3. Deployar una aplicación Rails.
12-
4. Ab test y optimización.
12+
4. Benchmarking tool y optimización.
1313
5. Borrar el sistema base.
1414

1515
## Instalar el sistema base
@@ -49,32 +49,28 @@ apt-get install -y nginx-extras passenger
4949

5050
Vamos a clonar una app rails de ejemplo desde el repo de phusion.
5151

52-
5352
```bash
5453
cd /var/www
5554
git clone https://github.com/phusion/passenger-ruby-rails-demo.git
5655
cd passenger-ruby-rails-demo
5756
bundle install --deployment --without development test
58-
5957
```
6058

6159
Ahora tenemos que crear la secret key:
6260

63-
6461
```bash
65-
6662
bundle exec rake secret
67-
````
63+
```
6864

6965
Editar config/secrets.yml y poner la clave generada:
7066

7167
```
7268
production:
7369
secret_key_base: the value that you copied from 'rake secret'
74-
7570
```
7671

7772
Ademas tenemos que poner los permisos correctos en algunos archivos de configuracion:
73+
7874
```
7975
chmod 700 config db
8076
chmod 600 config/database.yml config/secrets.yml
@@ -92,17 +88,19 @@ chown www-data:www-data passenger-ruby-rails-demo -R
9288
```
9389

9490
Necesitamos habilitar passenger en el archivo de configuracion de nginx, editamos
95-
/etc/nginx.conf y descomentamos las siguientes lineas:
91+
/etc/nginx/nginx.conf y hacemos lo siguiente:
92+
93+
agregamos esto en la primer linea, para que nginx pueda encontrar nodejs sin problemas:
9694

9795
```
98-
## passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
99-
## passenger_ruby /usr/bin/passenger_free_ruby;
96+
env PATH ;
10097
```
10198

102-
ademas agregamos esto en la primer linea, para que nginx pueda encontrar nodejs sin problemas:
99+
luego descomentamos las dos siguientes líneas:
103100

104101
```
105-
env PATH ;
102+
# passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
103+
# passenger_ruby /usr/bin/passenger_free_ruby;
106104
```
107105

108106
Ahora vamos a agregar la configuracion necesaria para que nginx levante la app,
@@ -124,5 +122,46 @@ Ademas necesitamos crear un symlink para habilitar el nuevo virtual host:
124122
ln -s /etc/nginx/sites-available/passenger-ruby-rails-demo /etc/nginx/sites-enabled/passenger-ruby-rails-demo
125123
```
126124

125+
Editamos el archivo /etc/hosts y agregamos la siguiente línea para configurar el host virtual:
126+
127+
```
128+
127.0.0.1 passenger-ruby-rails-demo.com
129+
```
130+
131+
Finalmente reiniciamos el servicio de nginx
132+
133+
```
127134
service nginx reload
135+
```
136+
137+
Para comprobar que todo haya funcionado, hacemos uso del comando curl y nos devuelve la app de rails
138+
139+
```
140+
curl passenger-ruby-rails-demo.com
141+
```
142+
143+
## Benchmarking tool y optimización.
144+
145+
Vamos a usar la herramienta recomendada por Phusion Passenger llamada **wrk**,
146+
hay que instalar la dependencia para compilarlo
147+
148+
```
149+
apt-get install libssl-dev
150+
```
151+
152+
después clonamos el repo y compilamos
153+
154+
```
155+
git clone https://github.com/wg/wrk.git /opt/wrk
156+
cd /opt/wrk
157+
make
158+
```
159+
160+
Despues ejecutamos wrk de la siguiente manera:
161+
162+
```
163+
./wrk -t12 -c400 -d30s http://passenger-ruby-rails-demo.com
164+
```
128165

166+
El comando corre un benchmark por 30 segundos, usando 12 threads y
167+
mantiene 400 conexiones HTTP abiertas.

0 commit comments

Comments
 (0)