Blog

How SAR command work in LINUX VPS

SAR stands for System Activity Report, as its name suggests command is used to collect, report & save CPU, Memory, and I/O usage in Unix an operating system. The SAR command produces the reports on the fly and can also save the reports in the log files as well.

This article explains how to install and configure the sysstat package (which contains the SAR utility) and explains how to monitor the following Linux VPS performance statistics using SAR.

How to install SAR in LINUX?

1. Install Sysstat Package

First, make sure the latest version of SAR is available on your system. Install it using any one of the following methods depending on your distribution.

1

Note: Make sure to pass the option –enable-install-cron. This does the following automatically for you. If you don’t configure sysstat with this option, you have to do this ugly job yourself manually.

Creates /etc/rc.d/init.d/sysstat

2

2. Once installed, verify the SAR version using “SAR -V”

Finally, make sure SAR works. For example, the following gives the system CPU statistics 3 times (with 1 second interval).

3
4

3. Collect the SAR statistics using cron job – sa1 and sa2

/usr/local/lib/sa/sa1

This runs every 10 minutes and collects SAR data for historical reference.

If you want to collect SAR statistics every 5 minutes, change */10 to */5 in the above /etc/cron.d/sysstat file.

This writes the data to /var/log/sa/saXX file. XX is the day of the month. saXX file is a binary file. You cannot view its content by opening it in a text editor.

5

/usr/local/lib/sa/sa2

This runs close to midnight (at 23:53) to create the daily summary report of the SAR data.

5

sa2 creates /var/log/sa/sarXX file (Note that this is different than the saXX file that is created by sa1). This sarXX file created by sa2 is an ASCII file that you can view in a text editor.

4. Linux 2.6.32-431.e16 – Linux kernel version of the system.

01/18/2017 – The date when the SAR data was collected.

_x86_64_ – The system architecture.

(2 CPU) – Number of CPUs available on this system. On multi-core systems, this indicates the total number of cores.

1.

CPU Usage of ALL CPUs (SAR -u)

6

This gives the cumulative real-time CPU usage of all CPUs. “1 5” reports for every 1 second a total of 5 times. Most likely you’ll focus on the last field “%idle” to see the CPU load.

2.

CPU Usage of Individual CPU or Core (SAR -P)

7

If you have 4 Cores on the machine and would like to see what the individual cores are doing, do the following.

3.

Memory Free and Used (SAR -r)

8

This reports the memory statistics. “1 5” reports for every 1 second a total of 5 times. Most likely you’ll focus on “kbmemfree” and “kbmemused” for free and used memory.

Following are a few variations:

4.

Swap Space Used (SAR -S)

This reports the swap statistics. “1 5” reports for every 1 second a total of 5 times. If the “kbswpused” and “%swpused” are at 0, then your system is not swapping.

Following are a few variations:

5.

Overall I/O Activities (SAR -b)

9

This reports I/O statistics. “1 5” reports for every 1 second a total of 5 times.

The following fields are displays in the example below:

tps –

Transactions per second (this includes both read and write).

rtps –

Read transactions per second.

wtps –

Write transactions per second.

bread/s –

Bytes read per second.

bwrtn/s

Bytes written per second.

Following are a few variations:

6.

Individual Block Device I/O Activities (SAR -d)

To identify the activities by the individual block devices (i.e a specific mount point, LUN, or partition), use “SAR -d”

10

Following are a few variations:

7.

Report network statistics (SAR -n)

This reports various network statistics. For example, the number of packets received (transmitted) through the network card, statistics of packet failure, etc., “1 5” reports for every 1 second a total of 5 times.

KEYWORD can be one of the following:

DEV –

Displays network devices vital statistics for eth0, eth1, etc.

EDEV –

Display network device failure statistics.

NFS –

Displays NFS client activities.

NFSD –

Displays NFS server activities.

SOCK –

Displays sockets in use for IPv4.

IP –

Displays IPv4 network traffic.

EIP –

Displays IPv4 network errors.

ICMP –

Displays ICMPv4 network traffic.

ICMP –

Displays ICMPv4 network errors.

This reports the total number of processes created per second, and the total number of context switches per second. “1 5” reports for every 1 second a total of 5 times.

8.

Reports run queue and load average (SAR -q)

