Recent Changes - Search:

Home Page



Other tools


edit SideBar

CompilingNmon

Site.CompilingNmon History

Hide minor edits - Show changes to markup

April 20, 2017, at 04:28 PM by 127.0.0.1 -
Changed line 24 from:

2) Fixed bug reported by large scale NFS user with NFS automount in data capture mode (probably effects online view too).\\

to:

2) Fixed bug reported by large scale NFS user with NFS automount in data capture mode (probably effects online view too).\\

April 20, 2017, at 04:15 PM by 127.0.0.1 -
Added lines 22-32:
lmon16g.cNew function and bug fixes (19th May 2016):
1) Missed by one bug fixed so you can get to all 192 physical CPU cores with SMT=8 (for POWER8 servers) - We have customers with this size servers running Linux.
2) Fixed bug reported by large scale NFS user with NFS automount in data capture mode (probably effects online view too).
-- Fixed by endfsent() changed to endmntent(). Neither return a success or fail code so hard to find!
-- "Belt and braces" incase the above does not fix the automount problem for capture data mode the command line option of -J will completely switch off Journal File System stats collection.
3) Online view: Remove File systems that are "not real" to reduce screen space
-- Switch on JFS stats view with "j" then use "J" to remove the fake systems - j and J independent toggle.
-- Removed file systems are: /proc, /sys, /run, /dev, /var/lib/nfs/rpc - on small PC/servers this can remove 12 to 16 lines.
-- Might remove other file system like "zero size" in next update - contact me with ideas.
4) Online view: Small clean up of the titles for the Memory stats (m)
5) Removed some comments with example out from some commands
May 20, 2016, at 10:59 AM by 127.0.0.1 -
May 20, 2016, at 10:53 AM by 127.0.0.1 -
Changed line 16 from:
  • Released 7th April 2016 - Major update at the Sourceforge nmon for Linux project
to:
  • Released 7th April 2016 - Major update. If not here then Sourceforge playing games again, get it directly from Sourceforge nmon for Linux project
May 20, 2016, at 10:52 AM by 127.0.0.1 -
Changed lines 23-24 from:

1) On-screen Top Process stats the count of the number of running processes now works again. See top line Procs=321
2) On-screen Top Process starts (after user feedback) has been colourised''' in to related columns in all its modes \\

to:

1) On-screen Top Process stats the count of the number of running processes now works again. See top line Procs=321
2) On-screen Top Process stats (after user feedback) has been colourised in to related columns in all its modes \\

May 20, 2016, at 10:51 AM by 127.0.0.1 -
Changed lines 23-24 from:

1) On-screen Top Process stats the count of the number of running processes now works again. See top line Procs=321
2) On-screen Top Process starts (after user feedback) has been colourised in to related columns in all its modes \\

to:

1) On-screen Top Process stats the count of the number of running processes now works again. See top line Procs=321
2) On-screen Top Process starts (after user feedback) has been colourised''' in to related columns in all its modes \\

Changed line 30 from:

3) Full Disk stats - started with capital D is now in colour too. ||

to:

3) Full Disk stats - started with capital D is now in colour too. ||

May 20, 2016, at 10:48 AM by 127.0.0.1 -
Changed lines 15-16 from:

Current Version 16e

  • Released 7th April 2016 - at the Sourceforge nmon for Linux project
to:

Current Version 16e and 16f

  • Released 7th April 2016 - Major update at the Sourceforge nmon for Linux project
  • Released 17th May 2016 - Minor update for the on-screen mode only - I would not upgrade from 16e, if your primary use is data capture.
Changed lines 22-31 from:
lmon16e.cNew function and bug fixes (7th July 2016): \\
to:
lmon16f.cNew function and bug fixes (19th May 2016):
1) On-screen Top Process stats the count of the number of running processes now works again. See top line Procs=321
2) On-screen Top Process starts (after user feedback) has been colourised in to related columns in all its modes
* mode 1 - In CPU order the process PID, parent PID, Nice, priority, faults, F= Foreground (attached to a terminal) and command
* mode 3 - normal CPU order view with process CPU, program on disk Size, process in memory sizes, faults and command
* mode 4 - as 3 but in memory size order
* mode 5 - as 3 but in I/O order include read/write stats - Note: only work if you are root due to wacko file permissions in /proc
* mode u - this lists lots more details of the actual command line i.e. the arguments
3) Full Disk stats - started with capital D is now in colour too.
lmon16e.cNew function and bug fixes (7th April 2016): \\
April 25, 2016, at 10:13 PM by 127.0.0.1 -
Changed lines 1-2 from:

nmon for Linux - Compiling the Source Code

to:

nmon for Linux - Compiling from the Source Code

Changed lines 5-15 from:

nmon is pretty simple to compile - the whole thing takes no more than 3 minutes, if you have your Distro OS DVD media online:

  1. Download the latest source code (it is just one file named lmon<version>.c) and the makefile
  2. Install the GCC C Compiler, ncurses development library and (if its not already available)also install the make command
  3. Hard link the latest C source code file to the filename lmonm.c (lmon.c is used in the makefile)
  4. Edit the makefile to find your platform, OS and version in the makefile or make a new one stanza for a new Distro version
  5. Run make and you have a new version in roughly 4 to 10 seconds. Ready to run.

For action 1: Download the nmon code file and the makefile

Just click on the link below to open in a different Tab and wait 10 seconds. The download should continue automatically. Ignore all the horrible adverts and deliberately confusing screen messages. I suspect lots of those links will download viruses, malware and worse.

to:

nmon is pretty simple to compile - the whole thing takes no more than 3 minutes if you have your distro OS DVD media online:

  1. Download the latest source code (it is just one file names lmon<version>.c) and the makefile
  2. Install the GCC C Compiler, ncurses development library and (if its not already available) Install the make command
  3. Hard link the latest C source code file to the filename lmon.c (lmon.c is used in the makefile)
  4. Edit the makefile to find your platform, OS and version in the makefile or make a new one
  5. Run make and you have a new version in roughly 4 seconds. Ready to run.

For action 1: Just click on the link below to open in a different Tab and wait 10 seconds. The download should continue automatically. Ignore all the horrible adverts and deliberately confusing screen messages. I suspect lots of those links will download viruses, malware and worse.

Current Version 16e

  • Released 7th April 2016 - at the Sourceforge nmon for Linux project
