Para un puñado de sitios de muy bajo tráfico en un VPS pequeño, tengo Django ejecutándose en uwsgi detrás de nginx y tengo un uso similar al siguiente:
% libre -m total de buffers compartidos gratuitos usados en caché Mem: 321 313 7 0 3 50 - / + buffers / cache: 259 61 Intercambio: 511257254
(Notará que estoy en un VPS con ~ 320 MB de RAM y un archivo de intercambio de 512 MB).
Mirando hacia top
, notará que el tamaño del residente es en realidad mucho más pequeño que la asignación de memoria virtual reclamada:
- ¿Qué tipo de placa base (y SATA) necesito para usar 24 discos duros?
- ¿Cuál es la ventaja de ejecutar una base de datos escrita en Ruby On Rails sobre MySQL en un servidor Apache?
- ¿Qué alojamiento web es adecuado, GoDaddy o Hostgator o HostingRaja?
- ¿Qué diferencia de rendimiento en el mundo real hace el uso de Java vs C ++ en un servidor?
- ¿Qué porcentaje de servidores usan almacenamiento de estado sólido hoy y cuál será la tasa de crecimiento en los próximos años?
Mem: 329036k en total, 321780k usados, 7256k gratis, 3772k buffers Intercambio: 524280k en total, 263288k usado, 260992k gratis, 52204k en caché PID USUARIO PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 8352 mtigas 20 0 239m 14m 2308 S 0 4.5 0: 30.82 uwsgi 7286 mtigas 20 0 236m 8464 1572 S 0 2.6 5: 10.82 uwsgi 24795 mtigas 20 0 235m 9.8m 1960 S 0 3.0 0: 36.81 uwsgi 20458 mtigas 20 0 234m 8248 1720 S 0 2.5 0: 37.48 uwsgi
No es exactamente una comparación de manzanas con manzanas, pero la gran demanda de asignación de memoria virtual no necesariamente me molesta siempre que el sistema no comience a sacudirse.
Según http://stackoverflow.com/questio…, Linux asigna 8 MB para cada hilo de Apache, independientemente de si el hilo está realmente activo en este momento. Esta parte del “Sistema VPS con memoria limitada” de los documentos de mod_wsgi podría darle más configuraciones para ajustar: https://code.google.com/p/modwsg…, principalmente puede reducir el tamaño inicial de la pila de subprocesos para reducir la huella de memoria asignada de mod_wsgi.
Debería ver cómo funcionan sus aplicaciones bajo carga (y si el uso de RAM empeora). Su aplicación simplemente debe usar más y más memoria virtual preasignada a medida que avanza.
Más consejos: http://blog.webfaction.com/tips-… Los grandes en mi opinión:
- DEBUG es falso
- Use ServerLimit para limitar la cantidad de procesos de Apache que gira.
- Establezca MaxRequestsPerChild en algo diferente a 0 (para que elimine y reinicie los procesos después de un cierto número de solicitudes en caso de que su aplicación tenga pérdidas de memoria)