HNDL性能调优(1)硬件、操作系统、基础环境

 
系统运行级别的调整
    通常在数据中心的服务器不需要GUI图形用户界面进行操作,因为考虑到运行级别5的GUI带来的系统开销。安装后为服务器系统选择默认运行级别为3,除非你有特殊的需要将默认的运行级别设为5(图形用户模式)。运行级别的修改可以编辑/etc/inittab文件
vi /etc/inittab
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
 
# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
 
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
 
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
 
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
 
# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
 
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
 
 
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
 
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm nodaemon
 
修改行id:5:initdefault:中5为3。如果需要临时切换回运行级别5,可以直接输入命令init 5,返回输入init 3。
 
操作系统的安装选择的是完全安装,系统安装了很多与核心应用服务程序Oracle、Weblogic不相关服务器软件,运行了很多不必要的服务器守护程序,这些运行中的守护程序同样会争用宝贵的CPU、内存、IO等系统资源,需要把这些不相关的守护程序停止、并禁用其自启动。
    下面是系统服务器守护程序列表:
hpoj              0:off 1:off 2:off 3:on   4:on   5:on   6:off
portmap           0:off 1:off 2:off 3:on   4:on   5:on   6:off
diskdump          0:off 1:off 2:off 3:off 4:off 5:off 6:off
pcmcia            0:off 1:off 2:off 3:off 4:off 5:off 6:off
acpid             0:off 1:off 2:off 3:on   4:on   5:on   6:off
smartd            0:off 1:off 2:off 3:off 4:off 5:off 6:off
NetworkManager    0:off 1:off 2:off 3:off 4:off 5:off 6:off
netdump           0:off 1:off 2:off 3:off 4:off 5:off 6:off
xfs               0:off 1:off 2:on   3:on   4:on   5:on   6:off
kprop             0:off 1:off 2:off 3:off 4:off 5:off 6:off
saslauthd         0:off 1:off 2:off 3:off 4:off 5:off 6:off
network           0:off 1:off 2:on   3:on   4:on   5:on   6:off
ripngd            0:off 1:off 2:off 3:off 4:off 5:off 6:off
bootparamd        0:off 1:off 2:off 3:off 4:off 5:off 6:off
krb5kdc           0:off 1:off 2:off 3:off 4:off 5:off 6:off
arptables_jf      0:off 1:off 2:off 3:off 4:off 5:off 6:off
dc_client         0:off 1:off 2:off 3:off 4:off 5:off 6:off
canna             0:off 1:off 2:off 3:off 4:off 5:off 6:off
haldaemon         0:off 1:off 2:off 3:on   4:on   5:on   6:off
FreeWnn           0:off 1:off 2:off 3:off 4:off 5:off 6:off
ospfd             0:off 1:off 2:off 3:off 4:off 5:off 6:off
nfslock           0:off 1:off 2:off 3:on   4:on   5:on   6:off
ipmi              0:off 1:off 2:off 3:off 4:off 5:off 6:off
mdmonitor         0:off 1:off 2:off 3:off 4:off 5:off 6:off
cups-config-daemon   0:off 1:off 2:off 3:off 4:off 5:off 6:off
rusersd           0:off 1:off 2:off 3:off 4:off 5:off 6:off
irda              0:off 1:off 2:off 3:off 4:off 5:off 6:off
lvm2-monitor      0:off 1:on   2:on   3:on   4:on   5:on   6:off
smb               0:off 1:off 2:off 3:off 4:off 5:off 6:off
ospf6d            0:off 1:off 2:off 3:off 4:off 5:off 6:off
cyrus-imapd       0:off 1:off 2:off 3:off 4:off 5:off 6:off
dovecot           0:off 1:off 2:off 3:off 4:off 5:off 6:off
readahead         0:off 1:off 2:off 3:off 4:off 5:on   6:off
rarpd             0:off 1:off 2:off 3:off 4:off 5:off 6:off
messagebus        0:off 1:off 2:off 3:on   4:on   5:off 6:off
amd               0:off 1:off 2:off 3:off 4:off 5:off 6:off
kadmin            0:off 1:off 2:off 3:off 4:off 5:off 6:off
rpcidmapd         0:off 1:off 2:off 3:on   4:on   5:on   6:off
bgpd              0:off 1:off 2:off 3:off 4:off 5:off 6:off
atd               0:off 1:off 2:off 3:on   4:on   5:on   6:off
dhcp6s            0:off 1:off 2:off 3:off 4:off 5:off 6:off
dhcpd             0:off 1:off 2:off 3:off 4:off 5:off 6:off
ypbind            0:off 1:off 2:off 3:off 4:off 5:off 6:off
ip6tables         0:off 1:off 2:off 3:off 4:off 5:off 6:off
ypserv            0:off 1:off 2:off 3:off 4:off 5:off 6:off
oracleasm         0:off 1:off 2:on   3:on   4:on   5:on   6:off
bluetooth         0:off 1:off 2:off 3:off 4:off 5:off 6:off
netdump-server    0:off 1:off 2:off 3:off 4:off 5:off 6:off
rawdevices        0:off 1:off 2:off 3:on   4:on   5:on   6:off
gpm               0:off 1:off 2:on   3:on   4:on   5:on   6:off
cups              0:off 1:off 2:off 3:off 4:off 5:off 6:off
anacron           0:off 1:off 2:on   3:on   4:on   5:on   6:off
netplugd          0:off 1:off 2:off 3:off 4:off 5:off 6:off
multipathd        0:off 1:off 2:off 3:off 4:off 5:off 6:off
iiim              0:off 1:off 2:on   3:on   4:on   5:on   6:off
postgresql        0:off 1:off 2:off 3:off 4:off 5:off 6:off
rwhod             0:off 1:off 2:off 3:off 4:off 5:off 6:off
mysqld            0:off 1:off 2:off 3:off 4:off 5:off 6:off
xinetd            0:off 1:off 2:off 3:on   4:on   5:on   6:off
lm_sensors        0:off 1:off 2:on   3:on   4:on   5:on   6:off
yppasswdd         0:off 1:off 2:off 3:off 4:off 5:off 6:off
ypxfrd            0:off 1:off 2:off 3:off 4:off 5:off 6:off
irqbalance        0:off 1:off 2:off 3:on   4:on   5:on   6:off
wpa_supplicant    0:off 1:off 2:off 3:off 4:off 5:off 6:off
rstatd            0:off 1:off 2:off 3:off 4:off 5:off 6:off
ntpd              0:off 1:off 2:off 3:on   4:off 5:on   6:off
dc_server         0:off 1:off 2:off 3:off 4:off 5:off 6:off
rpcgssd           0:off 1:off 2:off 3:on   4:on   5:on   6:off
isdn              0:off 1:off 2:off 3:off 4:off 5:off 6:off
syslog            0:off 1:off 2:on   3:on   4:on   5:on   6:off
autofs            0:off 1:off 2:off 3:on   4:on   5:on   6:off
httpd             0:off 1:off 2:off 3:off 4:off 5:off 6:off
squid             0:off 1:off 2:off 3:off 4:off 5:off 6:off
vncserver         0:off 1:off 2:off 3:off 4:off 5:off 6:off
snmpd             0:off 1:off 2:off 3:off 4:off 5:off 6:off
krb524            0:off 1:off 2:off 3:off 4:off 5:off 6:off
arpwatch          0:off 1:off 2:off 3:off 4:off 5:off 6:off
ldap              0:off 1:off 2:off 3:off 4:off 5:off 6:off
mdmpd             0:off 1:off 2:off 3:off 4:off 5:off 6:off
ripd              0:off 1:off 2:off 3:off 4:off 5:off 6:off
nfs               0:off 1:off 2:off 3:off 4:off 5:off 6:off
tog-pegasus       0:off 1:off 2:off 3:off 4:off 5:off 6:off
vsftpd            0:off 1:off 2:off 3:off 4:off 5:off 6:off
tux               0:off 1:off 2:off 3:off 4:off 5:off 6:off
iptables          0:off 1:off 2:off 3:off 4:off 5:off 6:off
kudzu             0:off 1:off 2:off 3:on   4:on   5:on   6:off
named             0:off 1:off 2:off 3:off 4:off 5:off 6:off
microcode_ctl    0:off 1:off 2:on   3:on   4:on   5:on   6:off
opensmd           0:off 1:off 2:off 3:off 4:off 5:off 6:off
spamassassin      0:off 1:off 2:off 3:off 4:off 5:off 6:off
radiusd           0:off 1:off 2:off 3:off 4:off 5:off 6:off
mailman           0:off 1:off 2:off 3:off 4:off 5:off 6:off
netfs             0:off 1:off 2:off 3:on   4:on   5:on   6:off
crond             0:off 1:off 2:on   3:on   4:on   5:on   6:off
rhnsd             0:off 1:off 2:off 3:off 4:off 5:off 6:off
zebra             0:off 1:off 2:off 3:off 4:off 5:off 6:off
innd              0:off 1:off 2:off 3:off 4:off 5:off 6:off
sshd              0:off 1:off 2:on   3:on   4:on   5:on   6:off
snmptrapd         0:off 1:off 2:off 3:off 4:off 5:off 6:off
psacct            0:off 1:off 2:off 3:off 4:off 5:off 6:off
openibd           0:off 1:off 2:off 3:off 4:off 5:off 6:off
auditd            0:off 1:off 2:off 3:off 4:off 5:off 6:off
rdisc             0:off 1:off 2:off 3:off 4:off 5:off 6:off
nscd              0:off 1:off 2:off 3:off 4:off 5:off 6:off
readahead_early   0:off 1:off 2:off 3:off 4:off 5:on   6:off
sysstat           0:off 1:on   2:on   3:on   4:on   5:on   6:off
iscsi             0:off 1:off 2:off 3:off 4:off 5:off 6:off
oddjobd           0:off 1:off 2:off 3:off 4:off 5:off 6:off
lisa              0:off 1:off 2:off 3:off 4:off 5:off 6:off
mpp               0:off 1:off 2:off 3:on   4:off 5:on   6:off
winbind           0:off 1:off 2:off 3:off 4:off 5:off 6:off
cpuspeed          0:off 1:on   2:on   3:on   4:on   5:off 6:off
sendmail          0:off 1:off 2:on   3:on   4:on   5:off 6:off
radvd             0:off 1:off 2:off 3:off 4:off 5:off 6:off
dhcrelay          0:off 1:off 2:off 3:off 4:off 5:off 6:off
xinetd based services:
    finger:    off
    amanda:    off
    time: off
    cups-lpd: off
    rsync: off
    daytime-udp: off
    kshell:    off
    time-udp: off
    swat: off
    rexec: off
    amandaidx: off
    rlogin:    off
    telnet:    off
    ntalk: off
    chargen:   off
    eklogin:   off
    klogin:    off
    talk: off
    tftp: off
    echo-udp: off
    krb5-telnet: off
    dbskkd-cdb:   off
    gssftp:    off
    daytime:   off
    rsh:   off
    auth: on
    ktalk: off
    amidxtape: off
    echo: off
    chargen-udp: off
