Mandalika's scratchpad [ Work blog @Oracle | Stock Market Notes | My Music Compositions ]

Old Posts: 09.04  10.04  11.04  12.04  01.05  02.05  03.05  04.05  05.05  06.05  07.05  08.05  09.05  10.05  11.05  12.05  01.06  02.06  03.06  04.06  05.06  06.06  07.06  08.06  09.06  10.06  11.06  12.06  01.07  02.07  03.07  04.07  05.07  06.07  08.07  09.07  10.07  11.07  12.07  01.08  02.08  03.08  04.08  05.08  06.08  07.08  08.08  09.08  10.08  11.08  12.08  01.09  02.09  03.09  04.09  05.09  06.09  07.09  08.09  09.09  10.09  11.09  12.09  01.10  02.10  03.10  04.10  05.10  06.10  07.10  08.10  09.10  10.10  11.10  12.10  01.11  02.11  03.11  04.11  05.11  07.11  08.11  09.11  10.11  11.11  12.11  01.12  02.12  03.12  04.12  05.12  06.12  07.12  08.12  09.12  10.12  11.12  12.12  01.13  02.13  03.13  04.13  05.13  06.13  07.13  08.13  09.13  10.13  11.13  12.13  01.14  02.14  03.14  04.14  05.14  06.14  07.14  09.14  10.14  11.14  12.14  01.15  02.15  03.15  04.15  06.15  09.15  12.15  01.16  03.16  04.16  05.16  06.16  07.16  08.16  09.16  12.16  01.17  02.17  03.17  04.17  06.17  07.17  08.17 


Wednesday, August 16, 2017
 
Python Lists in 5 Minutes or Less .. Part 2

SEE ALSO: Python Lists in 5 Minutes or Less .. Part 1


Extracting Part of a List (sublist)

Lists can be sliced using [:] construction. list[start:end] (slicing) returns a new list containing elements in the original list from index position "start" to "(end-1)". Index starts at 0. "start" and "end" positions are optional. When "start" position was omitted, start of the list is assumed. When "end" position was omitted, end of the list is assumed. If both are omitted, entire list is returned as is.

eg.,
>>> record
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, '925-93-2176', 'John', 'Keats', 'Sears Tower, Chicago, IL 46371']

>>> record[4:7]
[140.32, '925-93-2176', 'John']

>>> record[:4]
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201']

>>> record[4:]
[140.32, '925-93-2176', 'John', 'Keats', 'Sears Tower, Chicago, IL 46371']

>>> record[:]
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, '925-93-2176', 'John', 'Keats', 'Sears Tower, Chicago, IL 46371']

Negative index counts back from the end of the list (right-to-left). -1 refers to the right most (last) element in the list.

eg.,
Extract last 3 elements in the list using negative index.

>>> record[-3:]
['John', 'Keats', 'Sears Tower, Chicago, IL 46371']

Extract all elements except the last 3.

>>> record[:-3]
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, '925-93-2176']

An optional "step" parameter can be specified to skip few elements from the list, or put another way to get every nth element from the list. Syntax: list[start:end:step]

eg.,
Fetch every alternate element from the beginning of the list. 

>>> record[::2]
['Gary', 25, 140.32, 'John', 'Sears Tower, Chicago, IL 46371']

Reverse the list.

>>> record[::-1]
['Sears Tower, Chicago, IL 46371', 'Keats', 'John', '925-93-2176', 140.32, 'Network Ct, Twin Peaks, WA 90201', 25, 'Doe', 'Gary']

Note that the new lists returned from slicing a list are in reality shallow copies so contain references to elements from the original list.


Sorting a List

sort() method of the list object returns nothing (None) but modifies the original list by sorting in place. sort method supports 3 optional parameters -- method to be used for sorting (cmp), function to be executed with key element (key) and the reverse option. Syntax: sort(cmp, key, reserve).

eg.,
>>> record
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, '925-93-2176', 'John', 'Keats', 'Sears Tower, Chicago, IL 46371']

