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  09.17  10.17 


Tuesday, October 17, 2017
 
osc-setcoremem: Simulation on Non-SuperCluster Nodes

.. simulation of domain CPU and memory configuration changes, that is.

Please check the first blog post in this series too - Oracle SuperCluster: osc-setcoremem simulator.

Keep in mind that fresh/new simulations should always start with configurations representing the base configuration of a SuperCluster node (PDom) to be simulated. Base configuration is the compute server CPU and memory resources that are initially allocated during a SuperCluster installation.

High-level steps:

  1. Copy osc-setcoremem v2.4 or later executable binary from any live SuperCluster environment onto the target non-supercluster SPARC system running Solaris 11.3 or later

  2. Generate base configuration file in the original live SuperCluster environment that you wish to simulate elsewhere

    eg.,
    # /opt/oracle.supercluster/bin/osc-setcoremem -g
    
     [OK] simulator config file generated
     location: /var/tmp/oscsetcorememcfg.txt
    

       For the argument list, check "SIMULATOR ARGUMENTS" section in the output of "osc-setcoremem -h|-help"

  3. If you do not have access to the live SuperCluster environment (that you wish to simulate), generate base configuration file template and edit it manually to populate base configuration of the SuperCluster environment to be simulated. Base configuration file template can be generated on any SPARC node running Solaris 11.3. And this step does not require root privileges.

    eg.,

    To generate a base configuration containing 4 domains, run:

    % ./osc-setcoremem -g -dc 4
    
     [OK] simulator config file generated
     location: /var/tmp/oscsetcorememcfg.txt
    
    % cat /var/tmp/oscsetcorememcfg.txt
    
    #DOMAIN                          ROOT             SERVICE          SOCKET           CORE             MEMORY           HCA
    # NAME                           DOMAIN           DOMAIN           COUNT            COUNT              GB             COUNT
    #--------------------------------------------------------------------------------------------------------------------------
    primary                          YES|NO           YES|NO           <COUNT>          <COUNT>          <CAPACITY>        1|2
    ssccn-dom1                       YES|NO           YES|NO           <COUNT>          <COUNT>          <CAPACITY>        1|2
    ssccn-dom2                       YES|NO           YES|NO           <COUNT>          <COUNT>          <CAPACITY>        1|2
    ssccn-dom3                       YES|NO           YES|NO           <COUNT>          <COUNT>          <CAPACITY>        1|2
    

       Check the Guidelines page for the manual editing of base configuration file

  4. Kick off simulation with the help of the base configuration file populated in either of the last two steps. osc-setcoremem's non-interactive mode can be activated too by supplying non-interactive arguments.

    Syntax: osc-setcoremem -p <platform> -c <config_file_path> [<non-interactive_arguments>]

    eg.,
    % ./osc-setcoremem -p m8 -c ./oscsetcorememcfg.txt -type core -res 16/480:16/480:16/480
    
                             osc-setcoremem simulator
                        v2.5  built on Oct 13 2017 11:33:52
    
     Current Configuration: SuperCluster M8
    
     +----------------------------------+-------+--------+-----------+--- MINIMUM ----+
     | DOMAIN                           | CORES | MEM GB |   TYPE    | CORES | MEM GB |
     +----------------------------------+-------+--------+-----------+-------+--------+
     | primary                          |    32 |    960 | Dedicated |     2 |     32 |
     | ssccn1-dom1                      |    32 |    960 | Dedicated |     2 |     32 |
     | ssccn1-dom2                      |    32 |    960 | Dedicated |     2 |     32 |
     | ssccn1-dom3                      |     2 |     32 |   Root    |     2 |     32 |
     +----------------------------------+-------+--------+-----------+-------+--------+
     | Parked Resources (Approx)        |    30 |    928 |    --     |    -- |   --   |
     +----------------------------------+-------+--------+-----------+-------+--------+
    
     [ 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
     ...
     ...
             DOMAIN REBOOT SUMMARY
    
     The following domains would have rebooted on a live system:
    
       ssccn1-dom2
       ssccn1-dom1
       primary
    
    
             POSSIBLE NEXT STEP
    
     Continue the simulation with updated configuration
             eg., /osc-setcoremem [<option(s)>]
    
                     - OR -
    
     Start with an existing or brand new base configuration
             eg., /osc-setcoremem  -p [T4|T5|M6|M7|M8] -c <path_to_config_file>
    
  5. By this time osc-setcoremem simulator would have saved the changes made to the base configuration in previous step. You can verify by running osc-setcoremem executable with no options or using "-list" option.

    eg.,

    Changes highlited below.

    % ./osc-setcoremem
    
                             osc-setcoremem simulator
                        v2.5  built on Oct 13 2017 11:33:52
    
     Current Configuration: SuperCluster M8
    
     +----------------------------------+-------+--------+-----------+--- MINIMUM ----+
     | DOMAIN                           | CORES | MEM GB |   TYPE    | CORES | MEM GB |
     +----------------------------------+-------+--------+-----------+-------+--------+
     | primary                          |    16 |    480 | Dedicated |     2 |     32 |
     | ssccn1-dom1                      |    16 |    480 | Dedicated |     2 |     32 |
     | ssccn1-dom2                      |    16 |    480 | Dedicated |     2 |     32 |
     | ssccn1-dom3                      |     2 |     32 |   Root    |     2 |     32 |
     +----------------------------------+-------+--------+-----------+-------+--------+
     | Parked Resources (Approx)        |    78 |   2368 |    --     |    -- |   --   |
     +----------------------------------+-------+--------+-----------+-------+--------+
    
     [ INFO ] following domains will be ignored in this session.
    
     Root Domains
     ------------
     ssccn1-dom3
     ...
     ...
    
  6. Two options to choose from at this point:

    1. Continue simulation using the updated configuration.

        Simply running osc-setcoremem executable without any arguments or with optional non-interactive arguments shall continue the simulation. This will let you simulate the move from one arbitrary configuration state (cores & memory assigned to different domains) to another.

      Syntax: osc-setcoremem [<non-interactive_arguments>]

                 -OR-

    2. Start a brand new simulation using any base configuration file

        This is nothing but step #4 above. Here we assume that the required base configuration file was populated and ready. Be aware that this step wipes the current modified core, memory [virtual] configuration clean and starts again with a base configuration that was specified in the configuration file input to "-c" option

  7. Repeat steps 2-6 to simulate different SuperCluster configurations

   A complete example can be found in Oracle SuperCluster M7/M8 Administration Guide at Example: Simulating Changes on a Non-SuperCluster Node

Labels:




Tuesday, September 19, 2017
 
Oracle SuperCluster: osc-setcoremem simulator

Target Audience: Oracle SuperCluster customers and Oracle technical support

.. are some of the common/recurring questions that I've heard in the last several years. Unfortunately in most cases questions like "Is it possible to use setcoremem to achieve my desired configuration?" won't arise until after the customer had their hands on the SuperCluster configuration they ordered. If the customer has a way of figuring out what combinations of core/memory configurations are possible in the planned SuperCluster configuration beforehand, it'd help them tremendously in planning; and likely minimize frustrations and service requests later on if the tool shows different possible combinations than the ones they'd prefer.

To address some of the questions and concerns that are similar to the ones mentioned above, osc-setcoremem simulator was introduced in SuperCluster Exafamily update 2.4.x. The self-contained osc-setcoremem binary from Exafamily update 2.4.x can be used to run simulations on any SPARC hardware not necessarily on SuperCluster SPARC hardware alone as long as the target SPARC hardware has Solaris 11 or later running. While normal execution (non-simulation) of osc-setcoremem requires root privileges to make the intended core/memory configuration changes in one or more logical domains (LDoms), it is not necessary to use root privileges to run the simulator. In other words, normal users with limited privileges can run osc-setcoremem on any SPARC hardware including non-SuperCluster hardware to simulate the behavior of osc-setcoremem on a variety of SuperCluster T4/T5/M6/M7/M8 supported configurations such as fully/half/quarter populated configurations.

Few things to keep in mind:

We will explore the simulator in the next few blog posts. Meanwhile please check the official documentation pages out at Configuring CPU and Memory Resources (osc-setcoremem) and Run a Simulation to learn more about the functionality of osc-setcoremem and for the instructions to run the simulator.

ALSO SEE:

  1. osc-setcoremem: A Brief Introduction
  2. Non-Interactive osc-setcoremem

(To be continued ..)

Labels:




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:





2004-2017 

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