Wednesday, 26 September 2012

VIOS Unix SubSystems:


Vios Unix Subsyatems :

 -The current VIOS runs on an AIX subsystem. (VIOS functionality is available for Linux. This document only deals with the AIX based versions.)

• The padmin account logs in with a restricted shell. A root shell can be obtained by the oem_setup_env command.

• The root shell is designed for installation of OEM applications and drivers only. It may be required for a small subset of commands. (The purpose of this document is to provide a listing of most frequent tasks and the proper VIOS commands so that access to a root shell is not required.)

• The restricted shell has access to common Unix utilities such as awk, grep, sed, and vi. The syntax and usage of these commands has not been changed in VIOS. (Use "ls /usr/ios/utils" to get a listing of available Unix commands.)

• Redirection to a file is not allowed using the standard ">" character, but can be accomplished with the "tee" command.

Redirect the output of ls to a file
ls | tee ls.out

Determine the underlying (AIX) OS version (for driver install)
oem_platform_level

Exit the restricted shell to a root shell
oem_setup_env

Mirror the rootvg in VIOS to hdisk1
extendvg rootvg hdisk1 
mirrorios hdisk1
›››    The VIOS will reboot when finished

Monday, 24 September 2012

TOPAS Command Description

Topas Command :



Command line options :

To control the variable (left) side of the default topas screen
  -d x Number of disks (x) to list in top disk section (Default: 20)
  -c x Number of CPU lines (x) to list in top CPU section (Default: 20). Note: This section displays the CPU graph in the default display/mode and you must toggle to the top-CPU mode using the 'c' runtime option.
  -n x Number of network interfaces (x) to list in top network section (Default: 20)
  -p x Number of processes (x) to list in the top process section (Default: 20)

To control the content of the initial (non-default) topas screen
  -P Display only process listing. (similar to default "top" behavior.)
  -U username Used with the -P option to limit process listing to only those owned by username
  -D Display only disk listing (similar to iostat)
  -L Logical partition display
  -C Display cross-system (multiple LPAR) statistics

Other
  -h Display (a more complete list of) command line options
  -i x Number of seconds (x) in each screen refresh interval (Default: 2)
Runtime options

  a Return to the default topas screen
  c Toggles the CPU section between default (graph), off, and top CPU list
  C Changes to the cross-LPAR display (same as starting with -C)
  d Toggles the Disk section between top disks, no disk section, and summary disk statistics.
  D Changes to the disk statistics display (same as starting with -D)
  f Toggles the file statistic section from summary, top-3 filesystems, to off.
  h Changes to the help screen (includes additional help information / runtime keys)
  p Toggles the top process section on and off
  P Changes to the process view display (same as starting with -P)
  n Toggles the network section between top network interfaces, summary only, and off
  L Changes to LPAR view (same as starting with -L)
  q Quit topas
topas Tips

The right hand side of the default topas screen is hard-set and cannot be toggled. It will only display as many lines as fit in a default terminal size. The left hand side items can be toggled with keys for each section and (frequently) be expanded to use the entire screen with additional data not available in the default screen.
Columns on the left hand side of the screen (and the full screen modes) can be sorted by moving the cursor between the section headings. The current sort order can be determined by the highlighted section heading.
Alias the string top to topas -P to (alias top='topas -P') to have a top-like command. Another alternative that gives more data to processes but still uses the the default topas screen is topas -d 0 -n 0 (alias top='topas -d 0 -n 0').
Where to go from here

CPU:

topas provides a fairly deep analysis of system CPU load. It will allow you to identify the offending process that is consuming CPU on a system. Once a system is identified as CPU bound from the main screen of topas, you only need to look at the process list to see the process that is driving the usage. topas -P will display a more complete list of top processes that are by default sorted by CPU utilization.

Finding an offending process is the easy part of the battle when diagnosing CPU issues. The next step is to determine how the CPU is consumed. Application tools (such as those found in databases) can be helpful in this area. AIX provides a number of profiling tools that tell what an application is doing. truss, ProbeVue (AIX 6), and a number of trace-based utilities (curt, pprof, locktrace).

When looking at total CPU utilization, one should watch for natural plateaus that form when a single threaded process becomes CPU bound on a multiple processor system. Symptoms of this show up as a consistent CPU utilization number that is at or near a fraction of the total CPU capacity of the system. For example, a single threaded CPU bound process will show up as 50% utilization on a 2 processor system, 33% on a 3 processor system, 25% on a four processor system, etc...

