What exactly does Kernel parameters do ?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers What exactly does Kernel parameters do ?
# 1  
Old 06-18-2013
What exactly does Kernel parameters do ?

Virtual Machine running on VMWare workstation 9.2
os : RHEL 5.8
RAM : 2.5GB
Swap : 2.6gb
CPU : 1 virtual CPU


Surprizingly I couldn't find much from googling on What exactly does Kernel parameters do ?

I was under the impression that kernel parameters just set the limits/maximum for a certain resources in the server.

To install Oracle RDBMS in my Linux VM, i set /etc/sysctl.conf as shown below . I found these settings from google.

Code:
$ cat /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0


net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0


kernel.sysrq = 0

kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296

kernel.core_pattern = core.%e.%t

# Oracle Settings
net.ipv4.ip_local_port_range=9000 65500
net.ipv4.tcp_rmem = 4096 262144 26214400
net.ipv4.tcp_wmem = 4096 262144 26214400
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.tcp_timestamps = 0
vm.pagecache=30
vm.swappiness=100
kernel.shmmni=4096
kernel.sem=268 32000 100 142
fs.file-max=6815744
fs.aio-max-nr=1048576
vm.nr_hugepages=32768
#vm.nr_hugepages=0
vm.drop_caches=0
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=1048576

I restarted the VM after after editing /etc/sysctl.conf like above. But the Linux VM was hanging at startup. It took around 1 hour for the VM to actually come up and it was very slow. So, i reverted /etc/sysctl.conf to the original file.

Why was the VM hanging at startup ?

Has it got anything to do with the kernel.shmmax value? But I am just setting a maximum possible value here. Right ?
# 2  
Old 06-18-2013
"in the absence of clues, anything that can be eliminated quickly should be eliminated"

your issue may not be within the rhel server but rather within the vmware server ...

since all the resources in the vmware server are shared by all the hosted servers and since each hosted server is only allocated a certain amount of virtual ram and virtual cpu during the build, changing the hosted server's kernel parameters without knowing it's build parameters (i.e., 1 cpu, 4 gb ram, etc.) could be problematic not just for the specific server involved but also for the other hosted servers in the vmware host ...

i suggest you check with your vmware administrator -- if a separate person -- and/or vmware support for some guidance on memory issues ... it is very possible they may not be able to help you with this matter but they should at least be able to educate you further on vmware's resource sharing concepts ...
This User Gave Thanks to Just Ice For This Post:
# 3  
Old 06-18-2013
Quote:
Originally Posted by John K
Surprizingly I couldn't find much from googling on What exactly does Kernel parameters do ?
There was already a hint in the file:

Quote:
Originally Posted by John K
Code:
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

See the man pages for "sysctl.conf" (chapter 5) and for sysctl (chapter 8), like this:

Code:
man 8 sysctl
man 5 sysctl.conf

Quote:
Originally Posted by John K
I was under the impression that kernel parameters just set the limits/maximum for a certain resources in the server.
No. Kernel parameters control all sorts of things, including what you believe to be their purpose. For instance:

Code:
# Controls IP packet forwarding
net.ipv4.ip_forward = 0

controls if IP packets arriving on one interface should be sent using another interface if they are not addressed to the host. If switched on this system would start to act as a router and you could put further software shaping/limiting/restricting this forwarding process ont it - firewalls and gateways are built this way, usually.

It is a sound decision to switch this off, because - as a design principle - every system should either act as a server or a router, but not both. As you want to build a RDBMS-system routing functionality should be out of the question.

The kernel parameters are organized in a "tree" structure: for instance, there is "net.*", controlling all sorts of network parameters, with the subtrees "net.ipv4.*", related to IPv4-parameters and "net.ipv6.*", related to IPng-parameters, etc.. Most of these values have defaults and usually only the values differing from the default are mentioned. As a rule of thumb you don't change any of these parameters if there is no necessity.

I suggest yo install Oracle, load the database, let the customers test and only then, when they complain about bad performance, you start to seek ways to meet their demands. The magic word here is:

Service Level Agreement

