Sunday Aug 23, 2015

Tip of the day: Filtering mpstat to remove idle lines

The latest machines have a lot of threads, so running mpstat is almost unusable when monitoring per-cpu performance. We are usually not interested in looking at 100% idle threads. Unfortunately, mpstat does not have a '-z' option like iostat to ignore irrelevant lines, so I wrote this awk quickie which works pretty well:

For example:

$ mpstat 3 | awk '{if( $16 != 100) print $0;}'

Of course, you can change 100 with any number you like to reduce percentage of idle time that you want to ignore.

I will demo this on a Sparc T4 with 64 threads in our local lab:

First, I'll run a process in the background:

root@mdet4-2-1:~# find / >> /dev/null &
[1] 2506

 Now, let's run mpstat a couple of times since you should always ignore the first output:


root@mdet4-2-1:~# mpstat 1 2
 CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
   0   10   0  731   411  175   72    0    4   18    0    95    0   3   0  97
   1   45   0  993    96    6  337    0   26   91    2  1085    1   2   0  97
   2    4   0  120    12    0   79    0    3   14    0   147    0   0   0 100
   3    0   0    7     3    0    4    0    1    3    0     6    0   0   0 100
   4    0   0   47     7    0    6    0    0    1    0     9    0   0   0 100
   5    0   0   51     7    0    5    0    0    1    0     2    0   0   0 100
   6    0   0   33     7    0   42    0    2    3    0    69    0   0   0 100
   7    1   0   27    11    0   10    0    1    4    0    24    0   0   0 100
   8    1   0  109    15    0   20    0    1    7    0    25    0   0   0 100
   9    9   0  158    40   10  100    0    6   19    0   261    0   0   0  99
  10   37   0  689    89    2  400    0   22   47    1   809    1   2   0  97
  11    5   0   70    16    0   25    0    2   16    0    49    0   0   0 100
  12    0   0   18     4    0    2    0    0    2    0     1    0   0   0 100
  13    0   0    7     4    0   18    0    4    6    0    36    0   0   0 100
  14    0   0   19     6    0    4    0    0    2    0     6    0   0   0 100
  15    0   0   75    12    0   11    0    0    2    0     8    0   0   0 100
  16    0   0   85    21    7   12    0    0    2    0     1    0   0   0 100
  17    2   0  171    26    0   31    0    1    7    0    19    0   0   0 100
  18   15   0  209    36    0  129    0   11   27    0   221    0   0   0  99
  19   39   0  897    87    1  278    0   23   56    1   666    1   1   0  98
  20    6   0   74    17    0   49    0    4   16    0   149    0   0   0 100
  21    1   0    5    11    8    1    0    0    2    0     4    0   0   0 100
  22    0   0    1     3    0    2    0    0    1    0     3    0   0   0 100
  23    4   0    7     7    0    6    0    0    3    0     7    0   0   0 100
  24    0   0  103   153   34   11    0    0    3    0     8    0   2   0  98
  25    0   0   34     9    0    7    0    0    2    0     3    0   0   0 100
  26    1   0   88    15    0   17    0    1    7    0    17    0   0   0 100
  27   10   0  140    28    0  119    0    4   17    0   276    0   0   0  99
  28   37   0  861   106    3  284    1   27   64    2  1017    2   2   0  97
  29    6   0  166    16    1  141    0   15   28    0   322    0   0   0  99
  30    0   0    7     2    0    2    0    0    1    0     5    0   0   0 100
  31    2   0    5     3    0    1    0    0    1    0     3    0   0   0 100
  32    1   0   11     3    0    3    0    0    2    0     8    0   0   0 100
  33    0   0   38     7    0    5    0    0    3    0     3    0   0   0 100
  34    0   0   41    10    0    9    0    0    3    0     5    0   0   0 100
  35    2   0   61    16    0   18    0    1    6    0    15    0   0   0 100
  36   11   0  194    33    0  114    0    4   21    0   166    0   0   0 100
  37   46   0 8125    92    2  432    1   27   59    2  1435    2   4   0  95
  38    7   0   85    22    0   36    0    2   12    0    56    0   0   0 100
  39    1   0   28     9    0    7    0    0    3    0     8    0   0   0 100
  40    0   0   13    10    0   11    0    0    3    0    15    0   0   0 100
  41    0   0   27    13    0   10    0    0    1    0     2    0   0   0 100
  42    0   0   55    17    0   16    0    0    2    0     7    0   0   0 100
  43    1   0   65    18    0   18    0    1    2    0     5    0   0   0 100
  44    1   0   92    28    0   32    0    1    8    0    14    0   0   0 100
  45   10   0  144    42    2   60    0    3   19    0    54    0   0   0 100
  46   42   0  867   104    4  387    0   33   68    2   918    1   1   0  98
  47    8   0  137    39    1   68    0    3   12    0    69    0   0   0 100
  48    3   0   72    17    0   22    0    2    8    0    54    0   0   0 100
  49    0   0   45    13    0   10    0    0    2    0     2    0   0   0 100
  50    0   0  148    22    0   20    0    0    2    0     6    0   0   0 100
  51    0   0   78    18    0   15    0    0    1    0     1    0   0   0 100
  52    0   0   37    18    0   16    0    0    2    0     1    0   0   0 100
  53    2   0  199    30    0   49    0    5   12    0    32    0   0   0 100
  54   15   0  488    58    0   95    0    5   22    0    85    0   1   0  99
  55   85   0  699    99    2  435    0   31   61    1   855    1   4   0  96
  56   40   0 1238    94    2  471    1   25   59    2  1584    3   2   0  95
  57    7   0   96    17    1   74    0    3   11    0   239    0   0   0 100
  58    0   0    2     3    0    1    0    0    1    0     2    0   0   0 100
  59    0   0 3908    62   59    2    0    0    1    0     5    0   0   0 100
  60    0   0   13     3    0    7    0    0    3    0    29    0   0   0 100
  61    0   0    9     4    0    3    0    0    2    0     5    0   0   0 100
  62    1   0  360    29    0   29    0    1   10    0     8    0   0   0 100
  63    5   0   89    20    0   61    0    6   20    0   103    0   0   0 100
 CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
   0    0   0  367   583  366    0    0    0    0    0     0    0   1   0  99
   1    0   0   11    54    2   70    0    2    0    0    52    0   1   0  99
   2    0   0   11    14    0   26    0    0    1    0    33    0   0   0 100
   3    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
   4    0   0    9    24    0   18    0    0    0    0     0    0   0   0 100
   5    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
   6    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
   7    0   0    7    23    0   14    0    0    0    0     0    0   0   0 100
   8    0   0  135    12    0   10    0    0    1    0     0    0   0   0 100
   9    0   0    5    35    2   60    0    1    0    0    12    0   0   0 100
  10    0   0  131    52    0   93    0    0    2    0    94    0   0   0 100
  11    0   0    4     5    0    8    0    0    0    0     0    0   0   0 100
  12    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  13    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  14    0   0    3    10    0    6    0    0    0    0     0    0   0   0 100
  15    0   0  645    42    0   42    0    0    5    0     0    0   0   0 100
  16    0   0    2     4    0    2    0    0    0    0     0    0   0   0 100
  17    0   0  276    51    0   56    0    1    3    0     0    0   0   0 100
  18    0   0  143    40    0   68    1    1    0    0     0    0   0   0 100
  19    0   0   31    89    0  140    0    0    0    0     0    0   1   0  99
  20    0   0    1     4    0    2    0    0    0    0     0    0   0   0 100
  21    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  22    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  23    0   0    1     3    0    0    0    0    0    0     0    0   0   0 100
  24    0   0    0  4688 1867    0    0    0    2    0     0    0  54   0  46
  25    0   0    1     4    0    2    0    0    0    0     0    0   0   0 100
  26    0   0    2     6    0    2    0    0    0    0     0    0   0   0 100
  27    0   0    4    13    0    8    0    0    0    0     0    0   0   0 100
  28    0   0   19    69    0  103    0    0    0    0     0    0   0   0 100
  29    0   0    6    31    0   44    0    0    0    0   135    0   1   0  99
  30    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  31    0   0    4    13    0    8    0    0    0    0     0    0   0   0 100
  32    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  33    0   0    9    20    0   18    0    0    0    0     0    0   0   0 100
  34    0   0  394    41    0   36    0    1    3    0     0    0   0   0 100
  35    0   0  512    40    2   40    0    1    5    0     0    0   1   0  99
  36    0   0  138    19    0   24    0    0    0    0     0    0   0   0 100
  37    0   0    5    52    1   96    0    0    0    0     1    0   1   0  99
  38    0   0   10    48    0   74    0    0    0    0     0    0   1   0  99
  39    0   0    6    19    0   12    0    0    0    0     0    0   0   0 100
  40    0   0   18    35    1   38    0    0    0    0     0    0   0   0 100
  41    0   0    6    10    0   14    0    0    0    0     0    0   0   0 100
  42    0   0    1     4    0    2    0    0    0    0     0    0   0   0 100
  43    0   0    2     7    0    4    0    0    0    0     0    0   0   0 100
  44    0   0    2     8    0    6    0    0    1    0     0    0   0   0 100
  45    0   0    5    27    0   35    1    1    0    0     0    0   0   0 100
  46    0   0   18    58    4   81    0    0    0    0     9    0   0   0 100
  47    0   0    3    46    5   80    0    1    0    0     4    0   1   0  99
  48    0   0    4    16    0   22    0    1    3    0     0    0   0   0 100
  49    0   0    7    10    0   14    0    0    0    0     0    0   0   0 100
  50    0   0    1     2    0    2    0    0    0    0     0    0   0   0 100
  51    0   0    1     4    0    2    0    0    0    0     0    0   0   0 100
  52    0   0    1     4    0    2    0    0    0    0     0    0   0   0 100
  53    0   0    0    12    0   22    0    0    0    0     0    0   0   0 100
  54    0   0    2     8    0    6    0    1    0    0     0    0   0   0 100
  55    0   0   42    63    3   87    0    2    0    0    14    1   0   0  99
  56    6   0   17    73    3  118    0    1   10    0   945    1   4   0  95
  57    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  58    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  59    0   0 3721    69   60    8    0    0    0    0     0    0   0   0 100
  60    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  61    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  62    0   0    0     1    0    0    0    0    0    0     0    0   0   0 100
  63    0   0 1407    94    0   91    0    0   13    0     0    0   1   0  99