An additional issue associated with many larger / partitioned systems is the concept of processor affinity. While not directly a CPU related performance measurement, poor processor affinity on a LPARed system will cause additional CPU time as memory is accessed from remote cache or memory locations. Processor affinity can be monitored with the lparstat and mpstat tools. This can be monitored using the -d option to mpstat and looking for higher numbers in SXrd columns, where an increasing value of X represents poorer processor affinity.

Finally, it is essential to understand the underlying nature of a virtualized system. The number (or parts of) physical CPUs that back a virtual processor is key in understanding how loaded the system is. From a system point of view it may appear that a single CPU has been consumed, but in reality it may actually only be 1/10 th of a processor in a capped micro-partition. topas will tell you the Physc (number of physical CPUs consumed) and %Entc (percentage of entitled capacity) when the system is running in a micro-partition.

Memory:

High memory utilization manifests itself as CPU bound, but over consumption or over-subscription of memory takes the form of paging. This is when processes have allocated and used more memory than the system physically has. To maintain the increased memory footprint of each process the system must write portions of memory to disk in a paging space.

The standard method of measuring memory is by looking for paging. Most healthy systems will page to some degree to favor more active applications and files (to cache). So when looking at paging statistics it is key to note how much paging space is in use, but how much paging activity is happening at this time.

The amount of paging space in use is visible on the main screen of topas. slightly more detailed information is available from the lsps -a and svmon commands. It should be noted that a higher value in paging space utilization may not necessarily represent memory stress. It is possible that a one time event may have pushed many unused pages to disk. It is necessary to determine if the paging is ongoing and / or if the event that is causing it is one that is persistent and repeatable.

The primary method to look for bloated processes is to start topas with the -P switch and sort the list by "PAGE SPACE" (by moving the cursor over that field). This does not tell how much of the application is paged out but how much of the application memory is backed by paging space.

It is not necessarily useful to see what application is paged out as this is not as relevant as the fact that the system is paging and how much the system is paging. (It is possible to see individual process memory usage using svmon -P <PID>) The key pieces of information are the amount of paging, the rate of paging, and who is pushing the others out (who is using more than expected).

Disk:

Extended disks statistics are viewable using the D runtime or -D command line option to topas. In both the default screen and the extended disk statistics screen you can sort the disk results based upon various fields by moving the cursor over that field.

The most important fields to look for on a disk is the transfer rate and the % Busy. Neither of these items alone will tell the story of disk I/O. A low transfer rate may be a disk operating at full capacity handling less optimal I/O requests as opposed to the relatively quiet disk that it appears to be. A poorly performing disk, such as a disk array that is rebuilding, will go to 100% busy but may not be transferring much data at all.

The transfer rate is an indication of how much data is moving between the disk and the system. This number can vary based upon the kind of I/O that the system is doing. Random I/O will generate less of a transfer rate because the disk will be forced to seek to new locations between I/Os. This time spent seeking will subtract from the amount of data that can be transfered. If the system is processing larger, more sequential I/O then it will tend to have a larger transfer rate.

Reading the % Busy rate tells how busy the system considers the disk. It is a measurement of how much time the system spent waiting for I/O requests to that disk. It is not a measurement of how much the disk is actually transferring or how efficient the disk is. When used with the transfer rate it can be used to determine what the maximum transfer rate is. A disk may not go 100% busy if the system lacks the processing power to support the I/O.

When looking for data beyond what topas gives the next place to look is to the iostat command. This is a rather comprehensive tool in terms of data that it provides for disk statistics. Once a hot disk has been found, filemon can be used to watch what files are being accessed and fileplace can be used to look for fragmentation in individual files.

Network :

topas does not display more networking information than what is available on the default screen. Additional information is available from the netstat or XXXstat (where XXX is the interface type - such as entstat, tokstat, etc...).

entstat (and its variants) work on the device layer (ent0) while netstat works on the upper layer (en0). The following command will display a screen full of detailed device statistics every second:
  while [ 1 ] ; do clear ; entstat ent0 ; sleep 2 ; done
A similar command for en0 is:
  netstat -I en0 2

There are a number of application specific tools, diagnostic aids, and trace based tools for network analysis. These include, but are not limited to: nfsstat, netpmon, iptrace, ipreport, ipfilter.

Sunday, 23 September 2012

VIOS User Mangement :

VIOS User Related Questions :

•padmin is the only user for most configurations. It is possible to configure additional users, such as operational users for monitoring purposes.
 
List attributes of the padmin user 
lsuser padmin

List all users on the system 
lsuser
›››   The optional parameter "ALL" is implied with no parameter.
Change the password for the current user 
passwd