>>> record.sort()
>>> record
[25, 140.32, '925-93-2176', 'Doe', 'Gary', 'John', 'Keats', 'Network Ct, Twin Peaks, WA 90201', 'Sears Tower, Chicago, IL 46371']

>>> record=['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, '925-93-2176', 'John', 'Keats', 'Sears Tower, Chicago, IL 46371']

>>> record.sort(reverse=True)
>>> record
['Sears Tower, Chicago, IL 46371', 'Network Ct, Twin Peaks, WA 90201', 'Keats', 'John', 'Gary', 'Doe', '925-93-2176', 140.32, 25]

If you don't want the original list to be modified, one option is to make a copy of the list and call sort() on the copy. Another option is to use the built-in sorted() function. The sorted() function returns the sorted list. It also accepts reverse parameter similar to sort() of the list.

eg.,
>>> record=['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, '925-93-2176', 'John', 'Keats', 'Sears Tower, Chicago, IL 46371']

>>> import copy
>>> recorddup = copy.copy(record)
>>> recorddup.sort()

>>> recorddup
[25, 140.32, '925-93-2176', 'Doe', 'Gary', 'John', 'Keats', 'Network Ct, Twin Peaks, WA 90201', 'Sears Tower, Chicago, IL 46371']

>>> record
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, '925-93-2176', 'John', 'Keats', 'Sears Tower, Chicago, IL 46371']

>>> sorted(record)
[25, 140.32, '925-93-2176', 'Doe', 'Gary', 'John', 'Keats', 'Network Ct, Twin Peaks, WA 90201', 'Sears Tower, Chicago, IL 46371']

>>> sorted(record, reverse=True)
['Sears Tower, Chicago, IL 46371', 'Network Ct, Twin Peaks, WA 90201', 'Keats', 'John', 'Gary', 'Doe', '925-93-2176', 140.32, 25]

Comparing Lists

Lists can be compared for equality using == operator. Lexicographical comparison is possible with the help of less-than and greater-than operators.

eg.,
>>> record
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, '925-93-2176', 'John', 'Keats', 'Sears Tower, Chicago, IL 46371']

>>> recorddup
[25, 140.32, '925-93-2176', 'Doe', 'Gary', 'John', 'Keats', 'Network Ct, Twin Peaks, WA 90201', 'Sears Tower, Chicago, IL 46371']

>>> record == recorddup
False

>>> sorted(record) == recorddup
True

>>> record > recorddup
True

>>> record < recorddup
False

Labels:




Monday, August 07, 2017
 
Word List #3

Prior lists:
    #1    #2  


WORD MEANING
 
convalescent (of a person) recovering from an illness or operation
 
forlorn pitifully sad and abandoned or lonely
 
insouciant showing a casual lack of concern; indifferent
 
groundswell a buildup of opinion or feeling in a large section of the population
 
bluster talk in a loud, aggressive, or indignant way with little effect
 
inchoate just begun and so not fully formed or developed; rudimentary
 
exult show or feel elation or jubilation esp as the result of a success
 
bleat speak or complain in a weak, querulous, or foolish way
 
hearken listen
 
finagle obtain something by devious or dishonest means
 
cruft badly designed, unnecessarily complicated, or unwanted code or software
 
corral gather together and confine (a group of people or things)
 
throb feel pain in a series of regular beats
 
recalcitrant having an obstinately uncooperative attitude toward authority or discipline
 
prescient having or showing knowledge of events before they take place
 
newspeak ambiguous euphemistic language used chiefly in political propaganda
 
apparatchik an official in a large political organization
 
twaddle trivial or foolish speech or writing; nonsense
 
imbroglio an extremely confused, complicated, or embarrassing situation
 
serenade a piece of music sung or played in the open air, typically by a man at night under the window of his lover
 
trenchant vigorous or incisive in expression or style
 
kerfuffle a commotion or fuss, especially one caused by conflicting views
 
