Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
utils nano /tmp/filename

 

~/.bashrc file

The ~/.bashrc file is like the LOGIN.COM on VMS.  You should already have one.  But it's a "hidden" file (because it starts with a dot).   You can edit the file with nano with:

Code Block
cd ~
utils nano /tmp/.bashrc

Tuning Tools

Free

The free command displays information about both the physical and swap memory; free also includes buffer information.  This can give a quick view of memory usage on the system.  There are a few options used for the display of memory.  For example, -m displays the memory in megabytes.  The -h option will display it in more "human readable" format.  To show a total line, use the -t option. To display a specific number of times, use the -c option (this requires the -s option). The -s seconds option will continuously display the result seconds apart (this one requires a specific seconds parameter). Note that the -s option does not appear to work in Ubuntu 16.04 (there is a workaround using -c), but does work in earlier versions. This is a reported bug. 

Options can be used together.  Examples:

Code Block
root@ssdt-docker-dev-09:~# free -m
              total        used        free      shared  buff/cache   available
Mem:           7978        1227        1758          45        4992        6407
Swap:          1019           0        1019

root@ssdt-docker-dev-09:~# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.8G        1.2G        1.7G         45M        4.9G        6.3G
Swap:          1.0G          0B        1.0G

root@ssdt-docker-dev-09:~# free -t
              total        used        free      shared  buff/cache   available
Mem:        8170172     1256704     1800888       46760     5112580     6561876
Swap:       1044476           0     1044476
Total:      9214648     1256704     2845364

root@ssdt-docker-dev-09:~# free -th
              total        used        free      shared  buff/cache   available
Mem:           7.8G        1.2G        1.7G         45M        4.9G        6.3G
Swap:          1.0G          0B        1.0G
Total:         8.8G        1.2G        2.7G

##-s with workound using -c - this will stop after displaying 3 times, 10 seconds apart

root@ssdt-docker-dev-09:~# date
Fri Aug 11 08:00:03 EDT 2017

root@ssdt-docker-dev-09:~# free -hc 3 -s 10
              total        used        free      shared  buff/cache   available
Mem:           7.8G        1.2G        1.7G         45M        4.9G        6.3G
Swap:          1.0G          0B        1.0G

              total        used        free      shared  buff/cache   available
Mem:           7.8G        1.2G        1.7G         45M        4.9G        6.3G
Swap:          1.0G          0B        1.0G

              total        used        free      shared  buff/cache   available
Mem:           7.8G        1.2G        1.7G         45M        4.9G        6.3G
Swap:          1.0G          0B        1.0G

root@ssdt-docker-dev-09:~# date
Fri Aug 11 08:00:28 EDT 2017

Top

The top command in Ubuntu is used to monitor processes.  See this link for more information on the top command.

Note
Some terminal emulators don't provide the proper cursor motion keys.  The following is taken from the link referenced above. With Cygwin, my experience is that the second key combination (alt + k for UP example) works
              key      equivalent-key-combinations
              Up       alt + \      or  alt + k
              Down     alt + /      or  alt + j
              Left     alt + <      or  alt + h
              Right    alt + >      or  alt + l (lower case L)
              PgUp     alt + Up     or  alt + ctrl + k
              PgDn     alt + Down   or  alt + ctrl + j
              Home     alt + Left   or  alt + ctrl + h
              End      alt + Right  or  alt + ctrl + l



How to add another column to the top command results

In this example, we add Swap to the list.  Original top command

Image Added


Press "f" to go into format mode

Image Added

Use alt + j (or down key) to get to SWAP

Image Added

Select it with d (note you can also deselect using d)

Image Added


To select it for moving, use alt + l (or right)

Image Added


Use alt + k to move it up (or the up key)

Image Added

To commit, press enter (or alt + h or the left key)

Image Added

Press q to quit the format mode.  Top now looks like this:

Image Added

If you want top to use this configuration the next time it is used, press W to write (uppercase W).

Apply a filter to top

To apply a filter, enter a lower case letter o to bring up the filter dialog. then filter on COMMAND=java for example.  Note the filter is just for the current session; it does not "stick" for the next time.

Image Added


Result:

Image Added

Finding a specific Docker container PID

The top command lists statistics and other per PIDs.  When trying to monitor system issues, it can be beneficial to know specific processes associated with docker containers. Use this command:

Code Block
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}'

Example Result

Code Block
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}'
5673, /uat1_usasapp_1
5544, /uat1_usasdb_1
4803, /proxy_proxy_1
4567, /proxy_index-gen_1
4706, /proxy_index_1

Major/Minor Page Faults - Monitoring

Without going into a lot of detail it is sufficient to say that major/minor page faults can be a good indicator of how the system is performing and, more specifically, where the system is retrieving data from that are required for processes.  Major page faults occur when a process makes a request to the system for a resource that is not available in shared memory.  Therefore, the disk must be read and the information loaded from storage.  In contrast, the minor page fault is when a process makes a request to the system for a resource that it doesn't yet have a reference to but is already available in shared memory.  Access to this data is much faster because the information is already loaded into memory and simply needs to be made available to the process.  More information on this can be found at the following link:

Understanding page faults and memory swap-in/outs: when should you worry?

One useful command to examine major/minor page faults on a Linux system using the ps command is the following:

Code Block
ps -eo min_flt,maj_flt,cmd

This command leverages the ps command's support for field selection to display major/minor fault counts for a specific command/process.

Swappiness

Swappiness is how often the swap file is used.  If it is set to zero, there will be no swapping unless the system runs out of memory.  If it's set at 100, programs will be swapped to disk almost immediately.  Swappiess is expressed as a percent of the memory.  When using higher memory systems, it is generally a good idea (depending on the types of programs/processes running on the server) to reduce swappiness and thus reduce swapping to the disk. The default setting for swappiness on Ubuntu is 60.  With a high memory system, you may want to adjust this as low as 10. For more details on swappiness, see here.  Due to the high memory availability, we changed the swappiness to 10.

Check Swappiness:

Code Block
cat /proc/sys/vm/swappiness

Change Swappiness

Generally, change the setting live, and once that appears to be working as expected, make the permanent change. 

Live:

To change the swappiness on the system and have it take effect immediately

Code Block
sysctl vm.swappiness=10

Permanent - keeps it on reboot

To ensure the swappiness does not revert to the default value on reboot, edit the /etc/sysctl.conf file and add this line:

vm.swappiness = 10

Miscellaneous

Linux is case sensitive, including commands and filename.  Also, most linux terminals use auto complete.  This can be quite a time savings when you don't remember the exact name of the file.