Changed lines 20-30 from:
Download FileComments
lmon16d.cNew Features:
Source code re-indented.
Fixes for Welcome screen on Mainframe
Fixed for Curses handling when collecting data to file - big bug for main frame and x86.
26th Jan 2016
lmon16b.cNew Features: Added 3 times now due to Sourceforge errors
1) The previous nmon 16a's "Z experiment" was finished but now for detailed Utilisation use Online "U" (for CPU Utilisation stats)
* or for capture to file -U and look for the CPUUTIL lines in the output file
Instead of the classic UNIX four categories: User, System, WaitIO and Idle - we find Linux now has ten categories
* user, user_nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice. \\
to:
Download FileComments
lmon16e.cNew function and bug fixes (7th July 2016):
1) Boottime shown online in the Kernel "k" panel
like: 02:35 PM 12-Jan-2016 and in the nmon file as AAA,boottime,02:35 PM 12-Jan-2016
2) Utilisation stats: /proc/stat now reports 10 Utilisation stats including KVM guest VM CPU use = cool.
But Guess what? ALL 10 don't add up to 100% and it is not documented.
KVM guest CPU use is reported in the KVM host total User and Kernel time (guest virtual machines are seen
as user processes) AND reported separately in addition in the guest and guest_nice values.
Fixed the reporting of these numbers online but still learning.
The nmon file reports just the stats so you have to realise which add up to 100%
3) Bug caused Seg Faults core dumps fixed while collecting to a file including top process stats.
Fix: Improved memory handling for extreme numbers of processes (1000's) or rapid exec of processes
(100's in a millisecond) for large Linux servers. We have examples on Intel of 80 CPU cores and POWER 160+
4) Online Dot "." command no longer also changes what is displayed as users said it was confusing.
You switch on Top processes "t" and disks "d" then if you type dot "." then processes or disks doing
nothing are filters out.
5) Minor online start-up flash screen text changes to include C concise CPU stats and U for full
Utilisation stats (all 10 of them)
6) Some people what nmon data to be written on the standard output stream instead of a file.
To do this use:
nmon -F stdout <followed by your regular options>
like
./nmon-F stdout -s1 -c 10 -U| grep CPUUTIL_ALL
Warning: this is a little experimental as nmon still closes stdin and stderr streams which can
cause pipe issues with specific commands. Feedback welcome.
7) Copyright and GPL v3 notice in the code plus online "h" and nmon -h output
lmon16d.cTiny Changes:
a) fix to online Welcome screen + added Mainframe details
b) fix to curses handling that caused one distro on one platform to core dump
lmon16c.cTiny Changes:
a) adding back the SccsId by popular demand
b) adding #ifdef ARM for Raspberry Pi2 - even runs Ubuntu Mate now
c) running indent -kr -l200 to improve readability
lmon16b.cNew Features:
1) The previous nmon 16a's "Z experiment" was finished but now use On-screen Utilisation "U" (for CPU Utilisation stats)
or for capture to file -U and look for the CPUUTIL lines in the output file
Instead of the classic UNIX User, System, IO-Wait and Idle - we find Linux now has ten categories
which are user, user_nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice. \\
Changed lines 60-62 from:

2) Older nmon code and stats maintains the classic values by adding stats together as follows:
as User (includes nice), System (includes irq & softirq & guest & guest_nice), IO-Wait and Idle but some online graphs show Steal.
3) On screen Kernel stats layout was improved \\

to:

2) Older code and stats maintains the classic values as User (includes nice), System (includes irq & softirq & guest & guest_nice),
IO-Wait and Idle but some online graphs show Steal.
3) On-screen Kernel stats layout was improved \\

Changed line 73 from:

5) Z experiment mode showing CPU interrupts - Renamed U stats in version 16b - online only \\

to:

5) Z experiment mode showing CPU interrupts - more to come in version 16b - online only \\

Changed line 79 from:

11) makefile - large improvement for hardware platforms and Linux versions\\

to:

11) makefile - large improvement for hardware platforms and Linux versions \\

Changed lines 82-94 from:
lmon15h.cVersion 15h - 11th August 2015 - tiny typo fix for clean compile on RHEL
lmon15g.cVersion 15g - 27th July 2015
Window management change to remove odd left-over characters
Added code for TOP processes order by disk I/O (needs root access)
Reduce file capture time drifting
lmon15f.cVersion 15f - 9th July2015
User Defined Disk Groups automatically make the file with just the disks : nmon -g auto
Use -D for extra disk stats and Disk backlog - use with -g auto
lmon15e.cThis is the current source code beta version 15e - 5th May 2015
Change file system stats to match df output (allow for root user reserved space)
lmon15d.cVersion 15d - 14th April 2015
Added AAA,steal,1 line to nmon files to easily workout if CPU steal stats are present.
makefileUsed to compile nmon
to:
lmon15g.c1) Reduced time drift
In data capture mode, zero time drift due to nmon compute time - nmon own CPU time is tracked and accumulated
even if knocked off the CPU while running. Once over a second the next inter-snapshot sleep time is reduced.
Thanks to Sergei Rodionov but 10 seconds in 5 hours was pretty good but not good enough for Sergei :-)
2) New Function Top process ordered by storage I/O
Top processes stats now supports mode 5 = reordering on storage I/O by each process.
The Page faults also gets changed to show the storage stats. Unfortunately, /proc/PID/io has permissions "r------" so
it is only readable by the process owner and root. So nmon limits this to root user only.
I think this is a Linux /proc bug that needs fixing!
So if the root user, type 5 and
Faults
Min Maj
now changes to
StorageKB
Read Write
and the output is ordered on the total of these columns. Thanks to David Braun for the reminder.
3) Reduction of screen artefacts
Reordering screen output cursor function, mode the welcome screen to a pad and coloured red the new CPU details.
Fingered crossed - no more old output characters showing as you change modes etc.
Most often seen in Top Processes mode: "u" = show user command and "." show only running processes.
Thanks to David Braun pointing out the issue.
13th July 2015
lmon15f.cNew Function stop disk stats duplication
Added -g auto option to create a User Define Disk Group file called "auto" this takes lsblk| grep disk output
for a disk to disk map excluding disk partitions. This stops disk stats and partition stats duplication.
With this online looking at disk stats, hit "G" and the partition disappear.
With this saving to a file -g auto or regular -g file then you have -D for extra User Disk Group stats:
like disk wait time & disk service times, merges, in-flight I/O count & backlog.
For disk stats documents (read 25 lines) see https://www.kernel.org/doc/Documentation/iostats.txt
9th July 2015
lmon15e.cRemoved saved to file Network stats trailing comma
File systems stats accuracy
JFS stat to screen round up like df command output,
Using ceil() some Distro's need -lm in the new makefileJFS Use% calculated on available size not total size.
Delta=blocks reserved for root use.
3rd May 2015
Thanks to Sergei Rodionov for the idea
lmon15d.cClean up CPU Steal% stats - April 2015
lmon15c.cNew Function CPU Steal stats
Added CPU Steal% stats for VM CPU being stolen by Hypervisor - April 2015
Thanks to Sergei Rodionov for the idea & example code
makefileUsed to compile nmon. Note: new version 3rd May 2015
Changed lines 130-131 from:

For action 2: Install compiler, ncurses development library and make command

You have to work out how to do that for your Linux flavour. Hints:

to:

For action 2: you have to work out how to do that for your Linux flavour. Hints:

Deleted line 135:
  • Ubuntu 15.04 calls this package libncurses5-dev - Heck know why?? but very hard to work out?
Changed lines 146-150 from:

For action 3: UNIX link the source code file to lmon.c

Assuming the version you just downloaded is 99z with: ln lmon99z.c lmon.c

  • This links the two filenames to the one file - the makefile assumes the source code is found in lmon.c

For action 4: Makefile stanza

to:

For action 3: Assuming the version you just downloaded is 99z with: ln lmon99z.c lmon.c

For action 4:

Changed line 176 from:

For action 5: Compile

to:

For action 4:

Changed lines 185-282 from:

Hope you get your nmon working, Cheers, Nigel



Older Historic versions below - please ignore



