OVH Community, your new community space.

Analizador de scripts


santisaez
18/03/2011, 08:52
Hola Tuercebotas,

Gracias por la aclaración

Efectivamente con un strace se puede ver "casi todo" lo que está haciendo un script PHP, pero está limitado a llamadas al sistema. Lo interesante de la aplicación de OVH es que analiza el script, con strace analizas las llamadas al sistema de la ejecución del programa (aunque como bien indicas te permite ver las lecturas/escrituras y aunque de forma menos clara también las consultas SQL, etc.)

En cualquier caso, tendremos que seguir tirando de strace y otras ñapas.. aunque estaría bien que OVH apostaría por liberar este de herramientas, son muy útiles

Saludos,

MarcosBL
17/03/2011, 01:46
No problem Tuercebotas, es que no entendia por donde iba la cosa... de todas formas seguro que fue un comentario, sin más

Como he comentado en varias ocasiones, en linux soy novatoide profundo, pero estaba leyendo sobre ltrace para el tema de las consultas SQL, no sé si confundo churras con merinas, pero si bien strace parece ofrecer mucha info para archivos, esto parece enviar más datos y mejor organizados para consultas SQL, si alguno que controleis más podeis darle un ojo...

http://timetobleed.com/extending-ltr...p-apps-faster/

Tuercebotas
16/03/2011, 22:31
Cita Publicado inicialmente por MarcosBL
¿?¿? Tuercebotas, yo lo he bajado sólo por la petición de los comentarios de este post, nada más :E

De hecho estoy seguro que "por detrás" el funcionamiento es el que indicas, basado en strace (de hecho estoy probandolo un poco en mi /tmp ahora mismo).

Yo por mi parte hago algo parecido, "a lo pobre", escribiendo los accesos a disco, las queries SQL, tiempos, etc, a un log, desde el propio PHP.
Lo de "no es lo mismo" no lo decía por tí. Era por el comentario de santisaez sobre la consulta con strace. Porque de esa forma no analiza las consultas sql, ni pone la memoria... Y trataba de explicar que con strace sí se puede analizar las consultas sql y que el consumo de la memoria se puede conseguir de otra forma... que se puede hacer algo así. No en el panel de ovh... pero bueno.

De todos modos, gracias por bajarlo, por probarlo y por sacarnos de dudas.

MarcosBL
16/03/2011, 21:08
¿?¿? Tuercebotas, yo lo he bajado sólo por la petición de los comentarios de este post, nada más :E

De hecho estoy seguro que "por detrás" el funcionamiento es el que indicas, basado en strace (de hecho estoy probandolo un poco en mi /tmp ahora mismo).

Yo por mi parte hago algo parecido, "a lo pobre", escribiendo los accesos a disco, las queries SQL, tiempos, etc, a un log, desde el propio PHP.

Tuercebotas
16/03/2011, 20:11
No es igual no.

Solo trataba de dar pistas sobre como se puede preparar un script que haga algo parecido porque, sinceramente, no creo que nos lo pongan en los dedicados y lo de pasarnos la info de como podemos hacerlo... no espero que lo hagan.

Adaptándolo un poco digo yo que se puede preparar un script que haga, no se si lo mismo, pero sí algo parecido.

Supongo que los pasos serían averiguar de alguna forma que procesos pid que lanza una aplicación y preparar un script que seguido lo analice con strace (que siga los procesos de apache y mysql) + con el mismo script, analizar esos procesos para averiguar la memoria consumida, cpu consumida, tiempos de ejecución...

Yo no lo veo tan complicado pero como queremos que nos lo den todo hecho, pues bien. Yo también tengo cosas más importantes que hacer.

Saludos

Power
16/03/2011, 19:14
Hola,

Vaya. Mala suerte.

Entonces, parece que está hecho sólo para que funcione en los compartidos de OVH.

Pregunta para alguien de OVH:
¿Está previsto poner ese script a disposición de los clientes de dedicados y VPS de OVH?

Gracias, una vez más, MarcosBL.

Saludos

MarcosBL
16/03/2011, 19:05
Curiosidad resuelta, descargado y chmod +x:

./ovhAnalyser php5 phpinfo.php
ERROR : This file is prohibited !!
Una lástima, aunque es razonable al mismo tiempo

Power
16/03/2011, 18:59
Hola,

Gracias MarcosBL.

¿Será posible utilizarlo en un servidor dedicado o precisará algún módulo que ya esté instalado en los compartidos?

Saludos

MarcosBL
16/03/2011, 18:46
Acabo de probarlo... el binario son 2.5 Mb

Compartido ~ # /bin/ovhAnalyser
usage : ovhAnalyser
language can be : cgi, php4, php5 or php6
Compartido ~ # /bin/ovhAnalyser php5 blogwordpress/index.php
[Tochaco de READ FILE y SQL SELECT después...]

