Skip to main content

HOW TO SET KERNEL VALUES TO IMPROVE PERFORMANCE IN SOLARIS SERVERS


 (A) set maxphys
 To improve basic disk performance
 maxphys is the maximum size of physical I/O requests. If a driver sees a request larger than this size, the driver breaks the request into maxphys size chunks. File systems can and do impose their own limit. This value should be higher than all other settings (vol_maxio, vol_maxspecialio etc) such as in Filesystems/Volume Manager etc. maxphys is set in bytes.
 Maximum number of page I/O requests that can be queued by the paging system. This number is divided by 4 to get the actual maximum used by the paging system. It is used to throttle the number of requests as well as to control process swapping. maxpgio is in I/O's. 




C)Set FastScan (Is Calculated by Multipliying 32678 for Physical Memory


D)Set Handspreadpages(Is Calculated by Multipliying 32678 for Physical Memory

 The Solaris environment uses a two-handed clock algorithm to look for pages that are candidates for reclaiming when memory is low. The first hand of the clock walks through memory marking pages as unused. The second hand walks through memory some distance after the first hand, checking to see if the page is still marked as unused. If so, the page is subject to reclaim. The distance between the front hand and the back hand is handspreadpages.
 Along with tune_t_flushr, autoup controls the amount of memory examined for dirty pages in each invocation and frequency of file system sync operations.
 Specifies the number of seconds between fsflush invocations.
 Turn on buffer overflow protection
 Enable the Logging of Executable Stack Messages.
 It should be the 20% of physical memory to limit the use by ZFS
 (J)zfs:zfs_vdev_max_pending   
  
 Example  /etc/system server with physical memory (10 GB RAM) some parameter are obsoletes
 10 GB de Memoria in my test server
exclude: drv/ohci
set maxphys=0x800000
set maxpgio=327680   
set fastscan=327680   
set handspreadpages=327680
set autoup=50
set tune_t_fsflushr=1
set noexec_user_stack=1
set noexec_user_stack_log=1
set pg_contig_disable=1
set zfs:zfs_immediate_write_sz=0x20000
set zfs:metaslab_df_free_pct=4
set zfs:zfs_nocacheflush=1
set zfs:zfs_arc_max=2147483648 
set rlim_fd_max=65536
set rlim_fd_cur=65536
set zfs:zfs_vdev_max_pending=20   
set ssd:ssd_max_throttle=20
set ssd:ssd_max_throttle=20

It very important that you distribute the I/O in different LUN's for example in Oracle Installation Data Files, Redos and Archivelogs in different LUNs to improve the performance
If you want more information you can consult the Oracle Document:
Roger
(Values calculated with a server with 10 GB)


 (B) set maxpgio
 (E) set autohup (value is calculated by multiplying the physical memory for 5)
 (F) set tune_t_fsflushr
 (G) set noexec_user_stack
 (H) set noexec_user_stack_log
 (I) zfs_arc_max
(number of LUNs * ZFS_VDEV_MAX_PENDING)  In a legacy storage environment, the ssd_max_throttle and sd_max_throttle parameters define the maximum number of concurrent I/Os that the driver can send to the storage. By setting the zfs_vdev_max_pending default value equal to the value of the [s]sd_max_throttle parameter, we prevent ZFS from queuing I/O to yet another unnecessary SD layer.
* OS Tunning
 * ZFS tuning
 * Limit ARC
The values if you are using zfs for the max_throttle and zfs_vdev_max_pending should be the same
set zfs:zfs_vdev_max_pending=20   


Comments

Unknown said…
Setting
set maxphys=0x800000

in /etc/system or in /etc/system.d/
when using an Ldoms (a.k.a. Oracle VM Server for SPARC) guest domain with a vhba (virtual HBA) configuration causes boot failures of the guest domain with errors such as:

Boot device:
/virtual-devices@100/channel-devices@200/scsi@0/disk@w21020002ac0199fe,0:a
File and args:
WARNING: use-nvramrc? variable is set, continuing with signature verification
SunOS Release 5.11 Version 11.3 64-bit
Copyright (c) 1983, 2018, Oracle and/or its affiliates. All rights reserved.
WARNING: vio_dring_bind:[4] dring_bind: (12, Not enough space)
WARNING: vio_conn_negotiate:[4] DringRegistration failed
WARNING: vio_dring_bind:[4] dring_bind: (12, Not enough space)
WARNING: vio_conn_negotiate:[4] DringRegistration failed
WARNING: vio_dring_bind:[4] dring_bind: (12, Not enough space)
WARNING: vio_conn_negotiate:[4] DringRegistration failed
WARNING: vio_dring_bind:[4] dring_bind: (12, Not enough space)

I am uncertain why such a large value for maxphys 0x800000 is 8MB is being suggested, the default is 128K.

Last Week Topics

How to break a bonded network interface red hat

1.- Bonding device called bond0 which aggregated by eth0 and eth1 # ifconfig bond0     Link encap:Ethernet  HWaddr 44:a8:42:5d:6d:5d           inet addr:192.168.1.51  Bcast:192.168.1.255  Mask:255.255.255.0           inet6 addr: fe80::5054:ff:fe4d:9004/64 Scope:Link           UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1 eth0      Link encap:Ethernet  HWaddr 44:a8:42:5d:6d:5d           UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1 eth2      Link encap:Ethernet  HWaddr 44:a8:42:5d:76:29           UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1           RX packets:6 errors:0 dropped:0 overruns:0 frame:0 # cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: fault-tolerance (active-backup) Primary Slave: em1 (primary_reselect always) Currently Active Slave: em1 MII Status: up MII Polling Interval (ms): 50 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Speed: 10000

HOW TO ADD A LINE WITH ANSIBLE WITH TAB SPACE IN A FILE

-bash-4.2# vi add_line_syslog.yml --- - name: script in order to add in the server list below with TAB spaces a Line in the SYSLOG CONF   hosts: oraking   tasks:     - name: Add a Line  in /etc/syslog.conf in order to delivery that information to another server       lineinfile:         path: /etc/syslog.conf         line: " *.err;auth.notice;auth.info;local0.info \t\t @10.10.10.200 "         insertbefore: ' \*.alert;kern.err;daemon.err '     - name: Restart system-log       command: /usr/sbin/svcadm restart svc:/system/system-log:default

How to configure publisher and install packages in Oracle Solaris 11

Connect to Oracle Support and Download the certificates Set proxy if you have one  #export https_proxy=https://usuario:password@191.118.2.110:8080  #export http_proxy=http://usuario:password@191.118.2.110:8080 You can add in the profile this information in order to have them configured in the login 1.-Download the ssl certicates in order to install them in the server 2.-Create a directory /var/pkg/ssl. #mkdir -p 755  /var/pkg/ssl 3.-Copy or Move the cerrtificates  # cd /var/pkg/ssl/  # ls -ltr total 53 -rw-r--r--   1 root     root        1679 Mar 27 13:36 Oracle_Solaris_11_Support.key.pem -rw-r--r--   1 root     root         932 Mar 27 13:36 Oracle_Solaris_11_Support.certificate.pem 4.- # pkg set-publisher \  -k /var/pkg/ssl/Oracle_Solaris_11_Support.key.pem \ -c /var/pkg/ssl/Oracle_Solaris_11_Support.certificate.pem \ -g https://pkg.oracle.com/solaris/support/ \ -G http://pkg.oracle.com/solaris/release/ solaris   5.-Verify the new publisher  # pkg publ

Updating Solaris 11.X to 11.3 and SRU to 11.3.2.4.0

Updating Solaris 11.X to 11.3 Download Repository Certificate s accessing with MOS user https://pkg-register.oracle.com/register/certificate/ Upload them to the server and rename as below pkg.oracle.com.certificate.perm pkg.oracle.com.key.perm root@:~# pkg unset-publisher This option below delete the currently repository and add the new one root@:~# pkg set-publisher -k  /root/pkg.oracle.com.key.pem -c /root/pkg.oracle.com.certificate.pem -G "*" -g https://pkg.oracle.com/solaris/support/ solaris root@:~# pkg publisher PUBLISHER                   TYPE     STATUS P LOCATION solaris                     origin   online F http://pkg.oracle.com/solaris/support/ root@# pkg update Validate previous boot environment root@:~# beadm list BE      Flags Mountpoint Space  Policy Created --      ----- ---------- -----  ------ ------- solaris NR    /          12.58G static 2016-03-15 07:11 root@:~# root@:~# PHASE             

HOW TO SHARE WITH ZFS A FILE SYSTEM IN SOLARIS 11

As root execute the following Create the pool #zpool create ztemp c0d0 Create ZFS  #zfs create ztemp/temp Mount ZFS  #zfs set mountpoint=/temp ztemp/temp Share ZFS with the option "sharenfs=on" #zfs set sharenfs=on ztemp/temp Share and Select the PATH and SERVERS that you need that mount the ZFS from the NFS Server in our case the servers are oracle1,oracle2 and oracle3 with Read and Write Options #zfs set share=name=temp,path=/temporario,prot=nfs,anon=0,rw=oracle1:oracle2:oracle3 ztemp/temp

How to install Explorer Data Collector 8.11 Solaris 11

1.-Download from Oracle Support MOS the patch 22783063 and unzip and run the command below p22783063_8111638_SOLARIS64.zip #./install_stb.sh -verbose Extracting the STB payload ... Determining the check sums ... Sourcing STB library file ... List of Services Tool Bundle Components:    Oracle Explorer Data Collector 8.11    Oracle Serial Number in EEPROM (SNEEP) 8.11    Service Tag (ST) packages    Oracle Autonomous Crashdump Tool 8.17 (ACT) Would you like to (I)nstall, (X)tract, or (E)xit ? (I by default) X  <-----Select Extract (X) Extracting components for Solaris 11/sparc ...  Extracting IPS repository  Extracting SVR4 packages for Service Tag (ST) packages  - Package 5.11_sparc/SUNWsthwreg.sparc.5.10.pkg extracted Extraction to /var/tmp/stb/extract done Removing STB installation area ...   2.- Now you have in the directory "/var/tmp/stb/extract" de ipsrepo  # cd /var/tmp/stb/extract rwxr-xr-x   3 102      staff          4 Mar  8 11:28 ipsrepo -rw-r--r-- 

How to see all spfile parameters

SET LINESIZE 300 COLUMN name  FORMAT A30 COLUMN value FORMAT A60 COLUMN displayvalue FORMAT A60 SELECT sp.sid,        sp.name,        sp.value,        sp.display_value FROM   v$spparameter sp ORDER BY sp.name, sp.sid;

What is PaaS, IaaS and SaaS?

  Infrastructure Platform as a Service (iPaaS) Integration Platform as a Service (iPaaS) is a suite of cloud services enabling the development, execution, and governance of integration flows connecting any combination of on-premises and cloud-based processes, services, applications, and data within individuals or across multiple organizations.   Ease of use Comprehensive integration of toolsets   Level of support   Readiness to support protocols Flexibility Ability to process, clean, and transform data in formats like XML and JSON; Performance when handling large-scale data operations and concurrent executions; Support for real-time processing and batch data integration; Monitoring for failures, latency, resource utilization, and workflow performance;   Security mechanisms for access control, data encryption, and single sign-on integrations   Infrastructure as a Service (IaaS)     I s a business model that delivers IT infrastructure like computing, storage, and network resources on a p

How to Reset the Root Password of RHEL-7 / systemd

1) Boot your system and wait until the GRUB2 menu appears. 2) In the boot loader menu, highlight any entry and press e . 3) Find the line beginning with linux. At the end of this line, append the following: init=/bin/sh Or if you face a panic, instead of "ro" change to "rw" to sysroot as example below: rw init=/sysroot/bin/sh 4) Press F10 or Ctrl+X to boot the system using the options you just edited. Once the system boots, you will be presented with a shell prompt without having to enter any user name or password: sh-4.2# 5) Load the installed SELinux policy: sh-4.2# /usr/sbin/load_policy -i 6) Execute the following command to remount your root partition: sh4.2# mount -o remount,rw / 7) Reset the root password: Raw sh4.2# passwd root 9) Reboot the system. From now on, you will be able to log in as the root user using the new password set up during this procedure.