denouement the final part of a play, movie, or narrative in which the strands of the plot are drawn together and matters are explained or resolved
 
flagrant (of something considered wrong or immoral) shockingly noticeable or evident; obvious; glaring
 
perp walk an act of walking into or out of a police station, courthouse, etc., that a person in police custody is made to perform for the benefit of the media
 

25 words

Labels:




Saturday, July 22, 2017
 
Python Lists in 5 Minutes or Less .. Part 1

Key Points:


List Creation

Create an empty list

>>> record = []

Create and initialize a list

>>> record = ['Gary', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, 'Hardhat Worker']

Initialize a list to a size with an initial value of any data type for each element.

eg.,

Create an array list containing 10 elements each initialized to zero

>>> array = [0]*10

>>> print array
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Accessing Elements

Access or modify elements by their position. First element is at position (index) zero.

>>> print record
['Gary', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, 'Hardhat Worker']

>>> print record[4]
Hardhat Worker

>>> record[4] = 'Mailman'

Adding Elements

Add a single item to the end of a list with the help of append() method. The item can be any data type or another list.

>>> record.append('925-93-2176')

Use insert() method to add an item at a certain position in the list. First argument specifies the position.

>>> record.insert(1, 'Doe')

>>> print record
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, 'Mailman', '925-93-2176']

Combining Lists

One way is to add a list to another.

>>> record2 = ['John', 'Keats', 52]
>>> record += record2

>>> print record
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, 'Mailman', '925-93-2176', 'John', 'Keats', 52]

Another way is to use extend() method combine one list with another.

>>> record3 = ['Sears Tower, Chicago, IL 46371', 'Senator']
>>> record.extend(record3)

>>> print record
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, 'Mailman', '925-93-2176', 'John', 'Keats', 52, 'Sears Tower, Chicago, IL 46371', 'Senator']

Removing Elements

pop() method removes and returns the element from a specific position if the position was specified. Otherwise, last element of the list will be removed, and returned to the caller.

>>> record.pop()
'Senator'
>>> record.pop(5)
'Mailman'

del list[idx] is an alternative to calling list.pop(idx).

>>> del record[5]

>>> print record
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, '925-93-2176', 'John', 'Keats', 52, 'Sears Tower, Chicago, IL 46371']

remove() method removes an element by value. In case of duplicates, this method removes only the first occurrence of the element.

>>> record.remove(52)

>>> print record
['Gary', 'Doe', 25, 'Network Ct, Twin Peaks, WA 90201', 140.32, '925-93-2176', 'John', 'Keats', 'Sears Tower, Chicago, IL 46371']

List Size (length)

The built-in len() method returns the length of a list.

>>> len(record)
9

Labels:




Friday, July 14, 2017
 
Blast from the Past : The Weekend Playlist #13

Previous playlists:

    #1    #8 (50s, 60s and 70s)    |    #2    #3    #4    #5 (80s)    |    #6    #7    #9 (90s)    |    #11    #12 (00s)    |    #10 (Instrumental)

New category: "10s" (2010s) playlist. Audio & Widget courtesy: Spotify

Labels:




Friday, June 30, 2017
 
Oracle SuperCluster: A Brief Introduction to osc-resalloc

Target Audience: Oracle SuperCluster Customers

The primary objective of this blog post is to provide some related information on this obscure tool to inquisitive users/customers as they might have noticed the osc-resalloc binary and the namesake package and wondered what is it for at some point.

On a high-level, osc-resalloc is a SuperCluster internal tool that acts like a plug-in for customer visible SuperCluster Virtual Assistant (SVA). SVA and osc-resalloc work in tandem while assigning core, memory and network resources for IO Domains. Optimal allocation of resources [wherever possible] is one of the major functions of osc-resalloc.

osc-resalloc is a command line tool that gets invoked [by SVA] on-demand, does its work for few seconds (maximum 1-2s) and quits. It is a non-intrusive and non-disruptive tool -- meaning the tool won't consume much resources on the host where it runs (usually Control Domain) and it won't make any destructive changes on its own.