FINAL REPORT

--> Ended with error(s), returned code 65280

First Test (strace)

CGI app load Time = 0.078 seconds

Total Read File : 104
Total Write File : 0

SQL select requests : 12
SQL update requests : 0
Total SQL Time = 0.004 seconds
Slowest SQL request (0.001 seconds) is SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes'

Second Test (time)

Exec Time = 0:00.91

CPU usage = 47 %

RAM usage = 111856 Ko

Power
16/03/2011, 17:43
Hola,

Si alguien tiene un alojamiento compartido con acceso SSH (Profesional, Business o Premium), puede acceder al analizador y contarnos qué tipo de script es ése.

Saludos

santisaez
16/03/2011, 16:32
Hola!

La respuesta del soporte técnico de OVH:

Buenos días

Sólo está disponible en los alojamientos con SSH, aunque dentro de poco se incluirá en el Manager.

OVH, Departamento técnico
Así que a esperar

En cuanto al análisis con strace también es bastante útil pero no hace lo mismo que el ovhAnalyser que analiza incluso las consultas SQL que se hacen :cool:

Saludos,

Tuercebotas
15/03/2011, 22:17
Probado en ubuntu server 10.04, hay que reemplazar httpd por apache2 y strace ya viene instalado por defecto por lo que no hace falta instalar nada.

En Ubuntu

Código:
strace -fF -s 128 -e open $(pgrep apache2 | sed 's/^/-p /') 2>&1 > /tmp/opens
Vamos a la página que queremos analizar en el navegador y cerramos el script con

Código:
control+C
Ahora que está guardado en /tmp/opens lo analizamos...

no me muestra nada con el comando cat, por algún motivo no se guarda bien.

En principio, había visto el proceso pid que me interesaba y con grep iba a mostrar solo los procesos que quería pero no hay forma.

Si abrimos /tpm/archivo no me sale nada dentro...

seguiré haciendo pruebas

Tuercebotas
15/03/2011, 21:44
Mirando un poco he encontrado esta web

http://systemadmin.es/2009/01/que-es...endo-el-apache

# yum install strace
# apt-get install strace

para ver los procesos que se están ejecutando en apache en nuestro servidor

# strace -fF -s 128 -e open $(pgrep httpd | sed 's/^/-p /') 2>&1 > /tmp/opens

(Probado en centoos y ok, en ubuntu no se si será apache2 o lo mismo, ya lo probaré)

Ahora sería tunearlo un poco con cat y grep para que solo nos muestre lo que queremos?

Alguna idea?

kennysamuerto
15/03/2011, 18:15
Cita Publicado inicialmente por santisaez
Hola!

El script parece muy interesante, supongo que su distribución será legítima.. lo he buscado por el FTP de OVH pero no lo encuentro.

Voy a escribir al soporte para ver si me lo proporcionan.. de todas formas, si alguien da con el y es "legal" distribuirlo, estaría bien compartirlo por aquí

Saludos,
Informanos! porque tiene una pinta...

santisaez
15/03/2011, 18:03
Hola!

El script parece muy interesante, supongo que su distribución será legítima.. lo he buscado por el FTP de OVH pero no lo encuentro.

Voy a escribir al soporte para ver si me lo proporcionan.. de todas formas, si alguien da con el y es "legal" distribuirlo, estaría bien compartirlo por aquí

Saludos,

Power
15/03/2011, 16:40
Hola,

He encontrado la información comercial de ese producto en la web francesa de OVH:
http://www.ovh.com/fr/hebergement_mu...ur_scripts.xml

Como dice albertdb:
Si alguien tiene un alojamiento compartido en OVH (con SSH) y un dedicado, podría hacer la prueba de ejecutarlo en el dedicado y contarnos.
Gracias anticipadas.

Saludos

albertdb
15/03/2011, 15:14
Si es un simple binario, podéis probar a copiarlo, igual funciona.

Salu2

Locke
15/03/2011, 12:09
Me suscribo

Interesante!

azazels
14/03/2011, 09:56
me apunto a este hilo, parece interesante

Tuercebotas
13/03/2011, 23:17
Que pasada.

+1

Sería interesante saber como podemos hacer lo mismo en los servidores dedicados.

Power
10/03/2011, 17:09
Cita Publicado inicialmente por sdzzds
Muy interesante....para los dedicados no hay nada?
Hola,

+1
Sería muy interesante contar con alguna herramienta similar para los dedicados.

Saludos

sdzzds
10/03/2011, 14:25
Muy interesante....para los dedicados no hay nada?

admin OVH
10/03/2011, 13:55
Buenos días