VIOS Network Related Commands :


Vios Network Commands :

Enable jumbo frames on the ent0 device 
chdev -dev ent0 -attr jumbo_frames=yes

View settings on ent0 device 
lsdev -dev ent0 -attr

List TCP and UDP sockets listening and in use 
lstcpip -sockets -family inet

List all (virtual and physical) ethernet adapters in the VIOS 
lstcpip -adapters
Equivalent of no -L command

optimizenet -list
Set up initial TCP/IP config (en10 is the interface for the SEA ent10)

mktcpip -hostname vios1 \
        -inetaddr 10.143.181.207 \
        -interface en10 \
        -start -netmask 255.255.252.0 \
        -gateway 10.143.180.1

Find the default gateway and routing info on the VIOS 
netstat -routinfo

List open (TCP) ports on the VIOS IP stack 
lstcpip -sockets | grep LISTEN

Show interface traffic statistics on 2 second intervals 
netstat -state 2

Show verbose statistics for all interfaces 
netstat -cdlistats

Show the default gateway and route table 
netstat -routtable

Change the default route on en0 (fix a typo from mktcpip) 
chtcpip -interface en0 \
        -gateway \
        -add 192.168.1.1 \
        -remove 168.192.1.1

Change the IP address on en0 to 192.168.1.2 
chtcpip -interface en0 \
        -inetaddr 192.168.1.2 \
        -netmask 255.255.255.0

VIOS Useful Commands :


VIOS Commands :

Accept all VIOS license agreements
license -accept

(Re)Start the (initial) configuration assistant
cfgassist

Shutdown the server
shutdown
›››    Optionally include -restart

List the version of the VIOS system software 
ioslevel

List the boot devices for this lpar 
bootlist -mode normal -ls

List LPAR name and ID
lslparinfo

Display firmware level of all devices on this VIOS LPAR
lsfware -all

Display the MOTD
motd

Change the MOTD to an appropriate message 
motd "*****    Unauthorized access is prohibited!    *****"

List all (AIX) packages installed on the system 
lssw
------ Equivalent to lslpp -L in AIX
Display a timestamped list of all commands run on the system 

lsgcl

   display the current date and time of the VIOS 

chdate
Change the current time and date to 3:03 PM AUGUST 4, 2012

chdate -hour 1 \
       -minute 2 \
       -month 3 \
       -day 4 \
       -year 2009

Change just the timezone to AST 
chdate -timezone AST (Visible on next login)
›››   The date command is availible and works the same as in Unix.
Brief dump of the system error log

errlog
Detailed dump of the system error log

errlog -ls | more
Remove error log events older than 30 days

errlog -rm 30
›››   The errlog command allows you to view errors by sequence, but does not give the sequence in the default format.

• errbr works on VIOS provided that the errpt command is in padmin's PATH.


CPU Related Topics :



CPU Related Concepts:

Shared (virtual) processor partitions (Micro-Partitions) can utilize additional resources from the shared processor pool when available. Dedicated processor partitions can only use the "desired" amount of CPU, and only above that amount if another CPU is (dynamically) added to the LPAR.

• An uncapped partition can only consume up to the number of virtual processors that it has. (Ie: A LPAR with 5 virtual CPUs, that is backed by a minimum of .5 physical CPUs can only consume up to 5 whole / physical CPUs.) A capped partition can only consume up to its entitled CPU value. Allocations are in increments of 1/100th of a CPU, the minimal allocation is 1/10th of a CPU for each virtual CPU.

• All Micro-Partitions are guaranteed to have at least the entitled CPU value. Uncapped partitions can consume beyond that value, capped cannot. Both capped and uncapped relinquish unused CPU to a shared pool. Dedicated CPU partitions are guaranteed their capacity, cannot consume beyond their capacity, and on Power 6 systems, can relinquish CPU capacity to a shared pool.

• All uncapped micro-partitions using the shared processor pool compete for the remaining resources in the pool. When there is no contention for unused resources, a micro-partition can consume up to the number of virtual processors it has or the amount of CPU resources available to the pool.

• The physical CPU entitlement is set with the "processing units" values during the LPAR setup in the HMC. The values are defined as:
Minimum: The minimum physical CPU resource required for this partition to start.
Desired: The desired physical CPU resource for this CPU. In most situations this will be the CPU entitlement. The CPU entitlement can be higher if resources were DLPARed in or less if the LPAR started closer to the minimum value.
Maximum: This is the maximum amount of physical CPU resources that can be DLPARed into the partition. This value does not have a direct bearing on capped or uncapped CPU utilization.