End-users / Customers are generally prohibited from invoking this tool directly from command line as it won't serve any meaningful purpose; and in some cases doing so might even impact SVA functionality negatively. This is the main reason there is no mention of osc-resalloc in SuperCluster Documentation Set. And the tool won't show any help on command line either.

# /opt/oracle.supercluster/bin/osc-resalloc

                         OSC : Resource Allocation Engine
                        v2.3  built on Nov  4 2016 11:45:47

# /opt/oracle.supercluster/bin/osc-resalloc -h
# /opt/oracle.supercluster/bin/osc-resalloc -help
# /opt/oracle.supercluster/bin/osc-resalloc -?
#

I guess that's all there is to it.

Related:

Labels:




Saturday, June 10, 2017
 
Blast from the Past : The Weekend Playlist #12

Previous playlists:

    #1    #8 (50s, 60s and 70s)    |    #2    #3    #4    #5 (80s)    |    #6    #7    #9 (90s)    |    #11 (00s)    |    #10 (Instrumental)

Another 00s playlist. Audio & Widget courtesy: Spotify

Labels:




Sunday, April 30, 2017
 
Non-Interactive osc-setcoremem

Target Audience: Oracle SuperCluster Customers

By default osc-setcoremem runs in interactive mode prompting and waiting for critical user inputs. In a way it makes sense as the core count and memory options for the remaining logical domains in input screens depend entirely on the cores and memory chosen for the domains that user already provided input for. In other words, available core count and memory capacity for some of the domains dynamically change based on the user selection of resources for some of the other domains on the target system.

If the customer is pretty comfortable with the tool and knows ahead the combination of core/memory inputs for each of the logical domains that the tool would accept without complaining, they can probably run the tool in non-interactive mode for convenience. Non-interactive mode can be used to perform all operations that are supported by interactive mode. Tool's functional behavior is the same irrespective of how the core/memory inputs were provided for each of the logical domains -- interactively or non-interactively.

Non-interactive mode has been introduced in the 2.3 release of osc-setcoremem tool. This mode can be triggered by a combination of -type and -res options. An optional -y flag would skip the prompt for confirmation.

Supported options in non-interactive mode:

-type socket|core -res [min|max|current|x_sockets|x_cores/x_memgb]:[...]:[min|max|current|x_sockets|x_cores/x_memgb] [-y|-n] [-h|-help]

-type specifies the type of granularity to be used for resource allocations -- socket or core.

-res specifies the socket or core/memory resource assignment to all logical domains that are eligible for resource reconfiguration; and each resource assignment is separated by a ':' (colon ). The order of resource assignments matches the order shown in the output from osc-setcoremem -list.

-h|-help option provides on-screen help with few example input strings.

Please review the Change CPU/Memory Allocations Non-Interactively section in Oracle SuperCluster M7 Series Administration Guide for additional details.

Example:

Here is an example osc-setcoremem session showing the non-interactive mode in action. Once user provides all required inputs on a single line, the tool shows the interactive screens and auto-fills the inputs as if user entered those inputs. This gives the user a chance to compare what was provided as inputs against what is being used by the tool.

# cd /opt/oracle.supercluster/bin
# ./osc-setcoremem -list

                      osc-setcoremem (non-interactive)
                    v2.4  built on April 23 2017 17:12:01

 Current Configuration: SuperCluster Full-Rack T5-8

 +-----+----------------------------------+---- CURRENT ---+-----------+--- MIN REQD ---+
 |  ID | DOMAIN                           | CORES | MEM GB |   TYPE    | CORES | MEM GB |
 +-----+----------------------------------+-------+--------+-----------+-------+--------+
 |   1 | primary                          |    32 |    512 | Dedicated |     8 |     64 |
 |   2 | ssccn1-dom1                      |    16 |    256 | Dedicated |     4 |     32 |
 |   3 | ssccn1-dom3                      |    16 |    256 | Dedicated |     4 |     32 |
 |   4 | ssccn1-dom4                      |    16 |    256 | Dedicated |     4 |     32 |
 +-----+----------------------------------+-------+--------+-----------+-------+--------+