上面的列表是在修改部分守护程序是否启动后截取得,可能有很多守护程序已经手工的关闭,所以这个列表不能反映出系统安装完成后系统服务守护程序的状态。以列表第一项hpoj为例介绍管理服务的方法,
关闭服务自启动
chkconfig level 345 hpoj off
改变系统的运行级别或重新启动服务器,上面的设置才会生效。如果不能做改变运行级别或重启,就需要手工停止已经运行的服务
service hpoj stop
下面列表是一个更改后系统服务列表,去除了不必要的的服务,保留了尽可能少的服务:
portmap         0:off 1:off 2:off 3:on   4:on   5:on   6:off
acpid           0:off 1:off 2:off 3:on   4:on   5:on   6:off
xfs             0:off 1:off 2:on   3:on   4:on   5:on   6:off
network         0:off 1:off 2:on   3:on   4:on   5:on   6:off
haldaemon       0:off 1:off 2:off 3:on   4:on   5:on   6:off
nfslock         0:off 1:off 2:off 3:on   4:on   5:on   6:off
lvm2-monitor    0:off 1:on   2:on   3:on   4:on   5:on   6:off
readahead       0:off 1:off 2:off 3:off 4:off 5:on   6:off
messagebus      0:off 1:off 2:off 3:on   4:on   5:off 6:off
rpcidmapd       0:off 1:off 2:off 3:on   4:on   5:on   6:off
atd             0:off 1:off 2:off 3:on   4:on   5:on   6:off
oracleasm       0:off 1:off 2:on   3:on   4:on   5:on   6:off
rawdevices      0:off 1:off 2:off 3:on   4:on   5:on   6:off
gpm             0:off 1:off 2:on   3:on   4:on   5:on   6:off
anacron         0:off 1:off 2:on   3:on   4:on   5:on   6:off
iiim            0:off 1:off 2:on   3:on   4:on   5:on   6:off
xinetd          0:off 1:off 2:off 3:on   4:on   5:on   6:off
lm_sensors      0:off 1:off 2:on   3:on   4:on   5:on   6:off
irqbalance      0:off 1:off 2:off 3:on   4:on   5:on   6:off
ntpd            0:off 1:off 2:off 3:on   4:off 5:on   6:off
rpcgssd         0:off 1:off 2:off 3:on   4:on   5:on   6:off
syslog          0:off 1:off 2:on   3:on   4:on   5:on   6:off
autofs          0:off 1:off 2:off 3:on   4:on   5:on   6:off
kudzu           0:off 1:off 2:off 3:on   4:on   5:on   6:off
microcode_ctl  0:off 1:off 2:on   3:on   4:on   5:on   6:off
netfs           0:off 1:off 2:off 3:on   4:on   5:on   6:off
crond           0:off 1:off 2:on   3:on   4:on   5:on   6:off
sshd            0:off 1:off 2:on   3:on   4:on   5:on   6:off
readahead_early 0:off 1:off 2:off 3:off 4:off 5:on   6:off
sysstat         0:off 1:on   2:on   3:on   4:on   5:on   6:off
mpp             0:off 1:off 2:off 3:on   4:off 5:on   6:off
cpuspeed        0:off 1:on   2:on   3:on   4:on   5:off 6:off
sendmail        0:off 1:off 2:on   3:on   4:on   5:off 6:off
   auth: on
