Over the last two posts in this series, I’ve looked at performing simple load-tests against a Cassandra server, and using Linux monitoring tools to observe how the server process is utilising system CPU resources.
When pushing a client/server architecture towards its throughput limits, there is another possible bottleneck that is worth investigating: the network layer.
Before looking at whether there is a problem in this area, here’s a quick recap of how packet-receipt works in the Linux operating system.
When a network packet arrives, it is added to the network device’s receive (Rx) ring-buffer, and an interrupt is raised on the CPU associated with that ring-buffer. …
A relational database management system, otherwise known as RDBMS, is a huge part of what happens in the cloud. This data management system is based on the relational model. It is one of the primary database models in widespread use today.
Relational databases in general are structured to recognize relations among stored items of information. They are easy to extend (i.e., add a new data category) without having to modify all existing applications. Each relational database is structured around a set of tables containing data crammed into predefined categories.
This structure is essential for relational databases. Each table is an element of a relation to some other data. It holds one or more data categories in columns. Each row uses an unique data instance for the categories defined by the columns. …
First, you need to understand that Puppet manages dozens to thousands of servers by providing configuration management services with a client/server approach. Your managed servers, called Puppet agents, get their configuration profiles from the Puppet master.
Databases have long been an important part of your average architecture and arguably the most important. These days the trend has moved toward most parts of your infrastructure being disposable and stateless, which puts an even greater burden on your database to be both reliable and secure, since all of the other servers inevitably store stateful information along with the rest of their data in the database.
Your database is the jackpot that every attacker aims to capture. …
NixOS could be just the distro technology upgrade you have been waiting for. It is both rigorous and flexible to meet every user-case scenario.
You may not yet be using Linux to drive your computing needs. You do know that the Linux OS — both workstation and server — are driving today’s computing technologies in and out of the cloud, right?
Even if you are already using a Linux distribution, you should check out NixOS. This relatively new Linux distro takes a different approach than traditional Linux OSes.
Perhaps its most intriguing design attribute is a unique method NixOS uses to handle package management and configuration. The entire system, which has a GNU/Linux foundation, is built on top of the Nix Package Manager. …
In the first post in this series, I walked through the steps involved in setting up a load test of the Cassandra in-memory database. The load test was extremely simple, and comprised a single-server, single-client configuration.
At the end of the article, I showed that (unsurprisingly) as throughput plateaued towards a maximum, while the average request latency remained fairly constant, the long-tail of the latency profile started to increase.
At 60,000 writes per second, the 99.9th percentile latency was around 100 milliseconds, meaning that around 60 requests per second are taking 100ms or longer. The average latency at this request rate was a respectable 10ms, so it is clear that when measuring system responsiveness, it is necessary to consider the outliers rather than relying on the average as an indicator of performance. …
By Steven J. Vaughan-Nichols
Today’s quiz is: What’s the most popular database of all? MySQL? Nope. Oracle Database? Nah. Microsoft SQL Server? Try again. IBM DB/2? Wrong. Arguably the most popular database of all is SQLite.
Never even heard of it? Find that hard to believe? SQLite’s inside every smartphone, macOS and Windows; and the Chrome, Firefox, and Opera web browser. The reason you haven’t heard of it is because it’s hidden inside the code of numerous operating systems and programs. There, the SQLite C library provides database services for applications.
This public-domain — not open-source — software is not a database server. Instead, embedded within programs, it provides standard SQL-92 database management server (DBMS) servers without the server part. …
By Jack M. Germain
The Linux kernel is the foundation for countless IT environments among thousands of organizations. As these organizations transition to computing in the cloud, they just assume the process will work out of the box.
Once they start moving to the cloud and take with them the new technologies surrounding Linux containers, they find getting from Point A to Point C involves dealing with present-day realities. That may be something nobody ever told them.
Expectations are that containers in the cloud always “just work.” The reality is, both containers and the cloud are still works in progress. …
HashiCorp’s utility creates and maintains portable, virtual, software-development environments, plays nice with Chef and Puppet, and can serve as configuration manager, among its many features.
The good news is we now have more development tools than ever. The bad news is we now have more development tools than ever. And, worse still, we need to use different tool sets for every darn project.
How do you manage to keep your development environment and kit together for each project without losing your mind? One great way is with HashiCorp’s Vagrant.
Vagrant is an open-source program for developers. It’s designed to create and maintain portable, virtual, software-development environments. …
Welcome to the first in a short series of posts describing how to configure and load test an instance of Apache’s popular, open-source, in-memory database, Cassandra. For those who have not come across it before, Cassandra is a horizontally-scalable NoSQL store, designed to be run in large, fault-tolerant clusters.
In this installment, I will work through the process of deploying a single instance of the Cassandra server, and then run a load test against it. I will then present and analyze the results of the load test to determine what sort of performance can be expected from an out-of-the-box install.
Later posts will explore how to use the state-of-the-art Linux performance monitoring tools to observe the server instance as the load test runs. …