Posts

Showing posts with the label linux

Linux Performance Observability Tools

For at least 2 years, I wanted make a "cheat sheet" for some of the popular Performance Observability Tools in Linux. Today, I could finally publish a Medium story about " Linux Performance Observability Tools "

Finding how many processors

I wanted to find out the processor details in my laptop and I found out that there are several ways to check. For example, see The RedHat community discussion on  Figuring out CPUs and Sockets . In this blog post, I'm listing few commands to find out details about CPUs. I'm using Ubuntu in my Lenovo ThinkPad T530 laptop and following commands should be working any Linux system. Display information about CPU architecture $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 58 Model name: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz Stepping: 9 CPU MHz: 1199.988 CPU max MHz: 3600.0000 CPU min MHz: 1200.0000 BogoMIPS: ...

Linux Performance Observability Tools

Image
I am learning about Linux Performance Tools and I found Brendan Gregg 's talks on Linux Performance  are very interesting. There are so many performance tools for Linux. Brendan recommends to follow a performance analysis methodology  to analyze system or application performance. These methodologies can guide us to choose and use these performance tools effectively. Linux Performance Observability Tools There are different types of command line tools available in Linux. In this blog post, I'm going to focus on Linux Performance Observability Tools . I highly recommend to watch Brendan's talk at Velocity 2015 on Linux Performance Tools and I took details about following tools from his presentation and his website. Linux Performance Observability Tools Taken from Brendan Gregg's Website:  http://www.brendangregg.com/Perf/linux_observability_tools.png Here are some examples of using Linux Performance Observability Tools in Ubuntu.  I tested each of th...

Java CPU Flame Graphs

Update (September 14, 2015): Java 8 Update 60 was released on August 18, 2015. There are some recent changes to "perf-map-agent". There is no longer a script named "perf-java" and you should use "bin/create-java-perf-map.sh " Brendan Gregg shared an exciting news in his Monitorama talk: The " JDK-8068945 " is fixed in Java 8 Update 60 Build 19 ! Without this fix, it was not possible to see full stack in Java with Linux perf_events and standard JDK (without any patches). For more information, see Brendan's Java CPU Flame Graphs page. The Problem with Java and Perf First of all, let's see what's the problem with using current latest Java and perf. For this example, I used the same program explained in my previous blog post regarding FlameGraphs . java org.wso2.example.JavaThreadCPUUsage.App Then I sampled on-CPU functions for Java program using perf. (See Brendan's Perf Examples ) sudo perf record -F 99 -g -...