FreeBSD vs. Linux – Tracing and Troubleshooting

When troubleshooting a Linux or FreeBSD system, you need to be able to probe the system to find answers as to why it is behaving in a particular way. In this article, we’ll provide an overview of some of the basic tools and introduce the FreeBSD equivalents of common Linux tracing and troubleshooting tools.

Controlling Resource Limits with rctl in FreeBSD

As an administrator, you may often need to limit the amount of system resources an individual uses. FreeBSD provides several methods to do just that. The rctl command can be used to provide an effective method for controlling resource limits or it can be used to set resource constraints on processes and jails. Find out how to configure and enforce your limits.

The FreeBSD Boot Process

Let’s talk about the FreeBSD boot process. It is very robust and complex, as it is well-thought. Find out what are the differences when you boot from UEFI or legacy BIOS, or from GPT and MBR partitioning schemes. Learn what happens when you use ZFS or UFS filesystem.

Using FreeBSD’s pkg audit to Investigate Known Security Issues

Keeping systems secure and free of any vulnerabilities is an important task in any sysadmin’s or developer’s book. Fortunately, FreeBSD systems come with several tools to accomplish that task for both its Base System and installed 3rd party packages.
In this article, we will take a look at how these tools can help us efficiently manage security vulnerabilities in our FreeBSD systems

Explaining top(1) on FreeBSD

We all know and have at least once used the top(1) command on FreeBSD to track information about our cpu and processes, but how many of you know what each field means? By default, top(1) displays the ‘top’ processes on each system and periodically updates this information every 2.0 seconds using the raw cpu use percentage to rank the processes in the list.
This article will give you some insight on how to better understand top (1).

Using the FreeBSD RACK TCP Stack

Did you know that FreeBSD has more than one TCP stack and that TCP stacks are pluggable at run time? Since FreeBSD 12, FreeBSD has support pluggable TCP stacks, and today we will look at the RACK TCP Stack. The FreeBSD RACK stack takes this pluggable TCP feature to an extreme: rather than just swapping the congestion control algorithm, FreeBSD now supports dynamically loading and an entirely separate TCP stack. With the RACK stack loaded, TCP flows can be handled either by the default FreeBSD TCP stack or by the RACK stack.

FreeBSD TCP Performance System Controls 

While new protocols are constantly being developed, the venerable Transmission Control Protocol (TCP) still accounts for most global traffic. The FreeBSD kernel TCP stack offers a lot of opportunities to tweak different performance features. The options it includes allow a lot of flexibility in the configuration of machines without having to do custom kernel builds.
Find out how to make use of the Initial Window, what the TCP Segment OffLoad is, and how to use TCP Buffer Tuning to your advantage.

DTrace Network Probes

DTrace landed in FreeBSD 7.1 in 2009. DTrace is an observability framework that enables dynamic tracing of programs, and the FreeBSD Kernel. It offers an incredible view into the operation of programs, and is an excellent tool for debugging and performing analysis of complex software. Using the full power of FDT probes requires familiar knowledge with how things are implemented. SDT probes and specific providers like ip, tcp and udp offer insights into the internal behavior of the kernel without requiring a high level of knowledge of the underlying code.