• The virtual CPU entitlement is set in the LPAR configuration much like the physical CPU allocation. Virtual CPUs are allocated in whole integer values. The difference with virtual CPUs (from physical entitlements) is that they are not a potentially constrained resource and the desired number is always received upon startup. The minimum and maximum numbers are effectively limits on DLPAR operations.

Processor folding is an AIX CPU affinity method that insures that an AIX partition only uses as few CPUs as required. This is achieved by insuring that the LPAR uses a minimal set of physical CPUs and idles those it does not need. The benefit is that the system will see a reduced impact of configuring additional virtual CPUs. Processor folding was introduced in AIX 5.3 TL 3.
• When multiple uncapped micro-partitions compete for remaining CPU resources then the uncapped weight is used to calculate the CPU available to each partition. The uncapped weight is a value from 0 to 255. The uncapped weight of all partitions requesting additional resources is added together and then used to divide the available resources. The total amount of CPU received by a competing micro-partition is determined by the ratio of the partitions weight to the total of the requesting partitions. (The weight is not a nice value like in Unix.) The default priority for this value is 128. A partition with a priority of 0 is effectively a capped partition.



above figure shows that Virtualized and dedicated CPUs in a four CPU system with a single SPP.


    Dedicated CPU partitions do not have a setting for virtual processors. LPAR 3 in Figure 0 has a single dedicated CPU.
• LPAR 1 and LPAR2 in Figure 0 are Micro-Partitions with a total of five virtual CPUs backed by three physical CPUs. On a Power 6 system, LPAR 3 can be configured to relinquish unused CPU cycles to the shared pool where they will be available to LPAR 1 and 2 (provided they are uncapped).

PowerVM Definitions:


PowerVM Definitions:


CoD - Capacity on Demand. The ability to add compute capacity in the form of CPU or memory to a running system by simply activating it. The resources must be pre-staged in the system prior to use and are (typically) turned on with an activation key. There are several different pricing models for CoD.



DLPAR - Dynamic Logical Partition. This was used originally as a further clarification on the concept of an LPAR as one that can have resources dynamically added or removed. The most popular usage is as a verb; ie: to DLPAR (add) resources to a partition.



HEA - Host Ethernet Adapter. The physical port of the IVE interface on some of the Power 6 systems. A HEA port can be added to a port group and shared amongst LPARs or placed in promiscuous mode and used by a single LPAR (typically a VIOS LPAR).



HMC - Hardware Management Console. An "appliance" server that is used to manage Power 4, 5, and 6 hardware. The primary purpose is to enable / control the virtualization technologies as well as provide call-home functionality, remote console access, and gather operational data.

IVE - Integrated Virtual Ethernet. The capability to provide virtualized Ethernet services to LPARs without the need of VIOS. This functionality was introduced on several Power 6 systems.


IVM - Integrated Virtualization Manager. This is a management interface that installs on top of the VIOS software that provides much of the HMC functionality. It can be used instead of a HMC for some systems. It is the only option for virtualization management on the blades as they cannot have HMC connectivity.


LHEA - Logical Host Ethernet Adapter. The virtual interface of a IVE in a client LPAR. These communicate via a HEA to the outside / physical world.
LPAR - Logical Partition. This is a collection of system resources that can host an operating system. To the operating system this collection of resources appears to be a complete physical system. Some or all the resources on a LPAR may be shared with other LPARs in the physical system.


Lx86 - Additional software that allows x86 Linux binaries to run on Power Linux without recompilation.

MES - Miscellaneous Equipment Specification. This is a change order to a system, typically in the form of an upgrade. A RPO MES is for Record Purposes Only. Both specify to IBM changes that are made to a system.


MSPP - Multiple Shared Processor Pools. This is a Power 6 capability that allows for more than one SPP.



SEA - Shared Ethernet Adapter. This is a VIOS mapping of a physical to a virtual Ethernet adapter. A SEA is used to extend the physical network (from a physical Ethernet switch) into the virtual environment where multiple LPARs can access that network.



SPP - Shared Processor Pool. This is an organizational grouping of CPU resources that allows caps and guaranteed allocations to be set for an entire group of LPARs. Power 5 systems have a single SPP, Power 6 systems can have multiple.



VIOC - Virtual I/O Client. Any LPAR that utilizes VIOS for resources such as disk and network.

VIOS - Virtual I/O Server. The LPAR that owns physical resources and maps them to virtual adapters so VIOC can share those resources.