When you need the numbers just right – benchmark and profiling applications in the Snap Store
Igor Ljubuncic
on 4 December 2020
Tags: analysis , benchmark , profiling , sc:snap:cpustat , sc:snap:kdiskmark , sc:snap:packetsender , sc:snap:stress-ng , snapcraft.io , system
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
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...