As you, can see we have a lot of lines, and it is harder to see where our process is running.

Running filtered mpstat, we get:

root@mdet4-2-1:~# mpstat 1 2 | awk '{if($16 != 100) print $0;}'
 CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
   0    9   0  727   415  179   72    0    4   18    0    92    0   3   0  97
   1   44   0  962    95    6  328    0   25   88    1  1051    1   2   0  97
   9    9   0  160    40    9   98    0    6   19    0   253    0   0   0  99
  10   36   0  669    88    1  390    0   21   46    1   793    1   2   0  97
  18   15   0  204    36    0  127    0   11   27    0   213    0   0   0  99
  19   38   0  871    87    1  273    0   23   55    1   645    1   1   0  98
  24    0   0  100   172   43   11    0    0    3    0     7    0   2   0  98
  27   10   0  139    28    0  116    0    4   17    0   266    0   0   0  99
  28   36   0  833   105    3  279    1   27   62    2   986    2   2   0  97
  29    6   0  160    16    1  137    0   15   27    0   312    0   0   0  99
  37   45   0 7836    91    2  421    1   26   57    2  1387    1   4   0  95
  46   41   0  838   103    4  376    0   31   66    2   889    1   1   0  98
  54   15   0  472    56    0   92    0    4   22    0    82    0   1   0  99
  55   82   0  680    99    2  424    0   30   60    1   863    1   4   0  96
  56   39   0 1197    93    2  458    1   24   58    2  1538    3   2   0  95
 CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
   0    0   0 1309   566  294  127    0    7    9    0     3    0   1   0  99
   1    0   0  201    67    4  112    0    5   34    0     3    0   7   0  93
   2    0   0    3    11    0   18    0    0   11    0    15    0   1   0  99
   8    0   0    0     3    0    4    0    0   15    0     0    0   2   0  98
  24    0   0    0  1265  503    0    0    0    1    0     0    0  15   0  85
  28    0   0  402    77    0  112    0    3   36    0   659    0   3   0  97
  37    0   0   22    71    1  116    0    3    6    0    94    0   1   0  99
  38    0   0   11    32    1   32    0    1    1    0    21    0   1   0  99
  46    0   0   45    75    4  115    0    2    4    0    21    0   1   0  99
  51    0   0    4    21    0   32    0    0    3    0     0    0   1   0  99
  52    0   0    1     6    0    6    0    0   10    0     0    0   1   0  99