A partir de ahora, en los alojamientos compartidos, contáis con una analizador de
scripts que permite saber lo que vuestro script hace exactamente sobre la
infraestructura y luego tener algunas estadísticas.

testtony@ssh1:~$ ovhAnalyser
usage : ovhAnalyser
language can be : cgi, php4, php5 or php6

¿Vuestros feedbacks?

Ejemplo :

testtony@ssh1:~$ ovhAnalyser php5 www/phpBBEn/index.php


Resultado del ejemplo :

READ FILE : /homez.162/testtony/www/phpBBEn/common.php
READ FILE : /homez.162/testtony/www/phpBBEn/config.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/acm/acm_file.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/cache.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/template.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/session.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/auth.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/functions.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/functions_content.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/constants.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/db/mysqli.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/db/dbal.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/utf/utf_tools.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/data_global.php
SQL SELECT : SELECT @@session.sql_mode AS sql_mode
SQL SELECT : SELECT config_name, config_value FROM phpbb_config WHERE is_dynamic = 1
READ FILE : /homez.162/testtony/www/phpBBEn/includes/hooks/index.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/data_hooks.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/functions_display.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/data_bots.php
READ FILE : /homez.162/testtony/www/phpBBEn/includes/auth/auth_db.php
SQL SELECT : SELECT * FROM phpbb_users WHERE user_id = 1
READ FILE : /homez.162/testtony/www/phpBBEn/cache/sql_9dc91161799801b44926b824ccc5cf51.php
SQL UPDATE : INSERT INTO phpbb_sessions (session_user_id, session_start, session_last_visit session_time, session_browser, session_forwarded_for, session_ip, session_autologin, sessio _admin, session_viewonline, session_page, session_forum_id, session_id) VALUES (1, 129925967 , 1299259675, 1299259675, '', '', '', 0, 0, 1, '', 0, '9514b8f31c98a7a1ace96aac2d4e9753')
SQL SELECT : SELECT COUNT(session_id) AS sessions FROM phpbb_sessions WHERE session_user_id 1 AND session_time >= 1299252475
READ FILE : /homez.162/testtony/www/phpBBEn/cache/data_acl_options.php
READ FILE : /homez.162/testtony/www/phpBBEn/language/en/common.php
READ FILE : /homez.162/testtony/www/phpBBEn/language/en/viewforum.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/sql_6af473e331190af791216ecee0575e98.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/data_cfg_theme_prosilver.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/data_cfg_template_prosilver.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/data_cfg_imageset_prosilver.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/sql_9bb4dfea41e5c18c2c6c9d466caa2212.php
SQL SELECT : SELECT f.* FROM (phpbb_forums f) ORDER BY f.left_id
READ FILE : /homez.162/testtony/www/phpBBEn/cache/sql_819dc160ed61cca154e8c4eced23fc51.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/data_word_censors.php
SQL SELECT : SELECT g.group_id, g.group_name, g.group_colour, g.group_type FROM phpbb_groups g LEFT JOIN phpbb_user_group ug ON ( g.group_id = ug.group_id AND ug.user_id = 1 AND ug.user_pending = 0 ) WHERE g.group_legend = 1 AND (g.group_type <> 2 OR ug.user_id = 1) ORDER BY g.group_name ASC
SQL SELECT : SELECT u.user_id, u.username, u.user_colour, u.user_birthday FROM phpbb_users u LEFT JOIN phpbb_banlist b ON (u.user_id = b.ban_userid) WHERE (b.ban_id IS NULL OR b.ban_exclude = 1) AND u.user_birthday LIKE ' 4- 3-%' AND u.user_type IN (0, 3)
SQL SELECT : SELECT COUNT(DISTINCT s.session_ip) as num_guests FROM phpbb_sessions s WHERE s.session_user_id = 1 AND s.session_time >= 1299259320
SQL SELECT : SELECT s.session_user_id, s.session_ip, s.session_viewonline FROM phpbb_sessions s WHERE s.session_time >= 1299259350 AND s.session_user_id <> 1
READ FILE : /homez.162/testtony/www/phpBBEn/cache/tpl_prosilver_index_body.html.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/tpl_prosilver_overall_header.html.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/tpl_prosilver_forumlist_body.html.php
READ FILE : /homez.162/testtony/www/phpBBEn/cache/tpl_prosilver_overall_footer.html.php

FINAL REPORT

--> Executed Successfully

First Test (strace)

CGI app load Time = 0.080 seconds

Total Read File : 34
Total Write File : 0

SQL select requests : 9
SQL update requests : 1
Total SQL Time = 0.006 seconds
Slowest SQL request (0.001 seconds) is SELECT @@session.sql_mode AS sql_mode

Second Test (time)

Exec Time = 0:00.28

CPU usage = 36 %

RAM usage = 50368 Ko