Download FileSizeComment
lmon15c.c200 KB13 April 2015 - Beta release:
Improved NFS (again), CPU Steal stats saved to file and online, Big&Little Endion noticed and recorded, better 1st flash screen, saving more config: lsblk & lscpu, PowerKVM support
lmon15b.c198 KB18 March 2015 - Beta release:
Remove bug for more than 256 logical CPUs (CPU Core threads) for POWER8 with SMT=8 benchmarks
lmon15a.c
lmon15a_README.txt
198 KB23 Feb 2015 - Beta release:
Only try this beta test version if:
a) Using PowerKVM host or guest
b) Want initial online splash screen improvements
c) Want improved NFS stats
d) Want to collect new commands in the output file
Compile it yourself (no change there) - it is easy.
lmon14i.c198 KB1st August 2013 - new features:
1 2nd attempt at fixing my NFS stats bug - thanks to helpful users.
2 Dynamic memory handling for massive /proc/cpuinfo file &
so much duplication & Tabs chars plus many formats on x86.
3 POWER has new LPAR details on the CPU stats online, Entitlement, Physical CPU used, Capped,
SMT level, virtual Processors and Dotted lines on each primary thread helps you "see" the
physical CPUs, plus file output saves the above, lparstat -i, ppc64_cpu & lsslot,
ls-veth/vdev/vscsi, lscfg & bootlist commands output, saves SMT on the LPAR tab last column.
4 Start up flash panel has X86 or POWER CPU details.
Note: some x86 Virtual Machines report CPU type QEMU or Virtual CPU but many don't.
5 WARNING: for x86 add -D X86 in the makefile to get the new features.
The below makefile has been updated or get it here makefile.
lmon14h.c188 KB3rd July 2013 - bug fix for:
This included a fix for POWER based machines when the Entitlement CPU
is set below 10% of a CPU - only applies to the POWER7+ processors or
POWER7 that has a firmware upgrade like Power 770/780/79 and a fix for
a crash if you gather NFS serving stats on certain Linux distributions
& versions - one combination effected was RHEL 6.3.
If these don't interest you, please carry on running nmon for Linux 14g.
lmon14g.c188 KB4th June 2011 - Larger specific fixes for:
1) TOP process memory page-size fixed for 64 KB memory page systems
- Old Linux versions compiled for 4 KB page-size
- Typically New server Linux versions use 64 KB page-size (run: getconf PAGESIZE to find out)
- Fixed output TOP process sizes on-screen and also the optional Top processes section in the nmon data file
2) Added Page Size to the online memory section
3) Added netstat (fixed typo), uptime and getconf PAGESIZE to nmon data file BBBP section
If you have 4KB pages then version 14f will work fine = no need to upgrade.
lmon14f.c188 KB2nd Jan 2011 - Minor specific fixes for:
1) TOP process stats saved to file have 2 decimal places (was 1) for more accuracy.
lmon14e.c188 KB14th Dec 2010 - Minor specific fixes for:
1) if you have more than 100CPUs the CPU10 and CPU100 stats wrong
lmon14d.c188 KB17th Nov 2010 - Minor specific fixes for:
1) Microscopic bug in NFS stats saved to file (an extra comma but worth fixing)
lmon14c.c188 KB17th Nov 2010 - Minor specific fixes for:
1) Fixed File System sizes, if you have odd filesystems with 1KB blocks (found on RedHat RHEL 5.5)
without the the sizes are 4 times large than reported with df -m
Any one understand why/how these are created? My Power based machine has 4KB / and 1K /boot !!
2) Fix for machines with more than 99 CPUs (found on Power based machines
Don't forget to add compiler -D KERNEL_2_6_18 option for Linux Kernel this level or high for some extra features.
lmon14a.c185 KBCurrent source code: Bugs fixes for:
1) Fixed two fclose() missing after error issues. This may stop a few crashes when you have 100's of short lived processes - resulting is too many open files. Big thanks to the guys that pointed these out.
2) Added NFS v4 stats - online hit N a second time, data collect mode use -N as normal. Only reported if found switched on. NFS v4 has 75 statistics instead of v2=18 and v3=22 so they can be displayed side by side.
3) Added KERNEL_2_6_18 compile time option for later Linux kernels to add features from this release onwards: Threads & IO time for processes in TOP process output - would be nice to add Threads to the online view too.
4) Added EXPERIMENTAL compile time option for stuff to be tested more
5) Disk Group stats include group reads, writes, merges, service times, in-flight and IO time
6) Fixed major bugs in /proc/vmstat data handling
7) For POWER7 added SMT=4 reporting
8) Fix for 256 CPU as found in POWER7 machines, includes 3 digit CPU counts - could cause problems with down stream tools that assume CPU numbers are 2 digit numbers.
9) More command output saved in BBBP section - best to capture and look for a list. Include miltipath command and configuration, ppc64-utils like lscfg and netstat -r
10) Captured more from POWER /proc/ppc64/lparcfg (not output yet)
11) Flags to stop multiple reads of the same file for different reasons in one update.
Lots of this is from Ralf Schmidt-Dannert
lmon13g.c159 KBOlder source code: Bugs fixes for:
1) Tracked down the User Defined Disk Groups bug with David Baril's help
2) Now collects the /proc/diskstats in the BBB section
3) Minor typo's fixed in the help and hints and column widths in the on-screen network stats
lmon13d.c159 KBBugs fixed from 12f are:
1) Added POWER Active Memory Sharing stats both Online (see Memory) and to capture file,
2) Changed online colour graphs to use black foreground so that stats meaning is clearer
3) Fixes to user defines disk groups stats (online and capture)
4) Added Online Disk Totals and duplicate warning
5) Added Online disk ignore first update of erroneous data
6) Added file capture data: df, mount and fstab capture to BBB lines
7) Fixed Online disk map (rain diagram) output
8) Online disk changes from KB to MB, if numbers are too large for screen space
9) Bug fixes and code from Brian Smith & David Baril (well done and thanks)
lmon12f.c154 KBPrevious source code
Bugs fixed from 12e are:
1) Fix online mode Curses crash (malloc off by one failure - my fault),
2) Online colour graphs for CPU, CPU long term (hit lowercase L) & disks
- Code and fixes from Brian Smith (well done and thanks)
lmon12e.c154 KBBugs fixed from 12c are:
1) Large CPU counts fail due the massive size of /proc/cpuinfo on Intel/AMD
lmon12d.c152 KBDifferences from 12b in the download binaries are:
Copyright & includes small fix for 64 way POWER machines
makefile2 KBBuild instructions for the make commend
Documentation.txt1 KBSmall file primarily to help build processes that wants a licence and documentation file
to:

Hope you get your nmon working, Cheers Nigel

April 25, 2016, at 09:45 AM by 127.0.0.1 -
Changed line 9 from:
  1. Hard link the latest C source code file to the filename lnom.c (lmon.c is used in the makefile)
to:
  1. Hard link the latest C source code file to the filename lmonm.c (lmon.c is used in the makefile)
February 05, 2016, at 09:16 AM by 127.0.0.1 -
Changed line 21 from:

Fixes for Welcome screen on Mainframe \\

to:

Fixes for Welcome screen on Mainframe \\

January 29, 2016, at 09:25 AM by 127.0.0.1 -
Changed line 21 from:

Fixes for Welcome screen on Mainframe

to:

Fixes for Welcome screen on Mainframe \\

Changed line 133 from:

Older version below - please ignore

to:

Older Historic versions below - please ignore

Deleted lines 135-143:

nmon for Linux Compiling

Source code

nmon for Linux source code is released under the GPL license.

  • There is just a single source code file written in C and a makefile - nice and simple.
  • You need the GNC C compiler and ncurses-dev package installed.
Deleted lines 226-257:

File name:

  • The file for compiling is called lmon.c for historic reasons.
  • For release reasons the version is added
  • The number in the file name is the major release i.e. this is increased when new function is added.
  • The letter in the file name is increase as bugs are removed and the new code is released.

Compiling