Much less lines here, in fact if we ran with < 90 as our parameter we'd get a single line directly showing the processor used.

Of course, this technique can be used in various ways with all our monitoring commands ( vmstat, iostat, netstat).

Let me know if you have a favourite in the comments below.



Monday Jul 06, 2015

HELP!! Solaris Technical Support for Developers


Help!",  the 1965 song by the Beatles (click on the album) that served as the title for both the 1965 film and its soundtrack album was reportedly written by John Lennon, and was a direct reflection of the Beatles' astronomical rise to success in the mid-1960's.

 "The whole Beatles thing was just beyond comprehension. I was subconsciously crying out for help",

stated John Lennon in a 1980 interview.

Help, I need somebody
Help, not just anybody
Help, you know I need someone, HELP!!

Well, we'd better not go too far down that path to 1965... 

but, DID YOU KNOW that our Solaris developers get free technical HELP under the Oracle PartnerNetwork (Gold level members and above) for any questions regarding development of their applications on Oracle Solaris 11!? 

Yes, great news.  But most importantly, to coin a line from our theme song, its not just ANY body who is providing that help. 

Lets be clear that this is NOT a call center in the middle east.  At Oracle we have a team of senior ISV Engineers who respond directly to these questions from our OPN partners.  These engineers are trained professionals who support our ISV's on a daily basis for technical validation and support of the their application on Oracle Solaris.  In other words, this is their job.  And in doing this, they are involved in all kinds of technical support topics with Solaris developers and are extremely knowledgeable in the intricacies of making sure that the ISV application runs BEST on Oracle Solaris. 