This reports the run queue size and loads an average of last 1 minute, 5 minutes, and 15 minutes. “1 5” reports for every 1 second a total of 5 times.

By using the SAR command we can find out the performance status of the server.

Conclusion

Still confused how SAR command work in LINUX VPS? Contact Ideastack now!

Frequently Asked Questions

Q1. What is sar command used for?

The sar command can be used to keep track of a variety of system resources on a Linux system, including CPU and memory usage, file system performance, I/O device consumption, network monitoring, disk usage, process and thread allocation, battery life, plug-and-play device performance, and more.

Q2. How does sar collect data?

Using SAR, gathering, and reporting resource data requires two steps. The first step is to collect test data and save it as a binary file. In the second step, extract the desired data into a text (.txt) report.

Q3. Where are sar files stored?

The term “sar” refers to “system activity report,” and it can be configured to automatically generate daily reports, display current performance, or deliver reports based on log files kept in the /var/log/sa (or /var/log/sysstat) folder on your system.

How to change process priority using Linux Nice and Renice

In a Linux system, there are hundreds of processes, that are continuously running different tasks. Linux Kernel does a fantastic job of mediating between these processes and allotting CPU to these processes.

Every running process in Linux has a priority assigned to it. We can change the process priority using nice and renice utility.

With the help of the Nice command in Linux, you can set process priority. If you give a process a higher priority, then Kernel will allocate more CPU time to that process.

The Nice command will launch a process with a user-defined scheduling priority. Renice command will modify the scheduling priority of a running process. Linux Kernel schedules the process and allocates CPU time accordingly for each of them.

The process scheduling priority range is from -20 to 19. We call this a nice value.

A nice value of -20 represents the highest priority, and a nice value of 19 represents the least priority for a process.

Follow the below process to increase the priority of any process:

1.

Login into your Linux system via user name and password, and enter the # top command.

Cheap Linux VPS 1

After hitting enter you will get output like the above screen, in that NI means Nice Value of a particular process.

2.

We can set the NI value of any process or command in 2 ways.

a)

In the output of the # top command, just enter ” r ”, and we get the screen like the one below:

By default when a program is launched in Linux, it gets launched with the priority of ‘0’. However, you can change the priority of your service yourself.

Cheap Linux VPS 2.a1

Simply just put the PID of any process or the PID of that process in which you want to increase the priority. Hit enter after putting PID.

Cheap Linux VPS 2.a2

It will ask for Renice value, see the above screen. put the value priority range from -20 to 19. We call this a nice value. A nice value of -20 represents the highest priority, and a nice value of 19 represents the least priority for a process.

After putting the renice value, the process priority will change according to the NI value.

Check the NI column after purring renice value of any process, see below screen.

Cheap Linux VPS 2.a3

In the above screen, the PID of kthreadd is 2 and its nice value has been changed to -10, which means now it has higher priority among then all processes, which is running under a Linux system.

We can also set the NI nice value of any process like httpd, java, MySQL, FTP, or sshd to make that service perform fast.

b)

We can set NI via another way, by using the simple below command.

After the top command, do the below step to increase the performance of any service, or process.

# nice -10 httpd

The above command will set the NI value of the httpd service to 10, which means it has lower priority among all the running processes under the Linux system.

# nice –10 httpd

The above command will set the NI value of the httpd service to -10, which means it has the highest priority, we can increase this value to -20, A nice value of -20 represents the highest priority.

Conclusion

Still, confused about how to change process priority using Linux nice and renice? Contact Ideastack now.

Frequently Asked Questions

Q1. What is nice in Linux?

Nice is a program that may be found on Unix and Unix-like operating systems like Linux. It corresponds straight to the same-named kernel call. Nice is used to call a utility or shell script with a specific CPU priority, allowing the process to receive more or less CPU time than other processes.

Q2. What is nice value?

The process’s priority is determined by the value. The process is considered to be “nicer” than other processes the higher the value, the lower the priority. On Linux workstations, the nice value by default is set to 0. The size of the process in memory is shown in the SZ field.

Q3. What is nice and renice in Linux?

The nice command sets the priority of a Linux process before it runs. It is not possible to change the priority after it has been established using the nice command. In this case, you can use the renice command. With the renice command, the priority of an active process can be modified.