2M IOPS on a single VM with Nutanix HCI
Published: (Updated: ) by . Leave a Comment on 2M IOPS on a single VM with Nutanix HCI.
How to generate a lot of IOPS to a single VM.
Published: (Updated: ) by . Leave a Comment on 2M IOPS on a single VM with Nutanix HCI.
How to generate a lot of IOPS to a single VM.
Published: (Updated: ) by . Leave a Comment on Nutanix V4 API returns PLAT-10006.
This unhelpful error is returned when using the Postman API collection. The problem is that for example when using a simple “List VMs” call – the URL which is sent contains placeholder values that cause the PC endpoint to return a 500 and the PLAT-10006 response. Check the postman console to see what it is […]
Published: (Updated: ) by . Leave a Comment on Back to basics – gprof PT1 (generating a profile).
A while ago at work we were discussing the pros and cons of the classic Linux profiler gprof… What are profiles useful for? The output of a profile run against a very simple program looks like the example below. It tells us that of the 5.82 seconds of profiled runtime It also tells us that […]
Published: (Updated: ) by . Leave a Comment on Notes on tuning postgres for cpu and memory benchmarking.
Recently I wanted to measure the impact of NUMA placement and Hugepages on the performance of postgres running in a VM on a Nutanix node. To do this I needed to drive postgres to do real transactions but have very little jitter/noise from the filesystem and storage. After reading a lot of blogs I came […]
Published: (Updated: ) by . Leave a Comment on Effect of POSIX_FADV_SEQUENTIAL and POSIX_FADV_RANDOM on IO performance..
Previously we looked at how the POSIX_FADVISE_DONTNEED hint influences the Linux page cache when doing IO via a filesystem. Here we take a look at two more filesystem hints POSIX_FADV_RANDOM and POSIX_FADV_SEQUENTIAL
Published: (Updated: ) by . Leave a Comment on Using fio to read from Linux buffer-cache.
Sometimes we want to read from the Linux cache rather than the underlying device using fio. There are couple of gotchas that might trip you up. Thankfully fio provides the required work-arounds. TL;DR To get this to work as expected (reads are serviced from buffer cache) – the best way is to use the option […]
Published: (Updated: ) by . Leave a Comment on Understanding QEMU devices.
Not sure where I came across this, but it is an excellent description of QEMU (and virtualization in general). I am very much a fan of this style of technical communication as exemplified in this final summary paragraph (the full article is longer): In summary, even though QEMU was first written as a way of […]
Published: (Updated: ) by . 1 Comment on Using Prometheus and Grafana to monitor a Nutanix Cluster..
Using a small python script we can liberate data from the “Analysis” page of prism element and send it to prometheus, where we can combine cluster metrics with other data and view them all on some nice Grafana dashboards.
Published: (Updated: ) by . Leave a Comment on A Nutanix / Prometheus exporter in bash.
Overview For a fun afternoon project, how about a retro prometheus exporter using Apache/nginx, cgi-bin and bash!? About prometheus format A Prometheus exporter simply has to return a page with metric names and metric values in a particular format like below. When you configure prometheus via prometheus.yml you’re telling prometheus to visit a particular IP:Port […]
Published: (Updated: ) by . Leave a Comment on Linux memory monitoring (allocations Vs usage).
How to use some of Linux’s standard tools and how different types of memory usage shows up. Examples of using malloc and writing to memory with three use-cases for a simple process In each case we run the example with a 64MB allocation so that we can see the usage from standard linux tools. We […]
Published: (Updated: ) by . 2 Comments on Using iperf multi-stream may not work as expected.
Running iperf with parallel threads TL;DR – When running iperf with parallel threads/workers the -P option must be specified after the -c <target-IP> option. This is mentioned in the manpage but some options (-t for instance) work in any order, while others (specifically the -P for parallel threads) definitely does not, which is a bit […]
Published: (Updated: ) by . Leave a Comment on mpstat has an option to show utilization per NUMA node.
Not sure how long this has been a thing, but I recently discovered that mpstat takes a -N option for “NUMA Node” that works in the same way as -P for “Processor”. e.g. $ mpstat -N 0,1 1 will show stats for NUMA nodes 0 and 1 every 1 second. Just like mpstat -P ALL […]
Published: (Updated: ) by . Leave a Comment on Running the ML-Perf Storage benchmark on Nutanix files..
Some technical notes on our submission to the benchmark committee. Background For the past few months engineers from Nutanix have been participating in the MLPerftm Storage benchmark which is designed to measure the storage performance required for ML training workloads. We are pleased with how well our general-purpose file-server has delivered against the demands […]
Published: (Updated: ) by . Leave a Comment on Viewing Nutanix cluster metrics in prometheus/grafana.
Using Nutanix API with prometheus push-gateway. Many customers would like to view their cluster metrics alongside existing performance data using Prometheus/Grafana Currently Nutanix does not provide a native exporter for Prometheus to use as a datasource. However we can use the prometheus push-gateway and a simple script which pulls from the native APIs to get […]
Published: (Updated: ) by . Leave a Comment on Effects of CPU topology on sqlserver guests with AHV..
VM CPU Topology The topology (layout) that AHV presents virtual Sockets/CPU to the guest operating system will usually be different than the physical topology. This is expected because we typically present a subset of all cores to the guest VMs. Usually it is the total number of vCPU given to the VM that matters, not […]
Published: (Updated: ) by . Leave a Comment on fio versions < 3.3 may show inflated random write performance.
TL;DR If your storage system implements inline compression, performance results with small IO size random writes with time_based and runtime may be inflated with fio versions < 3.3 due to fio generating unexpectedly compressible data when using fio’s default data pattern. Although unintuitive, performance can often be increased by enabling compression especially if the bottleneck […]
Published: (Updated: ) by . 1 Comment on Specifying Drive letters with fio for Windows..
fio on Windows Download pre-compiled fio binary for Windows Example fio windows file, single drive This will create a 1GB file called fiofile on the F:\ Drive in Windows then read the file. Notice that the specification is “Driveletter” “Backslash” “Colon” “Filename” In fio terms we are “escaping” the : which fio traditionally uses as […]
Published: (Updated: ) by . Leave a Comment on Hunting for bandwidth on a consumer NVMe drive.
The Samsung SSD 970 EVO 500GB claims a sequential read bandwidth of 3400 MB/s this is a story of trying to achieve that number.
Published: (Updated: ) by . Leave a Comment on Database sizes for HammerDB TPC-C/ SQLserver.
The on disk size for small DB sizes. Taken from SQLserver properties immediately after creating the TPC-C like schema in HammerDB and then using server and then using Tasks->Shrink->Database. Warehouse Count Database size 10 826 MB 100 8,057 MB
Published: (Updated: ) by . Leave a Comment on How to monitor SQLServer on Windows with Prometheus.
TL;DR