EmergencyEMERGENCY? Get 24/7 Help Now!

Basic performance and diagnostic tools on Solaris

 | February 14, 2011 |  Posted In: Insight for DBAs, MySQL


Much has been written about tools to inspect Linux systems, and much has been written about Solaris’s Big Important Tools such as DTrace. But I don’t recall seeing much in the MySQL blogs about basic tools to find one’s way around a Solaris system and discover the system, get fundamental performance, configuration, and status information, and so on. Here’s a quick list of some key tools.

  • Many of the tools you’re used to from Linux will work, although sometimes they output different information. An example is vmstat. Many tools such as uptime will work as you’re used to. And of course, Solaris is POSIX compliant, so if a core UNIX utility doesn’t do what you want, the problem is you 😉
  • One example of a tool that is often installed on Solaris but should not be preferred is top. Instead, you should use the native Solaris tool, prstat, which is more accurate.
  • To display information about processors, use psrinfo.
  • To print system configuration (such as sysctl gives you), use prtconf and/or sysdef.
  • To print system diagnostic information, use prtdiag.
  • To describe the hardware’s instruction set architecture, use isainfo and isalist.
  • To discover some low-level hardware details, use smbios.
Baron Schwartz

Baron is the lead author of High Performance MySQL. He is a former Percona employee.


  • Some commands can’t be run in a Solaris non-global Zone. E.g., smbios and prtdiag. Also prtconf says “devinfo facility not available” but I’m not sure if that’s due to Solaris Zones.

    I used “psrinfo -vp” to get full information about processors. With other commands you get rather generic information about the processors, for instance isainfo only told me the processors supported “am64 and pentium_pro+mmx” instructions, which is less than I wanted to know. psrinfo -vp told me exactly which model of Xeon processors are installed, clock speed, and number of cores per processor.

    I’m still looking for a way to map disk devices reported in iostat to the mounted filesystems. Is this also complicated by the virtualization of devices in Zones?

  • Another tip for Solaris Zones: Both `prtconf’ and `top’ can report an inaccurate number for the amount of physical RAM. The Solaris Container (sort of analogous to a Host operating system in VM lingo) can cap the amount of physical RAM used by a zone. Run `zonecfg -z info’ on the Container to get the actual RAM allocated to a given Zone.

  • In the above comment I tried to use angle-brackets but they got lost. The command I was trying to describe is `zonecfg -z zonename info’, where zonename is the name of a given Solaris Zone instance.

  • Hi,

    Take a look at SDR, designed special to record long trends from your Solaris/Linux boxes.
    http://www.systemdatarecorder.org/download/index.html Im planning to add support for FreeBSD.

    You could use sar and gather all data what you need, but SDR does a bit better by letting you
    have different recorders for different jobs without stopping anyone to enhance, modify them
    in matter of minutes.

    Very nice post about VoltDB/USL.

Leave a Reply


Percona’s widely read Percona Data Performance blog highlights our expertise in enterprise-class software, support, consulting and managed services solutions for both MySQL® and MongoDB® across traditional and cloud-based platforms. The decades of experience represented by our consultants is found daily in numerous and relevant blog posts.

Besides specific database help, the blog also provides notices on upcoming events and webinars.
Want to get weekly updates listing the latest blog posts? Subscribe to our blog now! Submit your email address below and we’ll send you an update every Friday at 1pm ET.

No, thank you. Please do not ask me again.