The process is as follows:

  1. Download the source code file
  2. Download the makefile
  3. Rename the source code file to lmon.c (mv lmon12d.c lmon.c) or add a link (ln lmon12d.c lmon.c)
  4. vi the makefile and find the directive that matches your platform and Linux release
    • Note: some of the older versions have extra defined compile time options (-D SOMETHING) to switch on code to work around bugs in the operating system or some platforms have extra features so defined options pull in the code to handle it.
    • If necessary, create a new line to create a nmon file specific to your new Linux Distro / platform combination.
  5. Make nmon, for example to compile nmon for x86_64 for Ubuntu
    • You find the following in the makefile
      	nmon_x86_64_ubuntu810: 
      		cc -o nmon_x86_64_ubuntu810 $(FILE) $(CFLAGS) $(LDFLAGS) -D X86
      
    • To compile run: make nmon_x86_64_ubuntu810
  6. Yes, it is that easy.
  7. Testing - normally it is very obvious if there is problems.
    • Run some workload
    • Use nmon online - and check the numbers for CPU, memory, disks and top processes look about right
    • If the numbers are all zeros - suspect you have a problem
    • Then use nmon for Linux to to collect data to a file
    • Once the file output is complete
      • Use vi to check the output file - it is simple text. Does the last like look OK?
      • grep the ZZZ lines to check nmon for Linux ran to completion - one of these lines is output for each capture with a time and date.
      • Use you nmon for Linux output file analyser to check it understands the output.
January 29, 2016, at 09:23 AM by 127.0.0.1 -
Added lines 19-23:
lmon16d.cNew Features:
Source code re-indented.
Fixes for Welcome screen on Mainframe

Fixed for Curses handling when collecting data to file - big bug for main frame and x86.
26th Jan 2016 ||

January 11, 2016, at 10:52 PM by 127.0.0.1 -
Changed lines 13-14 from:

For action 1: Just click on the link below to open in a different Tab and wait 10 seconds. The download should continue automatically. Ignore all the horrible adverts and deliberately confusing screen messages. I suspect lots of those links will download viruses, malware and worse.

to:

For action 1: Download the nmon code file and the makefile

Just click on the link below to open in a different Tab and wait 10 seconds. The download should continue automatically. Ignore all the horrible adverts and deliberately confusing screen messages. I suspect lots of those links will download viruses, malware and worse.

Changed lines 66-67 from:

For action 2: you have to work out how to do that for your Linux flavour. Hints:

to:

For action 2: Install compiler, ncurses development library and make command

You have to work out how to do that for your Linux flavour. Hints:

Changed lines 83-85 from:

For action 3: Assuming the version you just downloaded is 99z with: ln lmon99z.c lmon.c

For action 4:

to:

For action 3: UNIX link the source code file to lmon.c

Assuming the version you just downloaded is 99z with: ln lmon99z.c lmon.c

  • This links the two filenames to the one file - the makefile assumes the source code is found in lmon.c

For action 4: Makefile stanza

Changed line 115 from:

For action 4:

to:

For action 5: Compile

January 11, 2016, at 10:46 PM by 127.0.0.1 -
Changed lines 5-6 from:

nmon is pretty simple to compile - the whole thing takes no more than 3 minutes if you have your distro OS DVD media online:

to:

nmon is pretty simple to compile - the whole thing takes no more than 3 minutes, if you have your Distro OS DVD media online:

Changed line 8 from:
  1. Install the GCC C Compiler, ncurses development library and (if its not already available) Install the make command
to:
  1. Install the GCC C Compiler, ncurses development library and (if its not already available)also install the make command
Changed lines 10-12 from:
  1. Edit the makefile to find your platform, OS and version in the makefile or make a new one
  2. Run make and you have a new version in roughly 4 seconds. Ready to run.
to:
  1. Edit the makefile to find your platform, OS and version in the makefile or make a new one stanza for a new Distro version
  2. Run make and you have a new version in roughly 4 to 10 seconds. Ready to run.
Deleted line 64:
Changed line 120 from:

Hope you get your nmon working, Cheers Nigel

to:

Hope you get your nmon working, Cheers, Nigel

January 11, 2016, at 10:42 PM by 127.0.0.1 -
Changed lines 19-22 from:

1) The previous nmon 16a's "Z experiment" was finished but now use Online "U" (for CPU Utilisation stats)
* or for capture to file -U and look for the CPUUTIL lines in the output file
Instead of the classic UNIX User, System, IO-Wait and Idle - we find Linux now has ten categories
* user, user_nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice. \\

to:

1) The previous nmon 16a's "Z experiment" was finished but now for detailed Utilisation use Online "U" (for CPU Utilisation stats)
* or for capture to file -U and look for the CPUUTIL lines in the output file
Instead of the classic UNIX four categories: User, System, WaitIO and Idle - we find Linux now has ten categories
* user, user_nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice. \\

Changed lines 25-26 from:

2) Older code and stats maintains the classic values as User (includes nice), System (includes irq & softirq & guest & guest_nice),
IO-Wait and Idle but some online graphs show Steal. \\

to:

2) Older nmon code and stats maintains the classic values by adding stats together as follows:
as User (includes nice), System (includes irq & softirq & guest & guest_nice), IO-Wait and Idle but some online graphs show Steal. \\

Changed line 31 from:

1) Nvidia GPU support - online & saved to file \\

to:

1) Nvidia GPU support - online & saved to file \\

Changed lines 35-43 from:

2) CPU Wide View - online view for up to 192 CPUs
3) CPU MHz per Core ratings for machine that allow cores with different MHz - online & saved to file
4) lscpu stats capture - online & to file
5) Z experiment mode showing CPU interrupts - more o come in version 16b - online only
6) Online colourising stats to aid usability - online only
7) Massive improvement in help information: nmon -? and nmon -h
8) Code change to alphabetic order for getopt() and key input functions - just code clean up
9) New nmon logo on flash screen - online only
10) Extra kernel stats - online only \\

to:

2) CPU Wide View - online view for up to 192 CPUs
3) CPU MHz per Core ratings for machine that allow cores with different MHz - online & saved to file
4) lscpu stats capture - online & to file
5) Z experiment mode showing CPU interrupts - Renamed U stats in version 16b - online only
6) Online colourising stats to aid usability - online only
7) Massive improvement in help information: nmon -? and nmon -h
8) Code change to alphabetic order for getopt() and key input functions - just code clean up
9) New nmon logo on flash screen - online only
10) Extra kernel stats - online only \\

January 11, 2016, at 10:37 PM by 127.0.0.1 -
Changed line 18 from:
lmon16b.cNew Features: 'added 3 times now due to Sourceforge errors\\
to:
lmon16b.cNew Features: Added 3 times now due to Sourceforge errors\\
Changed line 20 from:

or for capture to file -U and look for the CPUUTIL lines in the output file \\

to:
  • or for capture to file -U and look for the CPUUTIL lines in the output file \\
Changed line 22 from:

user, user_nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice. \\

to:
  • user, user_nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice. \\
January 11, 2016, at 10:37 PM by 127.0.0.1 -
Changed line 7 from:
  1. Download the latest source code (it is just one file names lmon<version>.c) and the makefile
to:
  1. Download the latest source code (it is just one file named lmon<version>.c) and the makefile