It is like a contract, where the customer defines exactly what he wants to have in some terms that are measurable (seconds, transactions, kilobytes, whatever - but it must be a COUNTABLE quality, not just gut feeling and "can you please adjust some wee bit, you know, make it faster overall".

In turn you guarantee to meet these demands and the customer agrees not to pester you any more as soon as this goal is reached.

Once there is such an SLA and the system is indeed not meeting it you can start researching ways to make the system meet these demands, but not before!

One reason for this is that there is a huge difference between performance and being fast. "Performance" means being fast for a specified purpose under specified circumstances. Here is an example for what this means: suppose a 40t-lorry, a 500hp-Ferrari and a Land Rover. Which one is the fastest (most performant) car? The answer to this is: that depends. It depends on which roads you want to travel (try going a hollowway in a dense forest with the Ferrari), how much goods you want to transport (the Ferrari will only have room for a credit card while the lorries cargo bay is considerably bigger, etc.. What you are trying to do is to tune the Ferraris compression ratio to make it 10hp more powerful before you even know if you need a Land Rover, a lorry or this racing car. This is simply wasting time.

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Kernel Parameters

Dear All, I have weblogic Portal Installed in the Server solaris 10. How can i verify whether all the kernel parameters are available for this Software and also another question is How to crosscheck a server ( Solaris 10 Sparc ) whether it has all the required kernel parameters. ... (2 Replies)
Discussion started by: jegaraman
2 Replies

2. Solaris

Kernel Parameters

Dear All, I want to check whether all essential kernel parameters are installed in my Solaris 10 System. Is there any way to find it. And also how to tune it. Kindly help. Thanks and Regards Rj (8 Replies)
Discussion started by: jegaraman
8 Replies

3. Linux

kernel module parameters

Hi, if I install a module with specific parameter, will this parameters applied next time system boots? for exampe, I want to disable InterruptThrottleRate modprobe e1000e InterruptThrottleRate=0 Is this parameter apllied only for this run, or this module will always use this parameter when... (2 Replies)
Discussion started by: Shedon
2 Replies

4. Solaris

Which file is read by kernel to set its default system kernel parameters values?

Hi gurus Could anybody tell me which file is read by kernel to set its default system kernal parameters values in solaris. Here I am not taking about /etc/system file which is used to load kernal modules or to change any default system kernal parameter value Is it /dev/kmem file or something... (1 Reply)
Discussion started by: girish.batra
1 Replies

5. HP-UX

Adding new kernel parameters

Hi, I'm new to HP-UX. i'm working on HP-UX 11.31 ia64 for testing our product i could able to change the kernel parameter values and i need to add the following parameters to the parameters list semmap = 258 nfile = 2048 msgseg = 7168 msgssz = 32 maxusers = 60 msgmap = 258 msgmax =... (4 Replies)
Discussion started by: jo09
4 Replies

6. HP-UX

Kernel parameters.

I've been trying to find out the following parameters of our Unix box: ==>OS version ==> patch level and the following kernel parameters =>maxfiles_lim =>maxvgs =>nproc =>msgmni =>ncsize =>nfile Could someone help me how would I find the above(commands)? Thanks, Bhagat (1 Reply)
Discussion started by: bhagat.singh-j
1 Replies

7. HP-UX

Need to look at Kernel parameters

Hello all, Can anyone tell me the command line I can use to look at the following Kernel parameters: nfile maxfile maxfile_lim I'm using the Reflection manager connection to my Unix box so I can't use SAM. (3 Replies)
Discussion started by: impunchdrunk
3 Replies

8. HP-UX

kernel parameters

I want to change some kernel parameters in HP-UX11, to do with Oracle upgrade/install. I know this is done using SAM. I am told SAM will not let you enter values outside the allowable range. Could anyone tell me if they have experienced anything different? In Solaris, I would copy the... (2 Replies)
Discussion started by: malcqv
2 Replies

9. UNIX for Advanced & Expert Users

Tunable kernel parameters

Hi all, I'm at SCO UNIXWARE 7.1.1, my system's memory is larger than dump device, I have found one kernel tunable parameter at SCO website ie SYSDUMP_SELECTIVE which tells me that if set to 1 system will dump only kernel mapped memory, but I'm not sure how to configure this parameter. As well... (2 Replies)
Discussion started by: tayyabq8
2 Replies

10. HP-UX

Display Kernel Parameters

Good Day Please couls somebody tell me how to display Configurable Kernel parameters from the command line. I am able to do it from SAM,but would like to dump the command line output to a text file so I can email it off to HP. Kind Regards Shawn (1 Reply)
Discussion started by: shawnbishop
1 Replies
Login or Register to Ask a Question