{"id":34405,"date":"2024-07-30T21:30:38","date_gmt":"2024-07-30T19:30:38","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=34405"},"modified":"2024-07-30T21:30:41","modified_gmt":"2024-07-30T19:30:41","slug":"how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/","title":{"rendered":"How to automatically manage OCPU on ExaCC using Dynamic Scaling"},"content":{"rendered":"\n<p>To automatically scale down and up the OCPU on ExaCC cluster according to the CPU utilisation, we can use dynamic scaling. Dynamic scaling engine can be installed on each cluster nodes VM, from a remote machine as master or from container like doker or podman. We can also installed dynamic engine as a Grid HA resource. In this blog I will describe the installation, configuration and use of Dynamic Scaling on the VM from a single node cluster, as daemon configured as oracle linux service. In another blog I will describe how to install it as Grid HA resource.<\/p>\n\n\n<a class=\"wp-block-read-more\" href=\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/\" target=\"_self\">Read more<span class=\"screen-reader-text\">: How to automatically manage OCPU on ExaCC using Dynamic Scaling<\/span><\/a>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-pros-cons-of-each-installation\">Pros\/cons of each installation<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Installation<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>Pros<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>Cons<\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Remote machine as master<\/td><td class=\"has-text-align-left\" data-align=\"left\">No Dynamic Scaling engine is installed on the Cluster nodes VM<\/td><td class=\"has-text-align-left\" data-align=\"left\">Need to  use Dynamic Scaling remote plug-in<br>One Dynamic Scaling engine can only manage one cluster<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Docker or podman container<\/td><td class=\"has-text-align-left\" data-align=\"left\">No Dynamic Scaling engine is installed on the Cluster nodes VM<br>Several cluster can be managed from the same remote machine<\/td><td class=\"has-text-align-left\" data-align=\"left\">Need to  use Dynamic Scaling remote plug-in<br>Need to know docker and podman technology<br>Installation more complicated<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Each VM Cluster<\/td><td class=\"has-text-align-left\" data-align=\"left\">Easy installation and use of<br>Dynamic scaling<br>Very limit host impact<\/td><td class=\"has-text-align-left\" data-align=\"left\">Dynamic Scaling engine installed on each Cluster nodes VM<br>2 engine might decide for the scaling up\/down, but with RAC database should not be a problem<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Grid HA Resource<\/td><td class=\"has-text-align-left\" data-align=\"left\">Easy installation and use of<br>Dynamic scaling<br>Very limit host impact<br>Only one node decide about the scaling up\/down<\/td><td class=\"has-text-align-left\" data-align=\"left\">Dynamic Scaling engine installed on each Cluster nodes VM<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>At our customer we have decided to install Dynamic Scaling engine on each Cluster nodes VM but running through one Grid HA resource that can be easily relocated from one node to the others.<\/p>\n\n\n\n<p>Internet access is mandatory from the Cluster nodes to get access to OCI resource.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-installation-of-dynamic-scaling\">Installation of Dynamic Scaling<\/h2>\n\n\n\n<p>Our cluster nodes are running Oracle Linux 8.8.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\n[root@ExaCC-cl08n1 ~]# cat \/etc\/oracle-release\nOracle Linux Server release 8.8\n<\/pre>\n<\/br>\n\n\n\n<p>The appropriate Dynamic Scaling package needs to be dowloaded from Doc ID 2719916.1, in our case, p36585874_202_Linux-x86-64.zip file.<\/p>\n\n\n\n<p>We need to unzip it and to install the package.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,2,4,7,12,18,23]\">\n[root@ExaCC-cl08n1 opc]# rpm -qa | grep -i dynam\n[root@ExaCC-cl08n1 ~]# cd \/home\/opc\/mwagner\/dynscal-rpm\/\n\n[root@ExaCC-cl08n1 dynscal-rpm]# ls\np36585874_202_Linux-x86-64.zip\n\n[root@ExaCC-cl08n1 dynscal-rpm]# unzip \/home\/opc\/mwagner\/dynscal-rpm\/p36585874_202_Linux-x86-64.zip\nArchive:  \/home\/opc\/mwagner\/dynscal-rpm\/p36585874_202_Linux-x86-64.zip\n  inflating: readme_dynamicscaling-2.0.2-3.el8.x86_64.txt\n  inflating: dynamicscaling-2.0.2-3.el8.x86_64.rpm\n\n[root@ExaCC-cl08n1 dynscal-rpm]# ls -ltrh\ntotal 28M\n-rw-rw-r-- 1 root root 14M May  6 13:57 dynamicscaling-2.0.2-3.el8.x86_64.rpm\n-rw-rw-r-- 1 root root 740 May  6 14:27 readme_dynamicscaling-2.0.2-3.el8.x86_64.txt\n-rw-r--r-- 1 opc  opc  14M Jul 26 08:38 p36585874_202_Linux-x86-64.zip\n\n[root@ExaCC-cl08n1 dynscal-rpm]# rpm -i dynamicscaling-2.0.2-3.el8.x86_64.rpm\nwarning: dynamicscaling-2.0.2-3.el8.x86_64.rpm: Header V4 RSA\/SHA256 Signature, key ID c9c430a5: NOKEY\n\ndynamicscaling-2.0.2.3 binary has been installed on \/opt\/dynamicscaling succesfully!\n\n[root@ExaCC-cl08n1 dynscal-rpm]# rpm -qa | grep -i dynam\ndynamicscaling-2.0.2-3.x86_64\n<\/pre>\n<\/br>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-install-oci-cli\">Install oci-cli<\/h2>\n\n\n\n<p>I have been installing oci-cli by downloading the offline installation package (oci-cli-3.43.2-Oracle-Linux-8-Offline.zip) from github project, maintained by Oracle Corp, <a href=\"https:\/\/github.com\/oracle\/oci-cli?tab=readme-ov-file\">https:\/\/github.com\/oracle\/oci-cli?tab=readme-ov-file<\/a>.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,3,5,13,15,18,84,86]\">\n[opc@ExaCC-cl08n1 ~]$ cd \/home\/opc\/mwagner\/dynscal-rpm\/\n\n[opc@ExaCC-cl08n1 dynscal-rpm]$ unzip -q oci-cli-3.43.2-Oracle-Linux-8-Offline.zip\n\n[opc@ExaCC-cl08n1 dynscal-rpm]$ ls -ltrh\ntotal 119M\n-rw-rw-r-- 1 root root 14M May  6 13:57 dynamicscaling-2.0.2-3.el8.x86_64.rpm\n-rw-rw-r-- 1 root root 740 May  6 14:27 readme_dynamicscaling-2.0.2-3.el8.x86_64.txt\ndrwxrwxr-x 3 opc  opc   58 Jun 18 23:26 oci-cli-installation\n-rw-r--r-- 1 opc  opc  14M Jul 26 08:38 p36585874_202_Linux-x86-64.zip\n-rw-r--r-- 1 opc  opc  92M Jul 26 08:47 oci-cli-3.43.2-Oracle-Linux-8-Offline.zip\n\n[opc@ExaCC-cl08n1 dynscal-rpm]$ cd oci-cli-installation\n\n[opc@ExaCC-cl08n1 oci-cli-installation]$ python --version\nPython 3.6.8\n\n[opc@ExaCC-cl08n1 oci-cli-installation]$ bash install.sh --offline-install\n\n    ******************************************************************************\n    You have started the OCI CLI Installer in interactive mode. If you do not wish\n    to run this in interactive mode, please include the --accept-all-defaults option.\n    If you have the script locally and would like to know more about\n    input options for this script, then you can run:\n    .\/install.sh -h\n    If you would like to know more about input options for this script, refer to:\n    https:\/\/github.com\/oracle\/oci-cli\/blob\/master\/scripts\/install\/README.rst\n    ******************************************************************************\nStarting OCI CLI Offline Installation\nRunning install script.\npython3 .\/install.py  --offline-install\n-- Verifying Python version.\n-- Python version 3.6.8 okay.\n\n===&gt; In what directory would you like to place the install? (leave blank to use '\/home\/opc\/lib\/oracle-cli'):\n-- Creating directory '\/home\/opc\/lib\/oracle-cli'.\n-- We will install at '\/home\/opc\/lib\/oracle-cli'.\n\n===&gt; In what directory would you like to place the 'oci' executable? (leave blank to use '\/home\/opc\/bin'):\n-- Creating directory '\/home\/opc\/bin'.\n-- The executable will be in '\/home\/opc\/bin'.\n\n===&gt; In what directory would you like to place the OCI scripts? (leave blank to use '\/home\/opc\/bin\/oci-cli-scripts'):\n-- Creating directory '\/home\/opc\/bin\/oci-cli-scripts'.\n-- The scripts will be in '\/home\/opc\/bin\/oci-cli-scripts'.\n-- Trying to use python3 venv.\n-- Executing: ['\/usr\/bin\/python3', '-m', 'venv', '\/home\/opc\/lib\/oracle-cli']\n-- Executing: ['\/home\/opc\/lib\/oracle-cli\/bin\/pip', 'install', 'pip', '--upgrade', '--find-links', 'cli-deps\/python36.html', '--no-index']\nCollecting pip\nInstalling collected packages: pip\n  Found existing installation: pip 9.0.3\n    Uninstalling pip-9.0.3:\n      Successfully uninstalled pip-9.0.3\nSuccessfully installed pip-21.3.1\n-- Executing: ['\/home\/opc\/lib\/oracle-cli\/bin\/pip', 'install', 'oci_cli', '--find-links', 'cli-deps\/python36.html', '--no-index', '--ignore-requires-python']\nLooking in links: cli-deps\/python36.html\nProcessing .\/cli-deps\/oci_cli-3.43.2-py3-none-any.whl\nProcessing .\/cli-deps\/certifi-2024.6.2-py3-none-any.whl\nProcessing .\/cli-deps\/terminaltables-3.1.10-py2.py3-none-any.whl\nProcessing .\/cli-deps\/pyOpenSSL-23.2.0-py3-none-any.whl\nProcessing .\/cli-deps\/PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\nProcessing .\/cli-deps\/oci-2.128.2-py3-none-any.whl\nProcessing .\/cli-deps\/python_dateutil-2.9.0.post0-py2.py3-none-any.whl\nProcessing .\/cli-deps\/prompt_toolkit-3.0.29-py3-none-any.whl\nProcessing .\/cli-deps\/arrow-1.2.3-py3-none-any.whl\nProcessing .\/cli-deps\/pytz-2024.1-py2.py3-none-any.whl\nProcessing .\/cli-deps\/six-1.16.0-py2.py3-none-any.whl\nProcessing .\/cli-deps\/click-8.0.4-py3-none-any.whl\nProcessing .\/cli-deps\/jmespath-0.10.0-py2.py3-none-any.whl\nProcessing .\/cli-deps\/cryptography-40.0.2-cp36-abi3-manylinux_2_28_x86_64.whl\nProcessing .\/cli-deps\/importlib_metadata-4.8.3-py3-none-any.whl\nProcessing .\/cli-deps\/circuitbreaker-1.4.0.tar.gz\n  Preparing metadata (setup.py) ... done\nProcessing .\/cli-deps\/wcwidth-0.2.13-py2.py3-none-any.whl\nProcessing .\/cli-deps\/typing_extensions-4.1.1-py3-none-any.whl\nProcessing .\/cli-deps\/cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl\nProcessing .\/cli-deps\/pycparser-2.21-py2.py3-none-any.whl\nProcessing .\/cli-deps\/zipp-3.6.0-py3-none-any.whl\nUsing legacy 'setup.py install' for circuitbreaker, since package 'wheel' is not installed.\nInstalling collected packages: pycparser, cffi, zipp, typing-extensions, six, cryptography, wcwidth, pytz, python-dateutil, pyOpenSSL, importlib-metadata, circuitbreaker, certifi, terminaltables, PyYAML, prompt-toolkit, oci, jmespath, click, arrow, oci-cli\n    Running setup.py install for circuitbreaker ... done\nSuccessfully installed PyYAML-6.0.1 arrow-1.2.3 certifi-2024.6.2 cffi-1.15.1 circuitbreaker-1.4.0 click-8.0.4 cryptography-40.0.2 importlib-metadata-4.8.3 jmespath-0.10.0 oci-2.128.2 oci-cli-3.43.2 prompt-toolkit-3.0.29 pyOpenSSL-23.2.0 pycparser-2.21 python-dateutil-2.9.0.post0 pytz-2024.1 six-1.16.0 terminaltables-3.1.10 typing-extensions-4.1.1 wcwidth-0.2.13 zipp-3.6.0\n\n===&gt; Modify profile to update your $PATH and enable shell\/tab completion now? (Y\/n):\n\n===&gt; Enter a path to an rc file to update (file will be created if it does not exist) (leave blank to use '\/home\/opc\/.bashrc'):\n-- Backed up '\/home\/opc\/.bashrc' to '\/home\/opc\/.bashrc.backup'\n-- Tab completion set up complete.\n-- If tab completion is not activated, verify that '\/home\/opc\/.bashrc' is sourced by your shell.\n\n-- ** Run `exec -l $SHELL` to restart your shell. **\n\n-- Installation successful.\n\nAnnouncement\n============\n1. Interactive mode now available in CLI\nHave you tried the new interactive features in OCI CLI yet? You can get started by typing `oci -i`.\nLearn more by watching our informative video on YouTube -&gt; https:\/\/www.youtube.com\/watch?v=lX29Xw1Te54&amp;ab_channel=OracleLearning\nAlso see https:\/\/docs.oracle.com\/iaas\/Content\/API\/SDKDocs\/cliusing_topic-Using_Interactive_Mode.htm\n============\n\n-- Run the CLI with \/home\/opc\/bin\/oci --help\n<\/pre>\n<\/br>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-configure-oci-config-file\">Configure oci config file<\/h2>\n\n\n\n<p>Before configuring oci, I have been creating a group and user with the OCI console, and imported the key using the add api key menu. I have been using a key that is already existing. This information will then be used to create the config file.<\/p>\n\n\n\n<p>Here is the oci config file for the current node.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,3,9,10]\">\n[opc@ExaCC-cl08n1 ~]$ cd .oci\n\n[opc@ExaCC-cl08n1 .oci]$ ls -lrh\ntotal 12K\n-rw------- 1 opc opc  322 Jul 31  2023 config\n-rw------- 1 opc opc  450 Jul 31  2023 exacc_dbaas_automation_public.pem\n-rw------- 1 opc opc 1.7K Jul 31  2023 exacc_dbaas_automation.pem\n\n[opc@ExaCC-cl08n1 .oci]$ vi config\n[opc@ExaCC-cl08n1 .oci]$ cat config\n[DEFAULT]\nuser=ocid1.user.oc1..aaaaaaaaz*****************************z2kndq\nfingerprint=fc:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:84\ntenancy=ocid1.tenancy.oc1..aaaaaaaa52q*******************************wka\nregion=eu-zurich-1\nkey_file=~\/.oci\/exacc_dbaas_automation.pem\n<\/pre>\n<\/br>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-test-oci-cli\">Test oci cli<\/h2>\n\n\n\n<p>We can list all region in order to ensure our oci cli configuration is working.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\n[opc@ExaCC-cl08n1 ~]$ oci iam region list --output table\n\/home\/opc\/lib\/oracle-cli\/lib64\/python3.6\/site-packages\/oci\/_vendor\/httpsig_cffi\/sign.py:10: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography will remove support for Python 3.6.\n  from cryptography.hazmat.backends import default_backend  # noqa: F401\n+-----+-------------------+\n| key | name              |\n+-----+-------------------+\n| AMS | eu-amsterdam-1    |\n| ARN | eu-stockholm-1    |\n| AUH | me-abudhabi-1     |\n| BOG | sa-bogota-1       |\n| BOM | ap-mumbai-1       |\n| CDG | eu-paris-1        |\n| CWL | uk-cardiff-1      |\n| DXB | me-dubai-1        |\n| FRA | eu-frankfurt-1    |\n| GRU | sa-saopaulo-1     |\n| HYD | ap-hyderabad-1    |\n| IAD | us-ashburn-1      |\n| ICN | ap-seoul-1        |\n| JED | me-jeddah-1       |\n| JNB | af-johannesburg-1 |\n| KIX | ap-osaka-1        |\n| LHR | uk-london-1       |\n| LIN | eu-milan-1        |\n| MAD | eu-madrid-1       |\n| MEL | ap-melbourne-1    |\n| MRS | eu-marseille-1    |\n| MTY | mx-monterrey-1    |\n| MTZ | il-jerusalem-1    |\n| NRT | ap-tokyo-1        |\n| ORD | us-chicago-1      |\n| PHX | us-phoenix-1      |\n| QRO | mx-queretaro-1    |\n| SCL | sa-santiago-1     |\n| SIN | ap-singapore-1    |\n| SJC | us-sanjose-1      |\n| SYD | ap-sydney-1       |\n| VAP | sa-valparaiso-1   |\n| VCP | sa-vinhedo-1      |\n| XSP | ap-singapore-2    |\n| YNY | ap-chuncheon-1    |\n| YUL | ca-montreal-1     |\n| YYZ | ca-toronto-1      |\n| ZRH | eu-zurich-1       |\n+-----+-------------------+\n<\/pre>\n<\/br>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-policy\">Policy<\/h2>\n\n\n\n<p>In order to use Dynamic Scaling I have been added following OCI policy to the group.<\/p>\n\n\n\n<p><code>Allow group exacc_dynamic_scaling to use exadata-infrastructures IN COMPARTMENT ExaCC_DBaaS<br>Allow group exacc_dynamic_scaling to use vmclusters IN COMPARTMENT ExaCC_DBaaS<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-test-dynamic-scaling\">Test Dynamic Scaling<\/h2>\n\n\n\n<p>We can now test Dynamic Scaling with the check option and getocpu option (to get current ocpu).<\/p>\n\n\n\n<p>Test with check option is successful:<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,15]\">\n[opc@ExaCC-cl08n1 .oci]$ \/opt\/dynamicscaling\/dynamicscaling.bin check \\\n&gt; --ocicli \\\n&gt; --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5h*****************************************j3ba \\\n&gt; --ociprofile DEFAULT\n\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n Dynamicscaling for ExaCC &amp; ExaCS - Version: 2.0.2-03\n Copyright (c) 2020-2024 Oracle and\/or its affiliates.\n----------------------------------------------------------\n Author: Ruggero Citton \n RAC Pack, Cloud Innovation and Solution Engineering Team\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n\nINFO: 2024-07-09 14:28:31: Checking OCI connectivity...\nSUCCESS: 2024-07-09 14:28:32: OCI connectivity check done successfully\n<\/pre>\n<\/br>\n\n\n\n<p>getocpu option is also working and giving us current OCPU to be equal to 2 OCPU, 1 VM, so 2 per VM.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,15]\">\n[opc@ExaCC-cl08n1 .oci]$ \/opt\/dynamicscaling\/dynamicscaling.bin getocpu \\\n&gt; --ocicli \\\n&gt; --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba \\\n&gt; --ociprofile DEFAULT\n\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n Dynamicscaling for ExaCC &amp; ExaCS - Version: 2.0.2-03\n Copyright (c) 2020-2024 Oracle and\/or its affiliates.\n----------------------------------------------------------\n Author: Ruggero Citton \n RAC Pack, Cloud Innovation and Solution Engineering Team\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n\nINFO: 2024-07-09 14:29:54: Checking DB System status\n\n- -------------------------------------------------------\n  VM Cluster OCID        : ocid1.vmcluster.oc1.eu-zurich-1.an5h*****************************************j3ba\n  OCI profile name       : DEFAULT\n- -------------------------------------------------------\n  DB System status       : AVAILABLE\n  Current OCPU           : 2\n  Current physical CPUs  : 2\n- -------------------------------------------------------\n  Dynamicscaling Log file: '\/tmp\/dynamicscaling.log'\n---------------------------------------------------------\n<\/pre>\n<\/br>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-functionning\">Functionning<\/h2>\n\n\n\n<p>From the DocId, we can read that &#8220;Oracle DynamicScaling can be executed as standalone executable or as daemon on one or more ExaDB-D compute nodes or ExaDB-C@C vmcluster nodes. By default DynamicScaling is monitoring the CPUs with very limited host impact and if the load goes over the Maximum CPU threshold (&#8220;&#8211;maxthreshold&#8221;) for an interval of time (&#8220;&#8211;interval&#8221;), it will automatically will scale-up the OCPU by a factor (&#8220;&#8211;ocpu&#8221;) till a maximum limit (&#8220;&#8211;maxocpu&#8221;). If the load goes under the Minimum CPU threshold (&#8220;&#8211;minthreshold&#8221;) for an interval of time (&#8220;&#8211;interval&#8221;) scale down will be executed util the minimum limit (&#8220;&#8211;minocpu&#8221;) of ocpu.&#8221;<\/p>\n\n\n\n<p>To avoid too frequent scale up and down, Dynamic Scaling will wait for one hour after having scaled up the OCPU before scaling it down again.<\/p>\n\n\n\n<p>Minimun 4 OCPU factor for half rack.<br>Mininum 2 OCPU factor for quater rack.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-log-file-rotation\">Log file rotation<\/h2>\n\n\n\n<p>I have configured log file rotation.<\/p>\n\n\n\n<p>First I have created needed log directory.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,2]\">\n[opc@ExaCC-cl08n1 ~]$ sudo mkdir -p \/acfs01\/dynscal_logs\/node1\n[opc@ExaCC-cl08n1 ~]$ sudo chown -R opc: \/acfs01\/dynscal_logs\n<\/pre>\n<\/br>\n\n\n\n<p>Then I have configured log file rotation as following:<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,3,25,27]\">\n[root@ExaCC-cl08n1 ~]# cd \/etc\/logrotate.d\/\n\n[root@ExaCC-cl08n1 logrotate.d]# ls -ltrh\ntotal 76K\n-rw-r--r-- 1 root root 145 Feb 19  2018 wtmp\n-rw-r--r-- 1 root root 408 Mar  7  2019 psacct\n-rw-r--r-- 1 root root 172 Mar 11  2021 iscsiuiolog\n-rw-r--r-- 1 root root  88 Apr 12  2021 dnf\n-rw-r--r-- 1 root root 160 Dec 16  2021 chrony\n-rw-r--r-- 1 root root 155 Feb  7  2022 aide\n-rw-r--r-- 1 root root  91 Apr 11  2022 bootlog\n-rw-r--r-- 1 root root  67 Dec  2  2022 ipmctl\n-rw-r--r-- 1 root root 130 Mar 31  2023 btmp\n-rw-r--r-- 1 root root  93 Sep 21  2023 firewalld\n-rw-r--r-- 1 root root 226 Oct 25  2023 syslog\n-rw-r--r-- 1 root root 237 Feb 22 15:50 sssd\n-rw-r--r-- 1 root root 155 Mar  7 05:29 samba\n-rw-r--r-- 1 root root 125 Apr 11 07:00 nscd\n-rw-r--r-- 1 root root 103 May 14 11:51 oraiosaudit\n-rw-r--r-- 1 root root 103 May 14 11:51 oraasmaudit\n-rw-r--r-- 1 root root 103 May 14 11:51 oraapxaudit\n-rw-r--r-- 1 root root  89 May 14 12:18 asmaudit\n-rw-r--r-- 1 root root 172 May 14 14:06 ora_rdbms_uniaud\n\n[root@ExaCC-cl08n1 logrotate.d]# vi dynamicscaling\n\n[root@ExaCC-cl08n1 logrotate.d]# cat dynamicscaling\n\/acfs01\/dynscal_logs\/node1\/* {\nsu opc opc\ndaily\nnotifempty\nmissingok\nsharedscripts\ncopytruncate\nrotate 10\nsize 30M\ncompress\n}\n<\/pre>\n<\/br>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-linux-service-for-dynamic-scaling\">Create linux service for Dynamic Scaling<\/h2>\n\n\n\n<p>I have created a linux service to have Dynamic Scaling running automatically as a daemon.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,2,28,29]\">\n[root@ExaCC-cl08n1 ~]# vi \/etc\/systemd\/system\/dynamicscaling.service\n[root@ExaCC-cl08n1 ~]# cat \/etc\/systemd\/system\/dynamicscaling.service\n[Unit]\nDescription=Dynamicscaling\nWants=network-online.target local-fs.target\nAfter=network-online.target local-fs.target\n\n[Service]\nUser=opc\nType=simple\nEnvironment=\"HTTP_PROXY=http:\/\/webproxy.domain.com:XXXX\"\nEnvironment=\"HTTPS_PROXY=http:\/\/webproxy.domain.com:XXXX\"\nEnvironment=\"http_proxy=http:\/\/webproxy.domain.com:XXXX\"\nEnvironment=\"https_proxy=http:\/\/webproxy.domain.com:XXXX\"\nEnvironment=\"PATH=\/sbin:\/bin:\/usr\/sbin:\/usr\/bin:\/home\/opc\/bin:\/home\/opc\/.local\/bin\"\nExecStart=\/bin\/sh -c \"\/opt\/dynamicscaling\/dynamicscaling.bin --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he***********************************j3ba --ociprofile DEFAULT --interval 60 --maxthreshold 70 --minthreshold 40 --maxocpu 12 --minocpu 4 --ocpu 4 --logpath \/acfs01\/dynscal_logs\/node1\"\n\nTimeoutStartSec=300\nPIDFile=\/tmp\/.dynamicscaling.pid\nRestart=on-failure\nRestartSec=5s\n\nExecStop=\/bin\/kill -s SIGINT $MAINPID\n\n[Install]\nWantedBy=multi-user.target\n\n[root@ExaCC-cl08n1 ~]# systemctl daemon-reload\n[root@ExaCC-cl08n1 ~]# systemctl enable dynamicscaling.service\nCreated symlink \/etc\/systemd\/system\/multi-user.target.wants\/dynamicscaling.service \u2192 \/etc\/systemd\/system\/dynamicscaling.service.\n<\/pre>\n<\/br>\n\n\n\n<p>Linux service has been tested.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,2,4,21,24,26,45]\">\n[root@ExaCC-cl08n1 ~]# ps -ef | grep -i [d]ynamic\n[root@ExaCC-cl08n1 ~]# systemctl start dynamicscaling.service\n\n[root@ExaCC-cl08n1 ~]# systemctl status dynamicscaling.service\n\u25cf dynamicscaling.service - Dynamicscaling\n   Loaded: loaded (\/etc\/systemd\/system\/dynamicscaling.service; enabled; vendor preset: disabled)\n   Active: active (running) since Tue 2024-07-09 22:47:16 CEST; 2s ago\n Main PID: 272574 (\/opt\/dynamicsca)\n    Tasks: 2 (limit: 319999)\n   Memory: 119.6M\n   CGroup: \/system.slice\/dynamicscaling.service\n           \u251c\u2500272574 \/opt\/dynamicscaling\/dynamicscaling.bin                                            --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5h*****************************************j3ba &gt;\n           \u2514\u2500272590 \/home\/opc\/lib\/oracle-cli\/bin\/python3 \/home\/opc\/bin\/oci db vm-cluster get --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5h*****************************************j3ba --profile DEFAULT\n\nJul 09 22:47:17 ExaCC-cl08n1 sh[272574]: \u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\nJul 09 22:47:17 ExaCC-cl08n1 sh[272574]:  Dynamicscaling for ExaCC &amp; ExaCS - Version: 2.0.2-03\n...\n...\n...\n\n[root@ExaCC-cl08n1 ~]# ps -ef | grep -i [d]ynamic\nopc      272677      1  0 22:47 ?        00:00:00 \/opt\/dynamicscaling\/dynamicscaling.bin                                            --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5h*****************************************3ba --ociprofile DEFAULT --interval 60 --maxthreshold 70 --minthreshold 40 --maxocpu 24 --minocpu 4 --ocpu 4\n\n[root@ExaCC-cl08n1 ~]# systemctl stop dynamicscaling.service\n\n[root@ExaCC-cl08n1 ~]# systemctl status dynamicscaling.service\n\u25cf dynamicscaling.service - Dynamicscaling\n   Loaded: loaded (\/etc\/systemd\/system\/dynamicscaling.service; enabled; vendor preset: disabled)\n   Active: failed (Result: exit-code) since Tue 2024-07-09 22:47:32 CEST; 2s ago\n  Process: 273462 ExecStop=\/bin\/kill -s SIGINT $MAINPID (code=exited, status=0\/SUCCESS)\n  Process: 272677 ExecStart=\/bin\/sh -c \/opt\/dynamicscaling\/dynamicscaling.bin --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5h*****************************************j3ba --ociprofile DEFAULT --i&gt;\n Main PID: 272677 (code=exited, status=1\/FAILURE)\n\nJul 09 22:47:17 ExaCC-cl08n1 sh[272574]:  Author: Ruggero Citton \nJul 09 22:47:17 ExaCC-cl08n1 sh[272574]:  RAC Pack, Cloud Innovation and Solution Engineering Team\nJul 09 22:47:17 ExaCC-cl08n1 sh[272574]: \u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\nJul 09 22:47:17 ExaCC-cl08n1 sh[272574]: INFO: 2024-07-09 22:47:17: ================================================\nJul 09 22:47:17 ExaCC-cl08n1 sh[272574]: INFO: 2024-07-09 22:47:17: Dynamicscaling version '2.0.2-03' is starting...\nJul 09 22:47:17 ExaCC-cl08n1 sh[272574]: INFO: 2024-07-09 22:47:17: ================================================\nJul 09 22:47:32 ExaCC-cl08n1 systemd[1]: Stopping Dynamicscaling...\nJul 09 22:47:32 ExaCC-cl08n1 systemd[1]: dynamicscaling.service: Main process exited, code=exited, status=1\/FAILURE\nJul 09 22:47:32 ExaCC-cl08n1 systemd[1]: dynamicscaling.service: Failed with result 'exit-code'.\nJul 09 22:47:32 ExaCC-cl08n1 systemd[1]: Stopped Dynamicscaling.\n\n[root@ExaCC-cl08n1 ~]# ps -ef | grep -i [d]ynamic\n[root@ExaCC-cl08n1 ~]#\n<\/pre>\n<\/br>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-test-dynamic-scaling-scale-down\">Test Dynamic Scaling scale down<\/h2>\n\n\n\n<p>The OCPU has been increased to 12 OCPU. We have only one nodes in this cluster so 12 OCP per VM.<\/p>\n\n\n\n<p>Check current OCUP.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,2,4,21,24,26,45]\">\n[opc@ExaCC-cl08n1 ~]$ \/opt\/dynamicscaling\/dynamicscaling.bin getocpu \\\n&gt; --ocicli \\\n&gt; --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5h*****************************************j3ba \\\n&gt; --ociprofile DEFAULT\n\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n Dynamicscaling for ExaCC &amp; ExaCS - Version: 2.0.2-03\n Copyright (c) 2020-2024 Oracle and\/or its affiliates.\n----------------------------------------------------------\n Author: Ruggero Citton \n RAC Pack, Cloud Innovation and Solution Engineering Team\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n\nINFO: 2024-07-09 22:54:31: Checking DB System status\n\n- -------------------------------------------------------\n  VM Cluster OCID        : ocid1.vmcluster.oc1.eu-zurich-1.an5h*****************************************j3ba\n  OCI profile name       : DEFAULT\n- -------------------------------------------------------\n  DB System status       : AVAILABLE\n  Current OCPU           : 12\n  Current physical CPUs  : 12\n- -------------------------------------------------------\n  Dynamicscaling Log file: '\/tmp\/dynamicscaling.log'\n---------------------------------------------------------\n<\/pre>\n<\/br>\n\n\n\n<p>Let&#8217;s start Dynamic Scaling service.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,2,4]\">\n[root@ExaCC-cl08n1 ~]# ps -ef | grep -i [d]ynamic\n[root@ExaCC-cl08n1 ~]# systemctl start dynamicscaling.service\n\n[root@ExaCC-cl08n1 ~]# ps -ef | grep -i [d]ynamic\nopc      348304      1  0 23:07 ?        00:00:00 \/opt\/dynamicscaling\/dynamicscaling.bin                                            --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba --ociprofile DEFAULT --interval 60 --maxthreshold 70 --minthreshold 40 --maxocpu 24 --minocpu 4 --ocpu 4\n<\/pre>\n<\/br>\n\n\n\n<p>Check the logs.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,22]\">\n[opc@ExaCC-cl08n1 ~]$ tail -f \/acfs01\/dynscal_logs\/node1dynamicscaling.log\n2024-07-09 23:07:49: Getting lifecycle-state\n2024-07-09 23:07:50: DB System status......: AVAILABLE\n2024-07-09 23:07:50: Resetting consecutive DB System 'UPDATING' status count\n2024-07-09 23:07:50: Checking current core count\n2024-07-09 23:07:50: Getting cpu core count for 'ocid1.vmcluster.oc1.eu-zurich-1.an5h*****************************************j3ba' with oci-cli\n2024-07-09 23:07:50: Running on ExaCC getting cpus enabled\n2024-07-09 23:07:50: Current OCPU=12\n2024-07-09 23:07:52: Local host load ......:  1.5\n2024-07-09 23:07:52: CPU usage is under minthreshold\n2024-07-09 23:07:52: Next measure in about 60 secs...\n2024-07-09 23:08:52: Checking current core count\n2024-07-09 23:08:52: Getting cpu core count for 'ocid1.vmcluster.oc1.eu-zurich-1.an5h*****************************************j3ba' with oci-cli\n2024-07-09 23:08:53: Running on ExaCC getting cpus enabled\n2024-07-09 23:08:53: Current OCPU=12\n2024-07-09 23:08:55: Local host load ......:  0.9\n2024-07-09 23:08:55: Current load is under\/equal minimum threshold '40' for '60' secs\n2024-07-09 23:08:55: Checking DB System status\n2024-07-09 23:08:55: Getting lifecycle-state\n2024-07-09 23:08:56: DB System status......: AVAILABLE\n2024-07-09 23:08:56: Resetting consecutive DB System 'UPDATING' status count\n2024-07-09 23:08:56: Requesting OCPU scale-Down by a factor of '4'\n2024-07-09 23:08:56: Scaling-down the core-count...\n2024-07-09 23:08:57: Scaling-down in progress, sleeping 180 secs...\n2024-07-09 23:11:57: Resetting consecutive scale-up operation count\n2024-07-09 23:11:57: zzzzzz\n<\/pre>\n<\/br>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-monitoring-dynamic-scaling\">Monitoring Dynamic Scaling<\/h2>\n\n\n\n<p>Monitoring Dynamic Scaling, I could also see some scale up in the logs.<\/p>\n\n\n\n<p>Threshold value used in that case:<\/p>\n\n\n\n<p><code>2024-07-19 18:16:17: - Dynamicscaling is running as daemon with pid '395012'<br>2024-07-19 18:16:17: VM Cluster OCID : ocid1.vmcluster.oc1.eu-zurich-1.anXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXj5gq<br>2024-07-19 18:16:17: OCI-Client Profile : DEFAULT<br>2024-07-19 18:16:17: DB System shape : ExadataCC.X9M<br>2024-07-19 18:16:17: Maximum OCPU Number : 48<br>2024-07-19 18:16:17: Minimum OCPU Number : 4<br>2024-07-19 18:16:17: OCPU scale factor : 4<br>2024-07-19 18:16:17: Incremental scale-up : DISABLE<br>2024-07-19 18:16:17: Measure interval : 60<br>2024-07-19 18:16:17: Maximum Load threshold : 75<br>2024-07-19 18:16:17: Minimum Load threshold : 60<br>2024-07-19 18:16:17: Scale-down wait time : 60 minutes<br>2024-07-19 18:16:17: Cluster-aware : DISABLE<br>2024-07-19 18:16:17: Dry-run : DISABLE<\/code><\/p>\n\n\n\n<p>No action:<\/p>\n\n\n\n<p><code>2024-07-19 18:25:41: Local host load \u2026\u2026: 67.8<br>2024-07-19 18:25:41: Current load is between minimum '60' and maximun '75' threshold, no actions taken<\/code><\/p>\n\n\n\n<p>Scale up:<\/p>\n\n\n\n<p><code>2024-07-19 18:51:28: Local host load \u2026\u2026: 99.4<br>2024-07-19 18:51:28: Current load is over\/equal maximun threshold '75' for '60' secs<br>2024-07-19 18:51:28: Checking DB System status<br>2024-07-19 18:51:28: Getting lifecycle-state<br>2024-07-19 18:51:31: DB System status\u2026\u2026: AVAILABLE<br>2024-07-19 18:51:31: Resetting consecutive DB System 'UPDATING' status count<br>2024-07-19 18:51:31: Requesting OCPU scale-Up by a factor of '4'<br>2024-07-19 18:51:31: Scaling-up the core-count<\/code><\/p>\n\n\n\n<p>Scaling down not possible for the next 60 min following a scale-up:<\/p>\n\n\n\n<p><code>2024-07-19 18:56:52: Scaling-Down currently not possible, waiting '2024-07-19 19:51:31', 60 minutes after latest scale-Up time<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-setocpu-with-dynamic-scaling\">Setocpu with Dynamic Scaling<\/h2>\n\n\n\n<p>With Dynamic Scaling we can also set the OCPU.<\/p>\n\n\n\n<p>Get current OCPU :<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\n[opc@ExaCC-cl08n1 ~]$ \/opt\/dynamicscaling\/dynamicscaling.bin getocpu --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba --ociprofile DEFAULT\n\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n Dynamicscaling for ExaCC &amp; ExaCS - Version: 2.0.2-03\n Copyright (c) 2020-2024 Oracle and\/or its affiliates.\n----------------------------------------------------------\n Author: Ruggero Citton \n RAC Pack, Cloud Innovation and Solution Engineering Team\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n\nINFO: 2024-07-19 08:06:02: Checking DB System status\n\n- -------------------------------------------------------\n  VM Cluster OCID        : ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba\n  OCI profile name       : DEFAULT\n- -------------------------------------------------------\n  DB System status       : UPDATING\n  Current OCPU           : 4\n  Current physical CPUs  : 4\n- -------------------------------------------------------\n  Dynamicscaling Log file: '\/tmp\/dynamicscaling.log'\n---------------------------------------------------------\n<\/pre>\n<\/br>\n\n\n\n<p>Set OCPU to 16:<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\n[opc@ExaCC-cl08n1 ~]$ \/opt\/dynamicscaling\/dynamicscaling.bin setocpu --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba --ociprofile DEFAULT --ocpu 16\n\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n Dynamicscaling for ExaCC &amp; ExaCS - Version: 2.0.2-03\n Copyright (c) 2020-2024 Oracle and\/or its affiliates.\n----------------------------------------------------------\n Author: Ruggero Citton \n RAC Pack, Cloud Innovation and Solution Engineering Team\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n\nINFO: 2024-07-19 08:05:23: dynamicscaling log file at '\/tmp\/dynamicscaling.log'\nINFO: 2024-07-19 08:05:26: Checking DB System status\nINFO: 2024-07-19 08:05:28: Current OCPU=4\nSUCCESS: 2024-07-19 08:05:29: Scaling-up to OCPU=16 in progress, please wait...\n<\/pre>\n<\/br>\n\n\n\n<p>Check by getting ocpu with Dynamic Scaling:<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\n[opc@ExaCC-cl08n1 ~]$ \/opt\/dynamicscaling\/dynamicscaling.bin getocpu --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba --ociprofile DEFAULT\n\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n Dynamicscaling for ExaCC &amp; ExaCS - Version: 2.0.2-03\n Copyright (c) 2020-2024 Oracle and\/or its affiliates.\n----------------------------------------------------------\n Author: Ruggero Citton \n RAC Pack, Cloud Innovation and Solution Engineering Team\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n\nINFO: 2024-07-19 08:08:40: Checking DB System status\n\n- -------------------------------------------------------\n  VM Cluster OCID        : ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba\n  OCI profile name       : DEFAULT\n- -------------------------------------------------------\n  DB System status       : UPDATING\n  Current OCPU           : 16\n  Current physical CPUs  : 16\n- -------------------------------------------------------\n  Dynamicscaling Log file: '\/tmp\/dynamicscaling.log'\n---------------------------------------------------------\n<\/pre>\n<\/br>\n\n\n\n<p>We have now 16 OCPU.<\/p>\n\n\n\n<p>And in the log I could already see it was immediately scaled down by Dynamic Scaling daemon. This is why, when we have Dynamic Scaling running, there is no sense to manual increase OCPU. Dynamic Scaling daemon will do it for us.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\n[opc@ExaCC-cl08n1 ~]$ tail -f \/acfs01\/dynscal_logs\/node1\/dynamicscaling.log                                                                                                         2024-07-19 08:08:19: Current OCPU=16\n2024-07-19 08:08:21: Local host load ......:  1.1\n2024-07-19 08:08:21: Current load is under\/equal minimum threshold '40' for '60' secs\n2024-07-19 08:08:21: Checking DB System status\n2024-07-19 08:08:21: Getting lifecycle-state\n2024-07-19 08:08:22: DB System status......: AVAILABLE\n2024-07-19 08:08:22: Resetting consecutive DB System 'UPDATING' status count\n2024-07-19 08:08:22: Requesting OCPU scale-Down by a factor of '4'\n2024-07-19 08:08:22: Scaling-down the core-count...\n2024-07-19 08:08:23: Scaling-down in progress, sleeping 180 secs...\n<\/pre>\n<\/br>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-scheduling\">Scheduling<\/h2>\n\n\n\n<p>With Dynamic Scaling we can schedule weekly or long term period. The scheduling has got the priority over the load mesure.<\/p>\n\n\n\n<p>Let&#8217;s schedule a weekly schedule for Friday between 9am and 4pm to have 16 OCPU. This will be done with the option <code>--scheduling \"Friday:9-16:16\"<\/code>. Of course we can not change scheduling while the daemon is running as the scheduling is part of the daemon.<\/p>\n\n\n\n<p>Get current OCPU:<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\n[opc@ExaCC-cl08n1 ~]$ \/opt\/dynamicscaling\/dynamicscaling.bin getocpu --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba --ociprofile DEFAULT\n\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n Dynamicscaling for ExaCC &amp; ExaCS - Version: 2.0.2-03\n Copyright (c) 2020-2024 Oracle and\/or its affiliates.\n----------------------------------------------------------\n Author: Ruggero Citton \n RAC Pack, Cloud Innovation and Solution Engineering Team\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n\nINFO: 2024-07-19 07:54:12: Checking DB System status\n\n- -------------------------------------------------------\n  VM Cluster OCID        : ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba\n  OCI profile name       : DEFAULT\n- -------------------------------------------------------\n  DB System status       : AVAILABLE\n  Current OCPU           : 4\n  Current physical CPUs  : 4\n- -------------------------------------------------------\n  Dynamicscaling Log file: '\/tmp\/dynamicscaling.log'\n---------------------------------------------------------\n<\/pre>\n<\/br>\n\n\n\n<p>We have currently 4 OCPU.<\/p>\n\n\n\n<p>Let&#8217;s stop the daemon, change its configuration to have the scheduling option as well and start it again.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,2,5,7,9,23,36,37,38]\">\n[opc@ExaCC-cl08n1 ~]$ sudo systemctl stop dynamicscaling.service\n[opc@ExaCC-cl08n1 ~]$ ps -ef | grep -i [d]ynamic\n[opc@ExaCC-cl08n1 ~]$\n\n[opc@ExaCC-cl08n1 ~]$ sudo vi \/etc\/systemd\/system\/dynamicscaling.service\n\n[opc@ExaCC-cl08n1 ~]$ sudo systemctl daemon-reload\n\n[opc@ExaCC-cl08n1 ~]$ cat \/etc\/systemd\/system\/dynamicscaling.service\n[Unit]\nDescription=Dynamicscaling\nWants=network-online.target local-fs.target\nAfter=network-online.target local-fs.target\n\n[Service]\nUser=opc\nType=simple\nEnvironment=\"HTTP_PROXY=http:\/\/webproxy.domain.com:XXXX\"\nEnvironment=\"HTTPS_PROXY=http:\/\/webproxy.domain.com:XXXX\"\nEnvironment=\"http_proxy=http:\/\/webproxy.domain.com:XXXX\"\nEnvironment=\"https_proxy=http:\/\/webproxy.domain.com:XXXX\"\nEnvironment=\"PATH=\/sbin:\/bin:\/usr\/sbin:\/usr\/bin:\/home\/opc\/bin:\/home\/opc\/.local\/bin\"\nExecStart=\/bin\/sh -c \"\/opt\/dynamicscaling\/dynamicscaling.bin --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba --ociprofile DEFAULT --interval 60 --maxthreshold 70 --minthreshold 40 --maxocpu 12 --minocpu 4 --ocpu 4 --logpath \/acfs01\/dynscal_logs\/node1 --scheduling 'Friday:9-16:16'\"\n\nTimeoutStartSec=300\nPIDFile=\/tmp\/.dynamicscaling.pid\nRestart=on-failure\nRestartSec=5s\n\nExecStop=\/bin\/kill -s SIGINT $MAINPID\n\n[Install]\nWantedBy=multi-user.target\n[opc@ExaCC-cl08n1 ~]$\n\n[opc@ExaCC-cl08n1 ~]$ ps -ef | grep -i [d]ynamic\n[opc@ExaCC-cl08n1 ~]$ sudo systemctl start dynamicscaling.service\n[opc@ExaCC-cl08n1 ~]$ ps -ef | grep -i [d]ynamic\nopc      278950      1 26 08:30 ?        00:00:00 \/opt\/dynamicscaling\/dynamicscaling.bin                                            --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba --ociprofile DEFAULT --interval 60 --maxthreshold 70 --minthreshold 40 --maxocpu 12 --minocpu 4 --ocpu 4 --logpath \/acfs01\/dynscal_logs\/node1 --scheduling Friday:9-16:16\n[opc@ExaCC-cl08n1 ~]$\n<\/pre>\n<\/br>\n\n\n\n<p>It is not already 9am, so OCPU are still configured with 4 OCPU.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,4,21,22]\">\n[opc@ExaCC-cl08n1 ~]$ date\nFri Jul 19 08:31:36 CEST 2024\n\n[opc@ExaCC-cl08n1 ~]$ \/opt\/dynamicscaling\/dynamicscaling.bin getocpu --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba --ociprofile DEFAULT\n\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n Dynamicscaling for ExaCC &amp; ExaCS - Version: 2.0.2-03\n Copyright (c) 2020-2024 Oracle and\/or its affiliates.\n----------------------------------------------------------\n Author: Ruggero Citton \n RAC Pack, Cloud Innovation and Solution Engineering Team\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n\nINFO: 2024-07-19 08:32:36: Checking DB System status\n\n- -------------------------------------------------------\n  VM Cluster OCID        : ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba\n  OCI profile name       : DEFAULT\n- -------------------------------------------------------\n  DB System status       : AVAILABLE\n  Current OCPU           : 4\n  Current physical CPUs  : 4\n- -------------------------------------------------------\n  Dynamicscaling Log file: '\/tmp\/dynamicscaling.log'\n---------------------------------------------------------\n<\/pre>\n<\/br>\n\n\n\n<p>In the logs, we can now see such message, if we are out of the scheduling time.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\n[opc@ExaCC-cl08n1 ~]$ grep -i weekly \/acfs01\/dynscal_logs\/node1\/dynamicscaling.log\n2024-07-19 08:30:57: No applicable OCPU weekly scheduling found\n2024-07-19 08:32:04: No applicable OCPU weekly scheduling found\n2024-07-19 08:33:10: No applicable OCPU weekly scheduling found\n2024-07-19 08:34:17: No applicable OCPU weekly scheduling found\n2024-07-19 08:35:24: No applicable OCPU weekly scheduling found\n<\/pre>\n<\/br>\n\n\n\n\n<p>Now we are in the scheduling, on Friday after 9am and before 5pm. And we can see that the OCPU have been increased.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,4,21,22]\">\n[opc@ExaCC-cl08n1 ~]$ date\nFri Jul 19 09:04:29 CEST 2024\n\n[opc@ExaCC-cl08n1 ~]$ \/opt\/dynamicscaling\/dynamicscaling.bin getocpu --ocicli --vm-cluster-id ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba --ociprofile DEFAULT\n\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n Dynamicscaling for ExaCC &amp; ExaCS - Version: 2.0.2-03\n Copyright (c) 2020-2024 Oracle and\/or its affiliates.\n----------------------------------------------------------\n Author: Ruggero Citton \n RAC Pack, Cloud Innovation and Solution Engineering Team\n\u2502\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2502\n\nINFO: 2024-07-19 09:04:32: Checking DB System status\n\n- -------------------------------------------------------\n  VM Cluster OCID        : ocid1.vmcluster.oc1.eu-zurich-1.an5he*****************************************j3ba\n  OCI profile name       : DEFAULT\n- -------------------------------------------------------\n  DB System status       : AVAILABLE\n  Current OCPU           : 16\n  Current physical CPUs  : 16\n- -------------------------------------------------------\n  Dynamicscaling Log file: '\/tmp\/dynamicscaling.log'\n---------------------------------------------------------\n<\/pre>\n<\/br>\n\n\n\n<p>And now we will find such message in the log telling us we are in the configured scheduled time.<\/p>\n\n\n\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\n[opc@ExaCC-cl08n1 ~]$ tail -f \/acfs01\/dynscal_logs\/node1\/dynamicscaling.log\n2024-07-19 09:35:18: Current OCPU=16\n2024-07-19 09:35:18: OCPU=16 is defined by scheduling\n2024-07-19 09:35:20: Local host load ......:  0.5\n2024-07-19 09:35:20: Current OCPU=16 is equal to scheduled OCPU, no action taken\n<\/pre>\n<\/br>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-to-wrap-up\">To wrap up<\/h2>\n\n\n\n<p>Dynamic Scaling is a great tool that will help to automatically manage OCPU. We will not pay for non used OCPU and we will have enough OCPU if needed. Also we can configure specific scheduling for OCPU. Following DocId from Oracle MOS might be interesting to review for further details:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>(ODyS) Oracle Dynamic Scaling engine &#8211; Scale-up and Scale-down automation utility for OCI DB System (ExaDB-D\/ExaDB-C@C) (Doc ID 2719916.1)<\/li>\n\n\n\n<li>(ODyS) Oracle Dynamic Scaling &#8211; Remote Plug-in (Doc ID 2770544.1)<\/li>\n\n\n\n<li>(ODyS) How to make Oracle Dynamic Scaling an HA cluster resource (Doc ID 2834931.1)<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>To automatically scale down and up the OCPU on ExaCC cluster according to the CPU utilisation, we can use dynamic scaling. Dynamic scaling engine can be installed on each cluster nodes VM, from a remote machine as master or from container like doker or podman. We can also installed dynamic engine as a Grid HA [&hellip;]<\/p>\n","protected":false},"author":48,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[59],"tags":[3412,2598,1375,613,290],"type_dbi":[],"class_list":["post-34405","post","type-post","status-publish","format-standard","hentry","category-oracle","tag-dynamic-scaling","tag-exacc-3","tag-oci","tag-ocpu","tag-oracle-cloud"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to automatically manage OCPU on ExaCC using Dynamic Scaling - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to automatically manage OCPU on ExaCC using Dynamic Scaling\" \/>\n<meta property=\"og:description\" content=\"To automatically scale down and up the OCPU on ExaCC cluster according to the CPU utilisation, we can use dynamic scaling. Dynamic scaling engine can be installed on each cluster nodes VM, from a remote machine as master or from container like doker or podman. We can also installed dynamic engine as a Grid HA [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-30T19:30:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-30T19:30:41+00:00\" \/>\n<meta name=\"author\" content=\"Marc Wagner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marc Wagner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/\"},\"author\":{\"name\":\"Marc Wagner\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\"},\"headline\":\"How to automatically manage OCPU on ExaCC using Dynamic Scaling\",\"datePublished\":\"2024-07-30T19:30:38+00:00\",\"dateModified\":\"2024-07-30T19:30:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/\"},\"wordCount\":1107,\"commentCount\":0,\"keywords\":[\"Dynamic Scaling\",\"exacc\",\"OCI\",\"OCPU\",\"Oracle cloud\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/\",\"name\":\"How to automatically manage OCPU on ExaCC using Dynamic Scaling - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2024-07-30T19:30:38+00:00\",\"dateModified\":\"2024-07-30T19:30:41+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to automatically manage OCPU on ExaCC using Dynamic Scaling\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\",\"name\":\"Marc Wagner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"caption\":\"Marc Wagner\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/marc-wagner\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to automatically manage OCPU on ExaCC using Dynamic Scaling - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/","og_locale":"en_US","og_type":"article","og_title":"How to automatically manage OCPU on ExaCC using Dynamic Scaling","og_description":"To automatically scale down and up the OCPU on ExaCC cluster according to the CPU utilisation, we can use dynamic scaling. Dynamic scaling engine can be installed on each cluster nodes VM, from a remote machine as master or from container like doker or podman. We can also installed dynamic engine as a Grid HA [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/","og_site_name":"dbi Blog","article_published_time":"2024-07-30T19:30:38+00:00","article_modified_time":"2024-07-30T19:30:41+00:00","author":"Marc Wagner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Marc Wagner","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/"},"author":{"name":"Marc Wagner","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628"},"headline":"How to automatically manage OCPU on ExaCC using Dynamic Scaling","datePublished":"2024-07-30T19:30:38+00:00","dateModified":"2024-07-30T19:30:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/"},"wordCount":1107,"commentCount":0,"keywords":["Dynamic Scaling","exacc","OCI","OCPU","Oracle cloud"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/","url":"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/","name":"How to automatically manage OCPU on ExaCC using Dynamic Scaling - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2024-07-30T19:30:38+00:00","dateModified":"2024-07-30T19:30:41+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-automatically-manage-ocpu-on-exacc-using-dynamic-scaling\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to automatically manage OCPU on ExaCC using Dynamic Scaling"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628","name":"Marc Wagner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","caption":"Marc Wagner"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/marc-wagner\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/34405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=34405"}],"version-history":[{"count":26,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/34405\/revisions"}],"predecessor-version":[{"id":34431,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/34405\/revisions\/34431"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=34405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=34405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=34405"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=34405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}