下面的表格描述了部分服务的属性
进程
描述
apmd
高级电源管理进程,在一个服务器系统中这个进程通常很少用到。
arptables_js
Arptables 网络过滤的应用程序,除非你计划使用arptables,否则你可以安全的禁用这个守护进程。
autofs
自动mount文件系统进程(例如自动mount光驱),在服务器系统上文件系统很少使用自动mount功能。
cpuspeed
动态调整CPU频率的进程,在服务器系统中这个进程建议关闭。
cups
通用UNIX打印系统,如果你计划在服务器上运行打印服务就不要关闭这个进程。
gpm
文本终端的鼠标服务,如果你想在本地文本终端支持鼠标就不要禁用这个进程。
hpoj
HP OfficeJet 支持。如果你准备在服务器上支持HP OfficeJet服务,请启用这个进程。
irqbalance
在多个处理器之间平衡中断,如果你使用一个单CPU系统或者你计划静态的平衡中断可以禁用这个进程。
isdn
ISDN 调制解调器支持,如果你准备在服务器上支持ISDN调制解调器就不要禁用这个进程。
kudzu
检测和配置新硬件,如果硬件配置改变了应该手动运行。
netfs
用于支持NFS共享,如果你准备在服务器上支持NFS共享就不要禁用这个进程。
nfslock
对nfs启用文件锁,如果你准备在服务器上支持NFS共享就不要禁用这个进程。
pcmcia
Pcmcia 支持,在服务器上很少使用pcmcia适配器因此可以安全的禁用这个进程。
protmap
为RPC服务动态分配端口(例如NIS和NFS),如果系统没有支持RPC服务可以禁用这个进程。
rawdevices
提供对裸设备绑定的支持,如果你不准备在系统中使用裸设备可以禁用这个进程。
rpc*
主要用于NFS和Samba的多个远程调用进程,如果系统没有基于rpc服务的支持,可以禁用这个进程。
sendmail
邮件传输代理,如果服务器需要支持邮件服务就不要禁用这个进程。
smartd
使用S.M.A.R.T兼容设备的进程,如果你不是使用IDE/SATA磁盘子系统,可以禁用这个进程。
xfs
X Window 的字体服务,如果你的运行级别是5请不要禁用这个进程。
 