# ./osc-setcoremem -type core -res min/min:min/min:current/current:max/max -n <-- user types only these options

                      osc-setcoremem (non-interactive)
                    v2.4  built on April 23 2017 17:12:01

 Current Configuration: SuperCluster Full-Rack T5-8

 +----------------------------------+-------+--------+-----------+--- MINIMUM ----+
 | DOMAIN                           | CORES | MEM GB |   TYPE    | CORES | MEM GB |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | primary                          |    32 |    512 | Dedicated |     8 |     64 |
 | ssccn1-dom1                      |    16 |    256 | Dedicated |     4 |     32 |
 | ssccn1-dom2                      |     1 |     16 |   Root    |     1 |     16 |
 | ssccn1-dom3                      |    16 |    256 | Dedicated |     4 |     32 |
 | ssccn1-dom4                      |    16 |    256 | Dedicated |     4 |     32 |
 | ssccn1-dom5                      |     4 |     64 |   Root    |     4 |     64 |
 | *ssccn1-io-db-test-domain-01     |     4 |     64 |    IO     |     1 |     16 |
 | *ssccn1-io-app25                 |     8 |    128 |    IO     |     1 |     16 |
 | *ssccn1-io-hrapp   		    |     2 |     32 |    IO     |     1 |     16 |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | Parked Resources (Approx)        |    29 |    464 |    --     |    -- |   --   |
 | Memory in Use by _sys_ Pool      |    -- |   1.25 |    --     |    -- |   --   |
 +----------------------------------+-------+--------+-----------+-------+--------+

 [ INFO ] following domains will be ignored in this session.

 Root Domains              IO Domains
 ------------              ----------
 ssccn1-dom2               ssccn1-io-db-test-domain-01
 ssccn1-dom5               ssccn1-io-app25
                           ssccn1-io-hrapp

 CPU Granularity Preference:

        1. Socket
        2. Core

 In case of Socket granularity, proportional memory capacity is
  automatically selected for you.

 Choose Socket or Core [S or C] C

 Step 1 of 2: Core Count

 primary      : specify number of cores [min: 8, max: 68. default: 32] : 8
                you chose [8] cores for primary domain

 ssccn1-dom1  : specify number of cores [min: 4, max: 64. default: 16] : 4
                you chose [4] cores for ssccn1-dom1 domain

 ssccn1-dom3  : specify number of cores [min: 4, max: 64. default: 16] : 16
                you chose [16] cores for ssccn1-dom3 domain

 ssccn1-dom4  : specify number of cores [min: 4, max: 52. default: 16] : 52
                you chose [52] cores for ssccn1-dom4 domain


 Configuration In Progress After Core Count Selection:

 +----------------------------------+-------+--------+-----------+--- MINIMUM ----+
 | DOMAIN                           | CORES | MEM GB |   TYPE    | CORES | MEM GB |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | primary                          |     8 |    512 | Dedicated |     8 |     64 |
 | ssccn1-dom1                      |     4 |    256 | Dedicated |     4 |     32 |
 | ssccn1-dom3                      |    16 |    256 | Dedicated |     4 |     64 |
 | ssccn1-dom4                      |    52 |    256 | Dedicated |     4 |    208 |
 | *ssccn1-dom2                     |     1 |     16 |   Root    |     1 |     16 |
 | *ssccn1-dom5                     |     4 |     64 |   Root    |     4 |     64 |
 | *ssccn1-io-db-test-domain-01     |     4 |     64 |    IO     |     1 |     16 |
 | *ssccn1-io-app25                 |     8 |    128 |    IO     |     1 |     16 |
 | *ssccn1-io-hrapp   		    |     2 |     32 |    IO     |     1 |     16 |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | Parked Resources (Approx)        |    29 |    464 |    --     |    -- |   --   |
 | Memory in Use by _sys_ Pool      |    -- |   1.25 |    --     |    -- |   --   |
 +----------------------------------+-------+--------+-----------+-------+--------+


 Step 2 of 2: Memory Capacity
        (must be 16 GB aligned)

 primary      : specify memory capacity in GB [min: 64, max: 416. default: 416] : 64
                you chose [64 GB] memory for primary domain

 ssccn1-dom1  : specify memory capacity in GB [min: 32, max: 208. default: 208] : 32
                you chose [32 GB] memory for ssccn1-dom1 domain

 ssccn1-dom3  : specify memory capacity in GB [min: 64, max: 256. default: 256] : 256
                you chose [256 GB] memory for ssccn1-dom3 domain

 ssccn1-dom4  : specify memory capacity in GB [min: 208, max: 928. default: 256] : 928
                you chose [928 GB] memory for ssccn1-dom4 domain


 Configuration In Progress After Memory Capacity Selection:

 +----------------------------------+-------+--------+-----------+--- MINIMUM ----+
 | DOMAIN                           | CORES | MEM GB |   TYPE    | CORES | MEM GB |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | primary                          |     8 |     64 | Dedicated |     8 |     64 |
 | ssccn1-dom1                      |     4 |     32 | Dedicated |     4 |     32 |
 | ssccn1-dom3                      |    16 |    256 | Dedicated |     4 |     64 |
 | ssccn1-dom4                      |    52 |    928 | Dedicated |     4 |    208 |
 | *ssccn1-dom2                     |     1 |     16 |   Root    |     1 |     16 |
 | *ssccn1-dom5                     |     4 |     64 |   Root    |     4 |     64 |
 | *ssccn1-io-db-test-domain-01     |     4 |     64 |    IO     |     1 |     16 |
 | *ssccn1-io-app25                 |     8 |    128 |    IO     |     1 |     16 |
 | *ssccn1-io-hrapp   		    |     2 |     32 |    IO     |     1 |     16 |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | Parked Resources (Approx)        |    29 |    464 |    --     |    -- |   --   |
 | Memory in Use by _sys_ Pool      |    -- |   1.25 |    --     |    -- |   --   |
 +----------------------------------+-------+--------+-----------+-------+--------+


 Following domains will be restarted:

        ssccn1-dom4
        ssccn1-dom1

 This configuration change requires rebooting the Control Domain.
 Do you want to proceed? Y/N : N

 No changes made to existing CPU / Memory configuration.

