Why can't I dtrace processes running in a jail from the host?

Patrick M. Hausen hausen at punkt.de
Fri Aug 10 07:15:23 UTC 2018


Hi!

> Am 09.08.2018 um 16:52 schrieb Mark Johnston <markj at freebsd.org>:
> For userland static probes to be globally visible, the process needs to
> register them with the kernel when it starts.  This is done
> automatically using a constructor which issues ioctls to
> /dev/dtrace/helper, hence the requirement for /dev/dtrace/* in the jail.

I figured as much. Enabling /dev/dtrace/* in the jail and restarting
the jail made the probes visible in the host system

I'm still somewhat stuck. What I'm trying to do is track down some
performance problems in a large complex PHP web application.
I have done this in the past on "regular" setups without jails
and with PHP 5.6 compiled with dtrace support using
/usr/local/share/dtrace-toolkit/Php/* ...

This setup is jailed with PHP 7.2, dtrace support seems to be the
default for the port.

I'm specifically after

php-fpm                 dtrace_execute_ex function-entry
php-fpm                 dtrace_execute_ex function-return

of course, to see where the application spends it's CPU cycles.

But regardless if I'm doing this on the host or in the jail, I only get
these results:

dtrace -m php\*
	ZEND_CATCH_SPEC_CONST_CV_HANDLER:exception-caught
	php_request_shutdown:request-shutdown
	php_request_startup:request-startup
	zend_error:error
	zend_throw_exception_internal:exception-thrown

Nothing else. Still `dtrace -m php\* -l` does show all the probes.

Any ideas?

Thanks
Patrick
-- 
punkt.de GmbH			Internet - Dienstleistungen - Beratung
Kaiserallee 13a			Tel.: 0721 9109-0 Fax: -100
76133 Karlsruhe			info at punkt.de	http://punkt.de
AG Mannheim 108285		Gf: Juergen Egeling



More information about the freebsd-virtualization mailing list