Added lines 18-29:
lmon16b.cNew Features: 'added 3 times now due to Sourceforge errors
1) The previous nmon 16a's "Z experiment" was finished but now use Online "U" (for CPU Utilisation stats)
or for capture to file -U and look for the CPUUTIL lines in the output file
Instead of the classic UNIX User, System, IO-Wait and Idle - we find Linux now has ten categories
user, user_nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice.
This is tricky to graph and display within nmon so the 10 stats are added stats i.e. replacing the classic views/data
as there is not enough space online and changing the output file format would break many tools
2) Older code and stats maintains the classic values as User (includes nice), System (includes irq & softirq & guest & guest_nice),
IO-Wait and Idle but some online graphs show Steal.
3) On screen Kernel stats layout was improved
4) Bug fixes: BBBP double quotes confuse spreadsheet and replaced with "Q", #ifdef corrected.
Released: 7th January 2016
January 04, 2016, at 10:42 AM by 127.0.0.1 -
Added lines 18-34:
lmon16a.cNew Features:
1) Nvidia GPU support - online & saved to file
* You need a S822LC
* With NVIDIA GPU(s)
* and Nvidia Library installed libnvidia-ml.so
2) CPU Wide View - online view for up to 192 CPUs
3) CPU MHz per Core ratings for machine that allow cores with different MHz - online & saved to file
4) lscpu stats capture - online & to file
5) Z experiment mode showing CPU interrupts - more o come in version 16b - online only
6) Online colourising stats to aid usability - online only
7) Massive improvement in help information: nmon -? and nmon -h
8) Code change to alphabetic order for getopt() and key input functions - just code clean up
9) New nmon logo on flash screen - online only
10) Extra kernel stats - online only
11) makefile - large improvement for hardware platforms and Linux versions
plus some some bugs like SLESS11.3 "lsblk" has missing TYPE option handling, networks stats trailing comma
Released: 1st January 2016
August 11, 2015, at 09:28 AM by 127.0.0.1 -
Added line 18:
lmon15h.cVersion 15h - 11th August 2015 - tiny typo fix for clean compile on RHEL
July 30, 2015, at 09:41 AM by 127.0.0.1 -
Added line 41:
  • Ubuntu 15.04 calls this package libncurses5-dev - Heck know why?? but very hard to work out?
July 30, 2015, at 09:39 AM by 127.0.0.1 -
Changed lines 18-25 from:
lmon15e.cThis is the current source code beta version 15d - 5th May 2015\\
to:
lmon15g.cVersion 15g - 27th July 2015
Window management change to remove odd left-over characters
Added code for TOP processes order by disk I/O (needs root access)
Reduce file capture time drifting
lmon15f.cVersion 15f - 9th July2015
User Defined Disk Groups automatically make the file with just the disks : nmon -g auto
Use -D for extra disk stats and Disk backlog - use with -g auto
lmon15e.cThis is the current source code beta version 15e - 5th May 2015\\
May 15, 2015, at 07:17 PM by 127.0.0.1 -
Changed line 18 from:
lmon15e.cThis is the current source code beta version 15d - 5th May 2015\\
to:
lmon15e.cThis is the current source code beta version 15d - 5th May 2015\\
May 15, 2015, at 05:36 PM by 127.0.0.1 -
Changed lines 18-20 from:
lmon15d.cThis is the current source code beta version 15d - 14th April 2015\\
to:
lmon15e.cThis is the current source code beta version 15d - 5th May 2015
Change file system stats to match df output (allow for root user reserved space)
lmon15d.cVersion 15d - 14th April 2015\\
April 15, 2015, at 08:05 AM by 127.0.0.1 -
Changed line 204 from:
  • You find the following in the makefile\\
to:
  • You find the following in the makefile \\
April 13, 2015, at 10:28 PM by 127.0.0.1 -
Changed line 19 from:

Added AAA.steal.1 line to easily workout if CPU steal stats are present. ||

to:

Added AAA,steal,1 line to nmon files to easily workout if CPU steal stats are present. ||

April 13, 2015, at 10:28 PM by 127.0.0.1 -
Changed lines 18-19 from:
lmon15c.cThis is the current source code beta version 15c - April 2015
to:
lmon15d.cThis is the current source code beta version 15d - 14th April 2015
Added AAA.steal.1 line to easily workout if CPU steal stats are present.
April 13, 2015, at 01:43 PM by 127.0.0.1 -
Added lines 98-99:
lmon15c.c200 KB13 April 2015 - Beta release:
Improved NFS (again), CPU Steal stats saved to file and online, Big&Little Endion noticed and recorded, better 1st flash screen, saving more config: lsblk & lscpu, PowerKVM support
April 13, 2015, at 01:40 PM by 127.0.0.1 -
Changed line 84 from:

Older version below

to:

Older version below - please ignore

April 13, 2015, at 01:40 PM by 127.0.0.1 -
Added lines 1-87:

nmon for Linux - Compiling the Source Code

  • Assuming you can't find a pre-compiled version (See Download Binaries in the left Menu) or want a really fresh version to match your Linux system.

nmon is pretty simple to compile - the whole thing takes no more than 3 minutes if you have your distro OS DVD media online:

  1. Download the latest source code (it is just one file names lmon<version>.c) and the makefile
  2. Install the GCC C Compiler, ncurses development library and (if its not already available) Install the make command
  3. Hard link the latest C source code file to the filename lnom.c (lmon.c is used in the makefile)
  4. Edit the makefile to find your platform, OS and version in the makefile or make a new one
  5. Run make and you have a new version in roughly 4 seconds. Ready to run.

For action 1: Just click on the link below to open in a different Tab and wait 10 seconds. The download should continue automatically. Ignore all the horrible adverts and deliberately confusing screen messages. I suspect lots of those links will download viruses, malware and worse.

Downloads

Download FileComments
lmon15c.cThis is the current source code beta version 15c - April 2015
makefileUsed to compile nmon
Older versionsUse these, if we have introduced a bug in the latest version above
lmon14i.cPrevious stable source code version
lmon14g.cEven older stable source code version

For action 2: you have to work out how to do that for your Linux flavour. Hints:

  • Debian / Ubuntu
    • sudo apt-get update
    • sudo apt-get install gcc*
    • sudo apt-get install ncurses-dev*
    • sudo apt-get install make
  • Fedora / Redhat - as the root user
    • yum install gcc*
    • yum install ncurses-dev*
    • yum install make
  • OpenSUSE / SUSE - as the root user
    • yast install gcc*
    • yast install ncurses-dev*
    • yast install make

For action 3: Assuming the version you just downloaded is 99z with: ln lmon99z.c lmon.c

For action 4: Assuming you are OK with some UNIX/Linux editor like vi.

  • Edit the makefile - You are looking for the right combination of
    • Platform (Power, x86 x86_64 or mainframe)
    • Linux distribution
    • Linux version

Examples:

  1. You have a POWER processor based machine and running SLES 11.3 - look for the lines starting nmon_power_SLES113
  2. You have a old 32 bit AMD or Intel processor based machine and running RHEL5 - look for the lines starting nmon_x86_RHEL5
  3. You have a 64 bit AMD or Intel processor based machine and running Ubuntu 14.10 - look for the lines starting nmon_x86_64_ubuntu1410

If you find a match remember the exact name for the make file command below.

If you don't find a match you need to make one by copying the nearest match and making changes.

  • Select one using the Processor - there are compile time options for each processor. Then one with a similar Linux version.
  • Don't worry about Big and Little Endian - the compiler will compile for what ever you are currently running on.

Example: Ubuntu 15.4 is just out and you have a power CPU
The closest entry is
nmon_power_ubuntu1410: $(FILE)

        gcc -o nmon_power_ubuntu1410 $(FILE) $(CFLAGS) $(LDFLAGS) -D POWER -D KERNEL_2_6_18

Copy and change this to
nmon_power_ubuntu1504: $(FILE)

        gcc -o nmon_power_ubuntu1504 $(FILE) $(CFLAGS) $(LDFLAGS) -D POWER -D KERNEL_2_6_18

For action 4:

  • You are ready to compile with: make nmon_power_ubuntu1504
    • or using the Platform + Linux Disto + version that you found in the makefile.
  • The nmon binary will be in your local directory and called: nmon_power_ubuntu1504
    * You can:
    • rename the nmon command to something smaller
    • or link it to say nmon with: ln nmon_power_ubuntu1504 nmon
    • or if root install nmon in a regular path: cp nmon_power_ubuntu1504 /usr/bin/nmon

Hope you get your nmon working, Cheers Nigel



Older version below