Here are just a couple examples of the types of support they are trained to provide:

  • Checking application compatibility with Oracle Solaris
  • Certifying application with Oracle Solaris
  • Optimizing application performance
  • Ensuring application stability & reliability
  • Determining the Oracle Solaris readiness of your application
  • Helping you install Oracle VM Templates for Oracle Solaris
  • Utilizing Dynamic Tracing Facility (DTrace) to understand better how your system is operating
  • Providing migration assistance to Oracle Solaris from Red Hat Linux, IBM AIX, HPUX and others
  • Helping you get access to Oracle Solaris systems in a secure cloud-based environment

Want to try it out?  Its as simple as sending one email to this alias:  ISVSupport_WW@oracle.com

As long as you are an OPN member (Gold level and above), we guarantee you no longer than a 48 hour turnaround.   Check it out right off our OPN page for Solaris Developers:

Solaris Adoption Technical Assistance

Lennon wrote the lyrics of the song to express his stress after the Beatles' quick rise to success.

"I was fat and depressed and I was crying out for 'Help," said Lennon.

No need for our Solaris Developers to get fat and depressed -- get HELP now -- and you'll see that Oracle's ISV Engineering team is definitely not "just ANY body"!

About the photograph:  I ran across the "Help" album in the very cool Downtown Local coffee shop in Pescadero, California and photographed it on my trusty iPhone.

Monday Jun 01, 2015

3 Reasons To Test Drive our Cloud

Oracle’s Software in Silicon Cloud is available NOW, free of charge, to our customers and partners for a test drive.

This special offering provides our ISV partners and enterprise developers early access to the revolutionary Software in Silicon technology in the forthcoming Oracle SPARC M7 processor running Oracle Solaris 11, with a robust and secure cloud platform and ready-to-run virtual machine environments.