Tip:

When running interactively, lookout for INFO tag that shows equivalent non-interactive input string that can be used later on if the system needs to be reconfigured with the same resource configuration from a different random state.

eg.,

 [ INFO ] Equivalent non-interactive input string for the record:
         /opt/oracle.supercluster/bin/osc-setcoremem -type core -res 33/368:4/176:17/96:23/128

Resetting the CPU/Memory Configuration

-reset option returns the system to the original state of socket/core/memory allocations without affecting other changes that were made in each of the domains since the system was set up initially. For example, if a domain was reconfigured to use 40 cores from the original setup of 32 cores, -reset option brings the domain to the originally allocated 32 cores. This option wouldn't impact the applications that were configured inside the domains - it only impacts the core/memory resources that the target domains can use. Also this option does not reset the SP configuration.

SEE ALSO:

Labels:




Saturday, April 15, 2017
 
OnePlus X: Windows Won't Auto-Mount as Storage Drive When Connected via USB cable

Here's one way to check and fix. Of course it works only if the USB option was misconfigured.

Step 1: pull down the notification bar from the top of the display. Click on "USB for Charging - Touch for more options"

Step 2: select "File transfers" option under USB options if not selected and check again

Labels:




Friday, March 31, 2017
 
osc-setcoremem: A Brief Introduction

Target Audience: Oracle SuperCluster Customers