Oracle 官方的文档上都是对系统内核参数最大共享内存的推荐设置为物理内存的一半,这个推荐值在系统内存较少的情况下会是一个均衡的值,但我们的系统拥有8GB的物理内存,如若也按照这个推荐设置,Oracle数据库运行时SGA最大只能设置4GB,如果设置更大可能会导致内存分段分配,而不是连续分配,甚至会导致系统报错。
我们建议设置系统内核参数最大共享内存为6GB,修改/etc/sysctl.conf文件kernel.shmmax = 6442450944。
在Linux系统安装之前,我们就已经考虑了文件系统和硬盘IO,所以主机系统中有两块146GB SAS硬盘组成RAID 1安装Linux系统,其他3块盘组成RAID 5存放临时备份数据。Oracle数据文件存放在外部的磁盘阵列上,有Oracle ASM驱动自行管理,不需要手工管理。
Oracle RAC 系统有两套网络系统,一套是对外提供服务的公共网络,这个网络接口是供中间件服务器访问的;另一套是RAC节点间互相高速通讯使用的,不需要其他服务器通讯的参与,我们建议使用与服务器千兆网卡相匹配的网络交换接口,并且采用专用交换机或VLAN的方式组成专用网络。
Quest Spotlight on Linux 等命令或脚本如“top”、“vmstat”、“netstat”和“sar”也提供了类似的性能信息。Java性能分析中存在许多的不确定因素。Linux内核参数、在运行时指定的JVM选项以及应用设计等所有一切都会带来相应的影响。正是由于该原因,所以在分析性能问题时应采取从上至下系统化的方法(从最外层的系统角度)并在首次分析时考虑所有的可能性,这一点非常重要。采取从上至下的方法,我们首先将系统作为一个整体来考虑(将一台或多台协作的计算机作为一个集合,它们互相之间具有网络影响,可能在某些点还存在数据库访问影响)。 在考虑了整个系统中所有的可变因素之后,我们将分析范围缩小到单个计算机,再进一步缩小到该计算机中的单个进程,从而找出问题的根本原因。之所以采用从上之下的分析方法,是因为导致性能问题的原因可能存在于程序、计算机、数据源和网络等构成整个系统的各个部分。有多种工具可以帮助我们逐一分析每台计算机,Quest Spotlight on Linux便是其中最强大的工具之一,系统中各台计算机之间以及计算机与其外部数据源之间的数据交换也必须进行检查。这项工作可以通过使用“netstat”等网络与数据库监视工具来完成。
推荐流程中的步骤包括:
*        评估整体的系统配置、吞吐量和负载情况;
*        测量性能;
*        分析来自性能测量工具的数据;
*        确定一个或多个可能的瓶颈;
*        每次仅更改或调节一个项目;
*        再次测量性能以检查该调节步骤所带来的变化。
Java 程序线程被Java虚拟机映射到操作系统线程,也称LINUX轻量进程(LWP)。LINUX中调度单元为单个的线程。每一个线程在Spotlight工具中都是可见的,例如拥有唯一的LWP编号(LWP ID)最初,每个线程优先级的初始值与操作系统中的所有用户进程相同。由于线程在CPU中执行,在正常条件下,其优先级会随着其获得更多的CPU时间而降低。这导致线程在离开CPU时优先级变低。因此操作系统在下一次根据优先级来调度线程时,该线程相对于其它线程可能会处于不利的地位。如果一个特定的Java进程是一台计算机上唯一最重要的用户进程,那么该进程可以通过超级用户干预,在开始或执行过程中被授予最高的调度优先级。nice和renice这两个命令在执行时都必须非常谨慎。它们只有在以超级用户身份登录到计算机时才能被执行。这些命令可以改变被调整(reniced)进程中所有线程的优先级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值