And we have 3 partners who have great things to say about using it TODAY!



JomaSoft is utilizing Oracle’s Software in Silicon Cloud to evaluate memory leak and code security of their cloud management platform, Virtual Data Center Control Framework (VDCF). “Leveraging the Software in Silicon Cloud literally saved Jomasoft weeks in comparison to our normal beta test cycle process in-house." —Marcel Hofstetter, CEO


Capitek is also leveraging this cloud offering to evaluate Oracle's latest Software in Silicon technology in the SPARC M7 processor.  “We were able to create our own customized application test and verification environment in just minutes, while eliminating the need to acquire and deploy our own server resources for similar tests." —Jerry Chen, Senior Manager, Telecom Software Product Department

AsiaInfo is testing their AsiaInfo Internet Short Message Gateway (AIISMG) solution on Oracle’s Software in Silicon Cloud to improve overall software reliability and security.  “The Software in Silicon Cloud is a very economic and efficient method for AsiaInfo to validate the upcoming hardware and software from Oracle on our AIISMG solution." —Fu Tingsheng, Director of Engineering

Learn how you can break the code to take advantage of this revolutionary new technology in software development.

Get an edge on your competition — Sign up NOW!



Wednesday Apr 22, 2015

Oracle Solaris Development Initiative - FREE Beer






ISV developers take note, this is even better than FREE beer!

The majority of Oracle’s top enterprise customers run their most mission-critical applications on Oracle Solaris today.  Solaris is the vehicle by which Oracle customers leverage the power of the SPARC microprocessor - - delivering world-record performance, maximum scalability, and continuous reliable service. 

There are 113 examples of this on the Oracle customer & partner success portal.  Take a look!

But the question ISV developers are asking is how they can gain access to Oracle Solaris for development purposes - - where they need access to multiple development systems with Solaris licenses for testing and validation work in a pre-production environment.  And they especially want access to the latest release of Oracle Solaris where they can exploit some of the new features, such as OpenStack functionality, building a simple and secure cloud, or being able to deliver unique innovation for Oracle database or middleware applications.  And as we all know developers, they want it for FREE -- as in FREE beer.

Ok, we get it, and the Oracle Solaris Development Initiative (SDI) provides just that — and more.
And yes — it is FREE to ISV developers who are Oracle PartnerNetwork (OPN) Members, as long as they are Gold members (or above).  Here is just a sampling of what you get:

- Development and demonstration licenses for Oracle Solaris, Oracle Solaris Cluster, and Oracle Solaris Studio
- Access to software patches, updates, new releases for Oracle Solaris products
- My Oracle Support (MOS) access for performance & feature enhancements, security patches, & bug fixes
- Access to all MOS self-help technical resources such as security alerts, product docs, & support services
- Developer support via email for technical questions around Oracle Solaris products, including Oracle technologies integrating with Solaris
- Access to a Solaris development cloud with preconfigured Oracle Solaris developer zones

- And more...

All for FREE -- are you kidding me?!

No.  Provided you are an OPN Gold member (or above), Oracle is quite serious about this.
And if you are not yet an OPN member — this program alone should be reason to join.

We may not be offering free beer [yet],
but the SDI program will move you further down the path to success for learning to run the most complete and proven enterprise-class operating system in the world.  For FREE.

Thursday Mar 26, 2015

OpenWorld 2015 Call for Papers Now Open

The Call for Papers is now open for the 2015 edition of Oracle OpenWorld, the world’s largest gathering of Oracle customers, developers, and partners, including the JavaOne conference. Share your expertise on all things Oracle with attendees eager to know what you know.

At ISV Engineering, we welcome joint work and paper submission with our ISV partners ––we enjoy seeing your software being showcased at Oracle's premier event. Learn here who from ISV Engineering and partners attended last year and what they presented. The Call for Papers closes on April 29th so submit your paper now!

Find more information on the process, timeline, and guidelines at the Oracle OpenWorld submission site.

About

How open innovation and technology adoption translates to business value, with stories from our developer support work at Oracle's ISV Engineering.

Subscribe

Search

Categories
Archives
« September 2015
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
Feeds