On a high-level, osc-setcoremem is a SuperCluster tool that assists in making changes to the CPU and memory configurations of one or more dedicated domains running on a SuperCluster compute node. osc-setcoremem helps in removing (park) resources from dedicated domains for licensing purposes. Also using osc-setcoremem, some of the CPU and memory resources can be removed from one dedicated domain and added to remaining dedicated domains. Root domains are ignored by default.

Any user with no prior knowledge of Oracle VM Server for SPARC (also known as Logical Domains) administration, and how the operating system organizes CPU and memory resources into different locality groups (lgroups) can easily reconfigure the dedicated domains to achieve desired (or in some cases close to the desired) CPU, memory configurations. Only those users with root privileges can run the tool.

osc-setcoremem is currently supported on all SuperCluster platforms -- T4-4, T5-8, M6-32 and M7. User can change the CPU, memory configurations at Socket or Core granularity. For the complete list of supported functionality along with known limitations, please review the Configuring CPU and Memory Resources section in Oracle SuperCluster M7 Series Administration Guide.

Here is a sample interactive osc-setcoremem session that changes the CPU, memory configuration of couple of dedicated domains on a SuperCluster M6-32 compute node.

# /opt/oracle.supercluster/bin/osc-setcoremem

                              osc-setcoremem
                    v2.3  built on Jan 30 2017 11:48:13

 Current Configuration: SuperCluster Fully-Populated M6-32 Base

 +----------------------------------+-------+--------+-----------+--- MINIMUM ----+
 | DOMAIN                           | CORES | MEM GB |   TYPE    | CORES | MEM GB |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | primary                          |    24 |   2048 | Dedicated |     2 |     32 |
 | ssccn1-dom1                      |    24 |   2048 | Dedicated |     2 |     32 |
 | ssccn1-dom2                      |    24 |   2048 | Dedicated |     2 |     32 |
 | ssccn1-dom3                      |     2 |     32 |   Root    |     2 |     32 |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | Parked Resources (Approx)        |    22 |   2016 |    --     |    -- |   --   |
 | Memory in Use by _sys_ Pool      |    -- |   1.25 |    --     |    -- |   --   |
 +----------------------------------+-------+--------+-----------+-------+--------+

 [ INFO ] following domains will be ignored in this session.

 Root Domains
 ------------
 ssccn1-dom3

 CPU Granularity Preference:

        1. Socket
        2. Core

 In case of Socket granularity, proportional memory capacity is
  automatically selected for you.

 Choose Socket or Core [S or C] C

 Step 1 of 2: Core Count

 primary      : specify number of cores [min: 2, max: 68. default: 24] : 30
                you chose [30] cores for primary domain

 ssccn1-dom1  : specify number of cores [min: 2, max: 40. default: 24] :
                you chose [24] cores for ssccn1-dom1 domain

 ssccn1-dom2  : specify number of cores [min: 2, max: 18. default: 18] : 12
                you chose [12] cores for ssccn1-dom2 domain


 Configuration In Progress After Core Count Selection:

 +----------------------------------+-------+--------+-----------+--- MINIMUM ----+
 | DOMAIN                           | CORES | MEM GB |   TYPE    | CORES | MEM GB |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | primary                          |    30 |   2048 | Dedicated |     2 |    128 |
 | ssccn1-dom1                      |    24 |   2048 | Dedicated |     2 |     96 |
 | ssccn1-dom2                      |    12 |   2048 | Dedicated |     2 |     64 |
 | *ssccn1-dom3                     |     2 |     32 |   Root    |     2 |     32 |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | Parked Resources (Approx)        |    28 |   2016 |    --     |    -- |   --   |
 | Memory in Use by _sys_ Pool      |    -- |   1.25 |    --     |    -- |   --   |
 +----------------------------------+-------+--------+-----------+-------+--------+


 Step 2 of 2: Memory Capacity
        (must be 16 GB aligned)

 primary      : specify memory capacity in GB [min: 128, max: 4032. default: 2048] : 2816
                you chose [2816 GB] memory for primary domain

 ssccn1-dom1  : specify memory capacity in GB [min: 96, max: 2048. default: 2048] :
                you chose [2048 GB] memory for ssccn1-dom1 domain

 ssccn1-dom2  : specify memory capacity in GB [min: 64, max: 1280. default: 1280] : 512
                you chose [512 GB] memory for ssccn1-dom2 domain


 Configuration In Progress After Memory Capacity Selection:

 +----------------------------------+-------+--------+-----------+--- MINIMUM ----+
 | DOMAIN                           | CORES | MEM GB |   TYPE    | CORES | MEM GB |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | primary                          |    30 |   2816 | Dedicated |     2 |    128 |
 | ssccn1-dom1                      |    24 |   2048 | Dedicated |     2 |     96 |
 | ssccn1-dom2                      |    12 |    512 | Dedicated |     2 |     64 |
 | *ssccn1-dom3                     |     2 |     32 |   Root    |     2 |     32 |
 +----------------------------------+-------+--------+-----------+-------+--------+
 | Parked Resources (Approx)        |    28 |   2784 |    --     |    -- |   --   |
 | Memory in Use by _sys_ Pool      |    -- |   1.25 |    --     |    -- |   --   |
 +----------------------------------+-------+--------+-----------+-------+--------+


 [ INFO ] Equivalent non-interactive input string for the record:
         /opt/oracle.supercluster/bin/osc-setcoremem -type core -res 30/2816:24/2048:12/512

 Following domains will be restarted:

        ssccn1-dom2

 This configuration change requires rebooting the Control Domain.
 Do you want to proceed? Y/N : y

 IMPORTANT NOTE:

 |  After the reboot, osc-setcoremem attempts to complete CPU, Memory reconfiguration.
 |  Please check syslog and the state of all domains before using the system.
 |  eg.,  dmesg | grep osc-setcoremem ; ldm list | grep -v active ; date

 Please wait while osc-setcoremem is setting up the new CPU, memory configuration.
 It may take a while. Be patient and do not interrupt.


 Executing ldm commands ..