March 18, 2015, at 12:09 PM by 127.0.0.1 -
Added lines 11-12:
lmon15b.c198 KB18 March 2015 - Beta release:
Remove bug for more than 256 logical CPUs (CPU Core threads) for POWER8 with SMT=8 benchmarks
February 23, 2015, at 10:18 PM by 127.0.0.1 -
Added lines 11-18:
lmon15a.c
lmon15a_README.txt
198 KB23 Feb 2015 - Beta release:
Only try this beta test version if:
a) Using PowerKVM host or guest
b) Want initial online splash screen improvements
c) Want improved NFS stats
d) Want to collect new commands in the output file
Compile it yourself (no change there) - it is easy.
Changed lines 30-31 from:
 The below makefile has been updated or get it here makefile. 
If these don't interest you, please carry on running nmon for Linux 14g. ||
to:
 The below makefile has been updated or get it here makefile. ||
August 01, 2013, at 03:10 PM by 127.0.0.1 -
Changed lines 7-8 from:
  • You need the GNC C compiler and ncurses-dev installed.
to:
  • You need the GNC C compiler and ncurses-dev package installed.
Changed line 20 from:
 Note: some x86 virtual machine report CPU type QEMU or Virtual CPU but many don't. \\
to:
 Note: some x86 Virtual Machines report CPU type QEMU or Virtual CPU but many don't. \\
August 01, 2013, at 11:01 AM by 127.0.0.1 -
Changed lines 19-21 from:

4 Start up flash panel has X86 or POWER CPU details.
5 WARNING: for x86 add -D X86 in the makefile to get the new features. \\

 The below makefile has been updated or get it -> makefile . \\
to:

4 Start up flash panel has X86 or POWER CPU details.
Note: some x86 virtual machine report CPU type QEMU or Virtual CPU but many don't.
5 WARNING: for x86 add -D X86 in the makefile to get the new features.
The below makefile has been updated or get it here makefile. \\

August 01, 2013, at 10:57 AM by 127.0.0.1 -
Changed line 13 from:

2 Dynamic memory handling for massive /proc/cpuinfo file &\\

to:

2 Dynamic memory handling for massive /proc/cpuinfo file & \\

Changed lines 15-20 from:

3 POWER has new LPAR details on the CPU stats online, Entitlement,
Physical CPU used, Capped, SMT level, virtual Processors and
Dotted lines on each primary thread helps you "see" the physical CPUs,
plus file output saves the above, lparstat -i, ppc64_cpu &
lsslot, ls-veth/vdev/vscsi, lscfg & bootlist commands output,
saves SMT on the LPAR tab last column. \\

to:

3 POWER has new LPAR details on the CPU stats online, Entitlement, Physical CPU used, Capped,
SMT level, virtual Processors and Dotted lines on each primary thread helps you "see" the
physical CPUs, plus file output saves the above, lparstat -i, ppc64_cpu & lsslot,
ls-veth/vdev/vscsi, lscfg & bootlist commands output, saves SMT on the LPAR tab last column. \\

Changed lines 20-21 from:

5 WARNING: for x86 add -D X86 in the makefile to get the new features. \\

to:

5 WARNING: for x86 add -D X86 in the makefile to get the new features. \\

 The below makefile has been updated or get it -> makefile . \\
Changed line 107 from:
		cc -o nmon_x86_64_ubuntu810 $(FILE) $(CFLAGS) $(LDFLAGS)
to:
		cc -o nmon_x86_64_ubuntu810 $(FILE) $(CFLAGS) $(LDFLAGS) -D X86
Deleted lines 119-121:
August 01, 2013, at 10:52 AM by 127.0.0.1 -
Changed lines 7-8 from:
to:
  • You need the GNC C compiler and ncurses-dev installed.
Added lines 11-23:
lmon14i.c198 KB1st August 2013 - new features:
1 2nd attempt at fixing my NFS stats bug - thanks to helpful users.
2 Dynamic memory handling for massive /proc/cpuinfo file &
so much duplication & Tabs chars plus many formats on x86.
3 POWER has new LPAR details on the CPU stats online, Entitlement,
Physical CPU used, Capped, SMT level, virtual Processors and
Dotted lines on each primary thread helps you "see" the physical CPUs,
plus file output saves the above, lparstat -i, ppc64_cpu &
lsslot, ls-veth/vdev/vscsi, lscfg & bootlist commands output,
saves SMT on the LPAR tab last column.
4 Start up flash panel has X86 or POWER CPU details.
5 WARNING: for x86 add -D X86 in the makefile to get the new features.
If these don't interest you, please carry on running nmon for Linux 14g.
July 03, 2013, at 04:39 PM by 127.0.0.1 -
Added lines 10-16:
lmon14h.c188 KB3rd July 2013 - bug fix for:
This included a fix for POWER based machines when the Entitlement CPU
is set below 10% of a CPU - only applies to the POWER7+ processors or
POWER7 that has a firmware upgrade like Power 770/780/79 and a fix for
a crash if you gather NFS serving stats on certain Linux distributions
& versions - one combination effected was RHEL 6.3.
If these don't interest you, please carry on running nmon for Linux 14g.
June 04, 2011, at 11:11 AM by 172.29.30.70 -
Changed line 14 from:

- Fixes for output correct TOP process sizes on-screen also the optional Top processes section in the nmon data file. \\

to:

- Fixed output TOP process sizes on-screen and also the optional Top processes section in the nmon data file \\

Changed line 16 from:

3) Added netstat (fixed typo), uptime and getconf PAGESIZE to nmon data file BBBP section. \\

to:

3) Added netstat (fixed typo), uptime and getconf PAGESIZE to nmon data file BBBP section \\

June 04, 2011, at 11:10 AM by 172.29.30.66 -
Changed lines 11-12 from:

1) TOP process memory page size fixed for 64 KB memory page systems - typically servers (run: getconf PAGESIZE to find out) then output correct process sizes on-screen or in the data file. 2) Added netstat (fixed typo) , uptime and getconf PAGESIZE to nmon data file BBBP section. ||

lmon14f.c188 KB2nd Jan 2011 - Minor specific fixes for:\\
to:

1) TOP process memory page-size fixed for 64 KB memory page systems
- Old Linux versions compiled for 4 KB page-size
- Typically New server Linux versions use 64 KB page-size (run: getconf PAGESIZE to find out)
- Fixes for output correct TOP process sizes on-screen also the optional Top processes section in the nmon data file.
2) Added Page Size to the online memory section
3) Added netstat (fixed typo), uptime and getconf PAGESIZE to nmon data file BBBP section.
If you have 4KB pages then version 14f will work fine = no need to upgrade. ||

lmon14f.c188 KB2nd Jan 2011 - Minor specific fixes for:\\
Changed line 20 from:
lmon14e.c188 KB14th Dec 2010 - Minor specific fixes for:\\
to:
lmon14e.c188 KB14th Dec 2010 - Minor specific fixes for:\\
Changed line 22 from:
lmon14d.c188 KB17th Nov 2010 - Minor specific fixes for:\\
to:
lmon14d.c188 KB17th Nov 2010 - Minor specific fixes for:\\
June 04, 2011, at 11:02 AM by 172.29.30.76 -
Changed line 10 from:
lmon14g.c188 KB4th June 2011 - Larger specific fixes for:\\
to:
lmon14g.c188 KB4th June 2011 - Larger specific fixes for:\\
June 04, 2011, at 10:46 AM by 172.29.30.73 -
Added lines 10-11:
lmon14g.c188 KB4th June 2011 - Larger specific fixes for:
1) TOP process memory page size fixed for 64 KB memory page systems - typically servers (run: getconf PAGESIZE to find out) then output correct process sizes on-screen or in the data file. 2) Added netstat (fixed typo) , uptime and getconf PAGESIZE to nmon data file BBBP section.
January 02, 2011, at 10:10 PM by 127.0.0.1 -
Added lines 10-11:
lmon14f.c188 KB2nd Jan 2011 - Minor specific fixes for:
1) TOP process stats saved to file have 2 decimal places (was 1) for more accuracy.
Changed line 13 from:

1) if you have more than 100CPUs the CPU10 and CPU100 stats wrong||

to:

1) if you have more than 100CPUs the CPU10 and CPU100 stats wrong ||

December 22, 2010, at 09:28 AM by 127.0.0.1 -
December 14, 2010, at 03:46 PM by 127.0.0.1 -
Added lines 10-11:
lmon14e.c188 KB14th Dec 2010 - Minor specific fixes for:
1) if you have more than 100CPUs the CPU10 and CPU100 stats wrong
November 17, 2010, at 10:53 PM by 127.0.0.1 -
Changed lines 10-12 from:
lmon14c.c188 KB17th Nove 2010 - Minor specific fixes for:\\
to:
lmon14d.c188 KB17th Nov 2010 - Minor specific fixes for:
1) Microscopic bug in NFS stats saved to file (an extra comma but worth fixing)
lmon14c.c188 KB17th Nov 2010 - Minor specific fixes for:\\
November 17, 2010, at 09:57 PM by 127.0.0.1 -
Changed lines 14-15 from:

2) Fix for machines with more than 99 CPUs (found on Power based machines ||

to:

2) Fix for machines with more than 99 CPUs (found on Power based machines
Don't forget to add compiler -D KERNEL_2_6_18 option for Linux Kernel this level or high for some extra features. ||

November 17, 2010, at 09:54 PM by 127.0.0.1 -
Changed line 10 from:
lmon14c.c188 KBMinor specific fixes for:\\
to:
lmon14c.c188 KB17th Nove 2010 - Minor specific fixes for:\\
Changed line 13 from:
    Any one understand why/how these are created? \\
to:
    Any one understand why/how these are created? My Power based machine has 4KB / and 1K /boot !!\\
November 17, 2010, at 09:53 PM by 127.0.0.1 -
Added lines 10-14:
lmon14c.c188 KBMinor specific fixes for:
1) Fixed File System sizes, if you have odd filesystems with 1KB blocks (found on RedHat RHEL 5.5)
without the the sizes are 4 times large than reported with df -m
Any one understand why/how these are created?
2) Fix for machines with more than 99 CPUs (found on Power based machines
August 10, 2010, at 09:30 PM by 127.0.0.1 -
Changed line 10 from:
lmon114a.c185 KBCurrent source code: Bugs fixes for:\\
to:
lmon14a.c185 KBCurrent source code: Bugs fixes for:\\
August 10, 2010, at 09:29 PM by 127.0.0.1 -
Changed line 21 from:

11) Flags to stop multiple reads of the same file for different reasons in one update.

to:

11) Flags to stop multiple reads of the same file for different reasons in one update.\\

August 10, 2010, at 09:29 PM by 127.0.0.1 -
Changed lines 10-23 from:
lmon13g.c159 KBCurrent source code: Bugs fixes for:\\
to:
lmon114a.c185 KBCurrent source code: Bugs fixes for:
1) Fixed two fclose() missing after error issues. This may stop a few crashes when you have 100's of short lived processes - resulting is too many open files. Big thanks to the guys that pointed these out.
2) Added NFS v4 stats - online hit N a second time, data collect mode use -N as normal. Only reported if found switched on. NFS v4 has 75 statistics instead of v2=18 and v3=22 so they can be displayed side by side.
3) Added KERNEL_2_6_18 compile time option for later Linux kernels to add features from this release onwards: Threads & IO time for processes in TOP process output - would be nice to add Threads to the online view too.
4) Added EXPERIMENTAL compile time option for stuff to be tested more
5) Disk Group stats include group reads, writes, merges, service times, in-flight and IO time
6) Fixed major bugs in /proc/vmstat data handling
7) For POWER7 added SMT=4 reporting
8) Fix for 256 CPU as found in POWER7 machines, includes 3 digit CPU counts - could cause problems with down stream tools that assume CPU numbers are 2 digit numbers.
9) More command output saved in BBBP section - best to capture and look for a list. Include miltipath command and configuration, ppc64-utils like lscfg and netstat -r
10) Captured more from POWER /proc/ppc64/lparcfg (not output yet)
11) Flags to stop multiple reads of the same file for different reasons in one update.

Lots of this is from Ralf Schmidt-Dannert ||

lmon13g.c159 KBOlder source code: Bugs fixes for:\\
March 18, 2010, at 03:21 PM by 127.0.0.1 -
Changed line 10 from:
lmon13g.c159 KBCurrent source code: Bugs fixes for:\\
to:
lmon13g.c159 KBCurrent source code: Bugs fixes for:\\
March 18, 2010, at 03:20 PM by 127.0.0.1 -
Changed lines 10-14 from:
lmon13d.c159 KBCurrent source code: Bugs fixed from 12f are:\\
to:
lmon13g.c159 KBCurrent source code: Bugs fixes for:
1) Tracked down the User Defined Disk Groups bug with David Baril's help
2) Now collects the /proc/diskstats in the BBB section
3) Minor typo's fixed in the help and hints and column widths in the on-screen network stats
lmon13d.c159 KBBugs fixed from 12f are:\\
February 23, 2010, at 10:53 PM by 127.0.0.1 -
Changed lines 10-20 from:
lmon12f.c154 KBCurrent source code\\
to:
lmon13d.c159 KBCurrent source code: Bugs fixed from 12f are:
1) Added POWER Active Memory Sharing stats both Online (see Memory) and to capture file,
2) Changed online colour graphs to use black foreground so that stats meaning is clearer
3) Fixes to user defines disk groups stats (online and capture)
4) Added Online Disk Totals and duplicate warning
5) Added Online disk ignore first update of erroneous data
6) Added file capture data: df, mount and fstab capture to BBB lines
7) Fixed Online disk map (rain diagram) output
8) Online disk changes from KB to MB, if numbers are too large for screen space
9) Bug fixes and code from Brian Smith & David Baril (well done and thanks)
lmon12f.c154 KBPrevious source code\\
November 16, 2009, at 11:23 PM by 127.0.0.1 -
Changed lines 10-11 from:
lmon12e.c154 KBCurrent source code
Bugs fixed from 12c are:\\
to:
lmon12f.c154 KBCurrent source code
Bugs fixed from 12e are:\\
Changed lines 13-14 from:

2) Large CPU counts fail due the massive size of /proc/cpuinfo on Intel/AMD
3) Online colour graphs for CPU, CPU long term (hit lowercase L) & disks \\

to:

2) Online colour graphs for CPU, CPU long term (hit lowercase L) & disks \\

Added lines 15-16:
lmon12e.c154 KBBugs fixed from 12c are:
1) Large CPU counts fail due the massive size of /proc/cpuinfo on Intel/AMD
November 16, 2009, at 12:08 PM by 127.0.0.1 -
Changed lines 10-11 from:
lmon12d.c152 KBCurrent source code
Differences from 12b in the download binaries are:\\
to:
lmon12e.c154 KBCurrent source code
Bugs fixed from 12c are:
1) Fix online mode Curses crash (malloc off by one failure - my fault),
2) Large CPU counts fail due the massive size of /proc/cpuinfo on Intel/AMD
3) Online colour graphs for CPU, CPU long term (hit lowercase L) & disks
- Code and fixes from Brian Smith (well done and thanks)
lmon12d.c152 KBDifferences from 12b in the download binaries are:\\
September 20, 2009, at 08:32 PM by 127.0.0.1 -
Changed line 10 from:
lmon12d.c152 KBCurrent source code\\
to:
lmon12d.c152 KBCurrent source code\\
Changed lines 13-14 from:
makefile2 KBBuild instructions
Documentation.txt1 KBSmall file primarily to help build processes
to:
makefile2 KBBuild instructions for the make commend
Documentation.txt1 KBSmall file primarily to help build processes that wants a licence and documentation file
September 20, 2009, at 06:27 PM by 127.0.0.1 -
Changed line 14 from:
to:
Documentation.txt1 KBSmall file primarily to help build processes
August 04, 2009, at 11:47 AM by 127.0.0.1 -
Changed lines 5-11 from:

