Recientemente me han estado llegando correos de DreamHost, donde hospedo mis sitios de que algunos servicios se han reiniciado, pero no tenia muy claro a que se podrían referir, especialmente porque hace referencia al uso de memoria:
“Our monitoring systems show that one (or some) of your user accounts may be making your web hosting account operate inefficiently. We took a peek and noticed you’ve frequently hit the memory limits of your shared hosting plan over the last couple weeks. Each time that happens, our automated process watcher system stops the associated process which negatively impacts your website performance.
Here are the FTP/shell users on your account, alongside the number of times they’ve hit their memory limits:
snafu: 213, foo: 889
If you’re happy with the performance of your site, then we are too! Your site may continue to run into your shared hosting plan’s resource limits, and our automated system will restart your hosting processes as necessary.”
Y en alguna época ya tuve que revisar al respecto, ya que tenia más bien muchos procesos que consumían CPU, cosa que logre arreglar actualizando mis sitios y asegurándome que podían usar la versión mas nueva de php, que esta disponible, buscando como dice en la KB de DreamHost como optimizar mi sitio, me encuentro conque tengo activado en foo el análisis de uso de CPU [1]…
foo@bar:~/logs/resources$ more foo.sa.analyzed.*
::::::::::::::
foo.sa.analyzed.0
::::::::::::::
Process CPU seconds user machine count average
php56.cgi 1857.7200 99.589% 7.741% 164 11.328
php 4.5200 0.242% 0.019% 6 0.753
du 1.5000 0.080% 0.006% 4 0.375
mysqldump 0.8700 0.047% 0.004% 3 0.290
find 0.5400 0.029% 0.002% 11 0.049
sshd 0.1500 0.008% 0.001% 1 0.150
bash 0.0800 0.004% 0.000% 2 0.040
crontab 0.0100 0.001% 0.000% 1 0.010
perl 0.0000 0.000% 0.000% 1 0.000
perl 0.0000 0.000% 0.000% 1 0.000
dirname 0.0000 0.000% 0.000% 12 0.000
postdrop 0.0000 0.000% 0.000% 1 0.000
which 0.0000 0.000% 0.000% 3 0.000
sendmail 0.0000 0.000% 0.000% 1 0.000
wc 0.0000 0.000% 0.000% 25 0.000
grep 0.0000 0.000% 0.000% 69 0.000
sh 0.0000 0.000% 0.000% 3 0.000
ls 0.0000 0.000% 0.000% 22 0.000
readlink 0.0000 0.000% 0.000% 3 0.000
more 0.0000 0.000% 0.000% 15 0.000
basename 0.0000 0.000% 0.000% 6 0.000
sh 0.0000 0.000% 0.000% 15 0.000
----------------------------------------------------------------------
Total: 1865.3900 100.000% 7.772% 369
Average per day: 1865.3900 1 days
CPU percentage assumes 24000 cpu seconds per day total.
::::::::::::::
foo.sa.analyzed.1
::::::::::::::
Process CPU seconds user machine count average
php56.cgi 2085.8300 99.731% 8.691% 196 10.642
php 4.8800 0.233% 0.020% 6 0.813
mysqldump 0.7500 0.036% 0.003% 3 0.250
perl 0.0000 0.000% 0.000% 2 0.000
bash 0.0000 0.000% 0.000% 1 0.000
dirname 0.0000 0.000% 0.000% 12 0.000
readlink 0.0000 0.000% 0.000% 3 0.000
postdrop 0.0000 0.000% 0.000% 1 0.000
which 0.0000 0.000% 0.000% 3 0.000
basename 0.0000 0.000% 0.000% 6 0.000
sendmail 0.0000 0.000% 0.000% 1 0.000
sh 0.0000 0.000% 0.000% 15 0.000
sh 0.0000 0.000% 0.000% 3 0.000
----------------------------------------------------------------------
Total: 2091.4600 100.000% 8.714% 252
Average per day: 2091.4600 1 days
CPU percentage assumes 24000 cpu seconds per day total.
::::::::::::::
foo.sa.analyzed.2
::::::::::::::
Process CPU seconds user machine count average
php56.cgi 1533.9300 99.564% 6.391% 223 6.879
php 5.8200 0.378% 0.024% 6 0.970
mysqldump 0.8900 0.058% 0.004% 3 0.297
perl 0.0000 0.000% 0.000% 2 0.000
bash 0.0000 0.000% 0.000% 1 0.000
dirname 0.0000 0.000% 0.000% 12 0.000
readlink 0.0000 0.000% 0.000% 3 0.000
postdrop 0.0000 0.000% 0.000% 1 0.000
which 0.0000 0.000% 0.000% 3 0.000
basename 0.0000 0.000% 0.000% 6 0.000
sendmail 0.0000 0.000% 0.000% 1 0.000
sh 0.0000 0.000% 0.000% 15 0.000
sh 0.0000 0.000% 0.000% 3 0.000
----------------------------------------------------------------------
Total: 1540.6400 100.000% 6.419% 279
Average per day: 1540.6400 1 days
CPU percentage assumes 24000 cpu seconds per day total.
::::::::::::::
foo.sa.analyzed.3
::::::::::::::
Process CPU seconds user machine count average
php56.cgi 3101.5800 99.823% 12.923% 356 8.712
php 4.4400 0.143% 0.018% 6 0.740
mysqldump 1.0500 0.034% 0.004% 3 0.350
perl 0.0100 0.000% 0.000% 1 0.010
bash 0.0000 0.000% 0.000% 1 0.000
dirname 0.0000 0.000% 0.000% 12 0.000
readlink 0.0000 0.000% 0.000% 3 0.000
postdrop 0.0000 0.000% 0.000% 1 0.000
which 0.0000 0.000% 0.000% 3 0.000
basename 0.0000 0.000% 0.000% 6 0.000
sendmail 0.0000 0.000% 0.000% 1 0.000
sh 0.0000 0.000% 0.000% 15 0.000
sh 0.0000 0.000% 0.000% 3 0.000
----------------------------------------------------------------------
Total: 3107.0800 100.000% 12.946% 411
Average per day: 3107.0800 1 days
CPU percentage assumes 24000 cpu seconds per day total.
::::::::::::::
foo.sa.analyzed.4
::::::::::::::
Process CPU seconds user machine count average
php56.cgi 2799.7100 99.804% 11.665% 183 15.299
php 4.6500 0.166% 0.019% 6 0.775
mysqldump 0.8400 0.030% 0.003% 3 0.280
perl 0.0000 0.000% 0.000% 2 0.000
bash 0.0000 0.000% 0.000% 1 0.000
dirname 0.0000 0.000% 0.000% 12 0.000
readlink 0.0000 0.000% 0.000% 3 0.000
postdrop 0.0000 0.000% 0.000% 1 0.000
which 0.0000 0.000% 0.000% 3 0.000
basename 0.0000 0.000% 0.000% 6 0.000
sendmail 0.0000 0.000% 0.000% 1 0.000
sh 0.0000 0.000% 0.000% 15 0.000
sh 0.0000 0.000% 0.000% 3 0.000
----------------------------------------------------------------------
Total: 2805.2000 100.000% 11.688% 239
Average per day: 2805.2000 1 days
CPU percentage assumes 24000 cpu seconds per day total.
::::::::::::::
foo.sa.analyzed.5
::::::::::::::
Process CPU seconds user machine count average
php56.cgi 2790.0400 99.822% 11.625% 202 13.812
php 4.1900 0.150% 0.017% 6 0.698
mysqldump 0.7800 0.028% 0.003% 3 0.260
perl 0.0000 0.000% 0.000% 9 0.000
bash 0.0000 0.000% 0.000% 1 0.000
dirname 0.0000 0.000% 0.000% 12 0.000
readlink 0.0000 0.000% 0.000% 3 0.000
postdrop 0.0000 0.000% 0.000% 1 0.000
which 0.0000 0.000% 0.000% 3 0.000
basename 0.0000 0.000% 0.000% 6 0.000
sendmail 0.0000 0.000% 0.000% 1 0.000
sh 0.0000 0.000% 0.000% 15 0.000
sh 0.0000 0.000% 0.000% 3 0.000
----------------------------------------------------------------------
Total: 2795.0100 100.000% 11.646% 265
Average per day: 2795.0100 1 days
CPU percentage assumes 24000 cpu seconds per day total.
::::::::::::::
foo.sa.analyzed.6
::::::::::::::
Process CPU seconds user machine count average
php56.cgi 2451.7000 99.793% 10.215% 287 8.543
php 4.2900 0.175% 0.018% 6 0.715
mysqldump 0.7900 0.032% 0.003% 3 0.263
perl 0.0000 0.000% 0.000% 4 0.000
bash 0.0000 0.000% 0.000% 1 0.000
dirname 0.0000 0.000% 0.000% 12 0.000
readlink 0.0000 0.000% 0.000% 3 0.000
postdrop 0.0000 0.000% 0.000% 1 0.000
which 0.0000 0.000% 0.000% 3 0.000
basename 0.0000 0.000% 0.000% 6 0.000
sendmail 0.0000 0.000% 0.000% 1 0.000
sh 0.0000 0.000% 0.000% 3 0.000
----------------------------------------------------------------------
Total: 2456.7800 100.000% 10.237% 345
Average per day: 2456.7800 1 days
CPU percentage assumes 24000 cpu seconds per day total.
foo@bar:~/logs/resources$ ls -lah
total 184K
drwxr-xr-x 2 foo root 4.0K Aug 31 07:47 .
dr-xr-x--- 15 foo dhapache 4.0K Dec 24 2011 ..
-rw-r-xr-x 1 foo root 0 Jul 18 2006 access.log
-rw-r-xr-x 1 foo root 0 Jul 18 2006 error.log
-rwxr-xr-x 1 foo root 2.5K Mar 12 2010 sa.analysis.pl
-rw-r-xr-x 1 foo root 0 Aug 31 07:47 foo.sa.analyzed
-rw-r-xr-x 1 foo root 1.9K Aug 31 07:47 foo.sa.analyzed.0
-rw-r-xr-x 1 foo root 1.2K Aug 30 07:47 foo.sa.analyzed.1
-rw-r-xr-x 1 foo root 1.2K Aug 29 07:47 foo.sa.analyzed.2
-rw-r-xr-x 1 foo root 1.2K Aug 28 07:47 foo.sa.analyzed.3
-rw-r-xr-x 1 foo root 1.2K Aug 27 07:47 foo.sa.analyzed.4
-rw-r-xr-x 1 foo root 1.2K Aug 26 07:47 foo.sa.analyzed.5
-rw-r-xr-x 1 foo root 1.2K Aug 25 07:47 foo.sa.analyzed.6
Y después de revisar esto y los errores, encuentro que del 26 al 29 de agosto:
$ zgrep ModSecurity error.log.*.gz | wc
29 1097 13226
$ zgrep Premature error.log.*.gz | wc
58 828 7996
Según el propio KB, cuando se queda sin memoria php se encontraran en los logs “Premature end of script headers” y a mi me interesaba saber cuantas veces ModSecuriy detuvo un proceso, ya que estoy casi seguro que eso debe de afectar también.
Es decir me quedé 58 veces sin memoria en los procesos PHP… o al menos eso dicen los logs… entonces me quedo con la idea de que no estoy tan apretado con mi sitio, dicho sea de paso de snafu apenas active lo de la revisión del CPU tengo curiosidad de ver que tal va, según leo en la documentación se asumen como limite 300 minutos al día, en el propio reporte dice que toma 24000 segundos totales, es decir 400 minutos en mi día más ocupado utilice 3107, que son casi 52 minutos, entonces creo que estoy no tan mal.
Ya con datos de snafu, resulta que uso mucho más procesador en el mismo, estando normalmente en los 3000 segundos.
Supongo entonces que más bien me quieren vender que funciona mucho mejor su siguiente producto, el VPS, con memoria dedicada y discos duros de estado solido, lo cual es muy probable, pero el costo no me emociona.
Esto hizo que me preguntara un rato que tanto estoy hosteando e hiciera un rápido inventario de lo mismo y lo que quedo de lo que si uso:
5.61 MB rradiko.com
103.26 MB kermatronic.com
167.25 MB wiki.animeproject.org
334.77 MB historico.animeproject.org
2.01 GB anaserradilla.org
2.38 GB blografia.net
10.33 GB cobacha.animeproject.org
12.05 GB ociologia.org
22.93 GB ociologos.org
4.40 GB anime-project.org
Y después de quitar ociologia y ociologos que tienen fotos y/o mirror de sitios ya desaparecidos pero que si me interesan, casi que entro en un VPS con 20GB de disco duro de estado solido no necesariamente en DH, ya que para VPS se me ocurren opciones mejores como Digital Ocean, Linode o hasta OVH.
Pero Dreamhost me provee de un panel sin demasiadas complicaciones al que ya me acostumbre, bastante espacio, un desempeño aceptable para lo que realizo y un costo igual, el ejercicio me ayudo para pensar en un montón de cosas que debo de empezar a dejar ir, varios nombres de dominios y páginas que ya no uso y no parece que vaya a usar y un montón de archivos de respaldo de proyectos y trabajos que también ya acabaron y se acumularon con el tiempo, resultado, puedo moverme a un mejor servicio, pero tendría que dedicarle un tanto mas de trabajo sobre todo al migrar y configurar los mismos, cosa que pudiera ser útil, pero no urgente o necesario y que no tengo deseo de hacer.
La opción del VPS con DH no me conviene por el lado del costo, se va muy por encima de lo que me gustaría pagar y no me ofrece mayores beneficios que la competencia, para mis necesidades.
PS. foo corresponde con mi sitio de monos ojones animeproject y snafu con blografia, pero no me parece útil poner el nombre de servidor ni los usuarios que uso ;) ¡me lleve una sorpresa de que parece ser más popular y usar mayores recursos mi sitio de blogs que mi sitio de monos ojones!