0%    10    20    30    40    50    60    70    80    90   100%
|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*

Broadcast Message from root (pts/1) on sschost02 Fri Mar 31 16:03:13...
THE SYSTEM sschost02 IS BEING SHUT DOWN NOW ! ! !
Log off now or risk your files being damaged

        Task complete with no errors.

SEE ALSO:

Labels:




Wednesday, March 15, 2017
 
Word List #2

WORD MEANING
 
polemic a strong verbal or written attack on someone or something
 
emeritus having retired but allowed to retain their title as an honor
 
yank (short for yankee) slang for someone of American origin or heritage
 
pejorative expressing contempt or disapproval
 
gander look or glance at something (eg., take a gander at sth)
 
valiant showing courage or determination (eg., a valiant effort to do sth)
 
recuse to remove (oneself) from participation to avoid a conflict of interest
 
consigliere an adviser esp to a crime boss
 
hankering a strong desire to have or do something
 
crib copy (another person's work) illicitly or without acknowledgment
 
flummox perplex (someone) greatly; bewilder
 
ensconce establish or settle (someone) in a comfortable, safe, or secret place
 
ad hominem (of an argument or reaction) directed against a person rather than the position they are maintaining
 
vis-a-vis in relation to; with regard to
 
nascent (esp of a process or organization) just coming into existence and beginning to display signs of future potential
 
forage (of a person or animal) search widely for food or provisions
 
amble walk or move at a slow, relaxed pace
 
brook a small stream
 
compunction a feeling of guilt or moral scruple that prevents or follows the doing of something bad
 
vacuous having or showing a lack of thought or intelligence; mindless
 
mete dispense or allot justice, a punishment, or harsh treatment
 
glower have an angry or sullen look on one's face; scowl
 
disseminate spread or disperse (something, esp information) widely
 
germane relevant to a subject under consideration
 
veritable used as an intensifier, often to qualify a metaphor
 

25 words

Labels:





2004-2017 

This page is powered by Blogger. Isn't yours?