nmon for Linux is released under GLP v2

File name:

  • The file is called lmon.c for historic reasons.
  • The number in the file name is the major release i.e. this is increased when new function is added.
  • The letter in the file name is increase as bugs are removed and the new code is released.
to:

nmon for Linux source code is released under the GPL license.

  • There is just a single source code file written in C and a makefile - nice and simple.
Added lines 14-19:

File name:

  • The file for compiling is called lmon.c for historic reasons.
  • For release reasons the version is added
  • The number in the file name is the major release i.e. this is increased when new function is added.
  • The letter in the file name is increase as bugs are removed and the new code is released.
August 04, 2009, at 11:13 AM by 127.0.0.1 -
Changed lines 14-16 from:
lmon12d.c152 KBCurrent source codeDifferences from 12b in the download binaries is
Copyright & includes fix for 64 way POWER machines
to:
lmon12d.c152 KBCurrent source code
Differences from 12b in the download binaries are:
Copyright & includes small fix for 64 way POWER machines
August 04, 2009, at 11:11 AM by 127.0.0.1 -
Changed lines 14-15 from:
lmon12c.c152 KBCurrent source code - include fix for 64 way POWER machines
lmon12b.c152 KBoriginal released source code
to:
lmon12d.c152 KBCurrent source codeDifferences from 12b in the download binaries is
Copyright & includes fix for 64 way POWER machines
Changed line 24 from:
  1. Rename the source code file to lmon.c (mv lmon12b.c lmon.c) or add a link (ln lmon12b.c lmon.c)
to:
  1. Rename the source code file to lmon.c (mv lmon12d.c lmon.c) or add a link (ln lmon12d.c lmon.c)
August 04, 2009, at 06:21 AM by 127.0.0.1 -
Changed lines 15-16 from:
lmon12b.c152 KBoriginal released source code
makefile2 KBBuild instructions
to:
lmon12b.c152 KBoriginal released source code
makefile2 KBBuild instructions
August 04, 2009, at 06:20 AM by 127.0.0.1 -
Changed line 14 from:
lmon12c.c152 KBCurrent source code - include fix for 64 way POWER machines
to:
lmon12c.c152 KBCurrent source code - include fix for 64 way POWER machines
August 03, 2009, at 04:45 PM by 127.0.0.1 -
Changed lines 13-16 from:
Download FileSizeComment
lmon12c.c152KBCurrent source code - include fix for 64 way POWER machines
lmon12b.c152KBoriginal released source code
makefile2KBBuild instructions
to:
Download FileSizeComment
lmon12c.c152 KBCurrent source code - include fix for 64 way POWER machines
lmon12b.c152 KBoriginal released source code
makefile2 KBBuild instructions
August 03, 2009, at 04:45 PM by 127.0.0.1 -
Changed lines 13-16 from:
Download FileComment
lmon12c.cCurrent source code - include fix for 64 way POWER machines
lmon12b.coriginal released source code
makefileBuild instructions
to:
Download FileSizeComment
lmon12c.c152KBCurrent source code - include fix for 64 way POWER machines
lmon12b.c152KBoriginal released source code
makefile2KBBuild instructions
August 03, 2009, at 04:04 PM by 127.0.0.1 -
Changed lines 14-15 from:
lmon12b.cCurrent source code
to:
lmon12c.cCurrent source code - include fix for 64 way POWER machines
lmon12b.coriginal released source code
August 02, 2009, at 05:16 PM by 127.0.0.1 -
Added line 22:
  1. Rename the source code file to lmon.c (mv lmon12b.c lmon.c) or add a link (ln lmon12b.c lmon.c)
August 02, 2009, at 05:14 PM by 127.0.0.1 -
Changed lines 32-41 from:
  1. Yes it is that easy.
to:
  1. Yes, it is that easy.
  2. Testing - normally it is very obvious if there is problems.
    • Run some workload
    • Use nmon online - and check the numbers for CPU, memory, disks and top processes look about right
    • If the numbers are all zeros - suspect you have a problem
    • Then use nmon for Linux to to collect data to a file
    • Once the file output is complete
      • Use vi to check the output file - it is simple text. Does the last like look OK?
      • grep the ZZZ lines to check nmon for Linux ran to completion - one of these lines is output for each capture with a time and date.
      • Use you nmon for Linux output file analyser to check it understands the output.
August 02, 2009, at 05:05 PM by 127.0.0.1 -
Changed line 27 from:

%[@

to:

[@

August 02, 2009, at 05:05 PM by 127.0.0.1 -
Changed lines 28-29 from:

nmon_x86_64_ubuntu810:

	cc -o nmon_x86_64_ubuntu810 $(FILE) $(CFLAGS) $(LDFLAGS)
to:
	nmon_x86_64_ubuntu810: 
		cc -o nmon_x86_64_ubuntu810 $(FILE) $(CFLAGS) $(LDFLAGS)
Changed lines 31-33 from:
  • So run: make nmon_x86_64_ubuntu810
to:
  • To compile run: make nmon_x86_64_ubuntu810
  1. Yes it is that easy.
August 02, 2009, at 05:04 PM by 127.0.0.1 -
Changed lines 27-28 from:

[@ nmon_x86_64_ubuntu810:

to:

%[@ nmon_x86_64_ubuntu810:

Changed lines 30-31 from:

@]

  • So run: make nmon_x86_64_ubuntu810
to:

@]

  • So run: make nmon_x86_64_ubuntu810
August 02, 2009, at 04:55 PM by 127.0.0.1 -
Changed lines 3-4 from:
to:

Source code

nmon for Linux is released under GLP v2

File name:

  • The file is called lmon.c for historic reasons.
  • The number in the file name is the major release i.e. this is increased when new function is added.
  • The letter in the file name is increase as bugs are removed and the new code is released.
Changed lines 15-31 from:
makefileBuild instructions
to:
makefileBuild instructions

Compiling

The process is as follows:

  1. Download the source code file
  2. Download the makefile
  3. vi the makefile and find the directive that matches your platform and Linux release
    • Note: some of the older versions have extra defined compile time options (-D SOMETHING) to switch on code to work around bugs in the operating system or some platforms have extra features so defined options pull in the code to handle it.
    • If necessary, create a new line to create a nmon file specific to your new Linux Distro / platform combination.
  4. Make nmon, for example to compile nmon for x86_64 for Ubuntu
    • You find the following in the makefile
      nmon_x86_64_ubuntu810: 
      	cc -o nmon_x86_64_ubuntu810 $(FILE) $(CFLAGS) $(LDFLAGS)
      
    • So run: make nmon_x86_64_ubuntu810
August 02, 2009, at 03:30 PM by 127.0.0.1 -
Changed lines 7-8 from:
lmon12b.cCurrent source code
makefileCurrent source code
to:
lmon12b.cCurrent source code
makefileBuild instructions
August 02, 2009, at 03:29 PM by 127.0.0.1 -
Added lines 1-8:

nmon for Linux Compiling

Download FileComment
lmon12b.cCurrent source code
makefileCurrent source code
Edit - History - Print - Recent Changes - Search
Page last modified on April 20, 2017, at 04:28 PM