When you need the numbers just right – benchmark and profiling applications in the Snap Store

This article is more than 4 years old.


The world of software is a vast and complex one, often too difficult to easily assess by human intuition alone. Which is why detailed and accurate measurements of software behavior are essential in helping us understand and gauge how well our applications perform.

The Snap Store has a fair share of productivity tools and utilities, including a wide range of benchmarking and profiling tools. These are designed to help developers, system administrators and hardcore enthusiasts get a precise sense of their software, whether as part of research and design or for troubleshooting ongoing problems in production environments. Let’s have a little tour.

Stress-ng

This utility can, as the name implies, stress various subsystems on a computer, including CPU, memory, disk, various caches, scheduling, and more. You can use it to profile a system, compare results to a known baseline, detect bottlenecks, or indirectly identify potential issues with services and applications running on a host. In particular, stress-ng can also be useful in benchmarking Linux kernels on different hardware architectures.

KDiskMark

Hardware performance is essential for a good user experience, especially with sustained I/O workloads. Often, if you want to analyze your hard disk speed, you will use a command-line tool of some sort. KDiskMark comes with a friendly UI, designed to make it accessible to ordinary users, too – although, you do need some understanding of what the different benchmark tests in the application do. Otherwise, your performance values will be just generally indicative of the capabilities of your storage. You can run one or more tests, and choose the data set size.

Packet Sender

Packet Sender is a sophisticated, powerful network analysis tool. It allows you to send and receive network packets for multiple protocols (TCP, UDP, SSL), and test various network configurations and setups. It can be used to inspect connectivity, firewalls, secure connections, automation frameworks, and more. It can also be used for stress testing. The usage is not trivial, and it takes some time and understanding to utilize the application fully, but it offers a great deal of flexibility for data analysis, research and optimization.

Cpustat

The world of Linux is home to a large number of utilization measurement tools, many of them with the word *stat in their name. One such utility is cpustat, which can be used to sample and report per-CPU and per-task utilization statistics. With low impact on system performance, cpustat can be used as a non-intrusive measurement tool, and help you detect potential bottlenecks in process execution or system loading.

Summary

This article covers but a small sample of system analysis tools available in the Snap Store. Nevertheless, you should find value and use in these programs, especially if you need to evaluate a brand new system or figure out a slowness issue on a system. Of course, there are quite a few other utilities out there, but exploration and discovery are part of the fun.

If you have any suggestions or recommendations for benchmarking and profiling software, please join our forum and let us know. We’re always looking for cool applications to write about, and also use when the need arises.

Photo by Nitin Mathew on Unsplash.

Ubuntu cloud

Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.

Newsletter signup

Get the latest Ubuntu news and updates in your inbox.

By submitting this form, I confirm that I have read and agree to Canonical's Privacy Policy.

Related posts

Profile-guided optimization: A case study

Software developers spend a huge amount of effort working on optimization – extracting more speed and better performance from their algorithms and programs....

Creating Snaps on Ubuntu Touch

This article was written in collaboration with Alfred E. Neumayer of the UBports Project. Tablets, phones and current technology’s capabilities are...

Managing software in complex network environments: the Snap Store Proxy

As enterprises grapple with the evolving landscape of security threats, the need to safeguard internal networks from the broader internet is increasingly...