Sun Microsystems公司於前不久發布了它的新一代的旗幟性軟件產品線:適用於SPARC和Intel兩種計算機的新的Solaris 7 軟件環境。Solaris 7產品系列包括基本的
Solaris 7操作環境和3個模塊化軟件擴展版本(Solaris Easy Access Server,Solaris
Enterprise Server,Solaris ISP Server)--每個擴展版本都在基本的Solaris 7操作環境上運行。新的產品線主要具有以下特點:
1. 處理數據的能力大為增加,不僅數據量沒有什麼限制,計算的復雜性也有突破,為新一級的應用軟件敞開了大門。
2. 大型機的能力,而價格只有大型機的幾分之一。
3. 具有對PC機的完全互操作性,可使客戶連接和管理他們的Windows NT環境與Solaris環境一樣。
4. 具有PC機簡易管理的新風格,大大簡化了安裝與管理.不僅如此,該版本的Solaris還具有強大的軟件支持,其中包括了Sun Visual WorkShopC++ 5.0軟件和Sun Performance WorkShop Fortran 5.0軟件,並為C/C++和
Fortran的開發商開發企業級應用軟件提供了具有競爭性的優勢。Solaris 7具有全新中文版本,中文版本不僅具有多種中文輸入方式、靈活地支持中文的輸出,同時方便地接收中文郵件和進行字體轉換彌補了過去Solaris在這方面的不足。Solaris 7與 Windows 無縫連接,從而使用戶可以進行簡單明了的操作和管理。在Solaris 7中,Sun公司著重考慮了健壯和安全的問題,提供了一系列的現代化的安全機制,同時修補了安全漏洞和系統BUG,使得Solaris 7具有相當可靠的安全性健壯性,將用戶的風險降到了最低的限度。
綜上所述,Solaris 7是適用於企業網的操作系統。
一、相關站點
1.Solaris軟件免費下載站點:
http://www.sunfreeware.com/
2.solaris 咨詢站
http://www.ibiblio.org/pub/packages/solaris/sparc/
3.solaris中文手冊:
http://docs.sun.com/ab2?Ab2Lang=zh&Ab2Enc=gb2312
4.UNIX depot
http://www.cise.ufl.edu/depot/5.solaris中心
http://www.solariscentral.org/
二、重新配置系統核心
舉例: Oracle 8 for solaris 2.6 安裝的安裝需要增加Shared Memory Segments;
修改/etc/system文件,在文件後加上
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=15
set semsys:seminfo_semmns=200
set semsys:seminfo_semmni=70
set ulimit=3000000
比如innd用的文件數目比較多,需要設置:
set rlim_fd_max=4096
set rlim_fd_cur=1024
如何看系統默認值;
先看系統默認值,超級用戶可以用-k參數來看核心的各個參數,如果指定-w參數,則可以
adb - general-purpose debugger
可以看現在的值是什麼?
/usr/bin/adb –kw
physmem 1f8d9
maxusers/D
maxusers:
maxusers: 504
maxusers/W 200
maxusers: 0x1f8 = 0x200
(1)IO相關的設置
最經常需要改變的是文件描述符數因為SOCKET API處理INTERNET連接使用文件描述符,
set rlim_fd_max = 8192
set rlim_fd_cur = 4096
Please, before you start, make a backup copy of your initial /etc/system.
The backup should be located on your root filesystem. Thus, if some parameters fail, you can always supply the alternative, original system file on the boot prompt. The following shows two typically entered parameters:
* these are the defaults of Solaris < 8
set rlim_fd_max=1024
set rlim_fd_cur=64
rlim_fd_cur
這個參數定義了一個進程可以打開文件描述符的“軟”限制,該數目由當前運行的SHELL決定;ulimit –Sn,還可以通過setrlimit()函數來修改這個參數;不需要超級用戶權
限;
The predicate rlim_fd_cur <= rlim_fd_max must be fulfilled.
rlim_fd_max
default 1024, recommended >=4096
這個參數決定了一個進程可以打開文件描述符的“硬”限制;如果想改變該限制,必須有超級用戶的權限;
對於大多數SERVER,不管使用TCP還是UDP進行通訊,最大描述符數是每個用戶進程的最重要的參數;文件描述符決定了同時可以連接的數目;
ulimit -Hn
You should consider a value of at least 2 * tcp_conn_req_max and you
should provide at least 2 * rlim_fd_cur. The predicate rlim_fd_cur <=
rlim_fd_max must be fulfilled.
(2)進程相關的設置
maxusers
default 249 ~= Megs RAM (Ultra-2/2 CPUs/256 MB), min 8, max 2048, no recommendations
最大用戶定義系統可以支持的最大用戶數,當核心生成的過程中,有一些表的大小就是由這個參數決定的。這個值的大小在當前SOALRIS版本中決定於內存的兆數目;有一些參數是由MAXUSER來決定的,
_ The maximum number of processes on the system
_ The number of quota structures held in the system
_ The size of the directory name lookup cache(DNLC)
默認值是系統內存兆數,小於2048;
如果大於1024,必須在/etc/system中指定,如果大於4096,它的值為4096;
當系統出現用戶進程生成(FORK)緩慢時,系統報信息;
out of processes
默認值比較大有以下情況:
數據庫系統使用較大內存,但相對少的進程,減少MAXUSERS的值,可以節省系統內存;
PIDMAX
這個參數指定系統最大可能進程ID; 默認值為30000,范圍為266到999999;只在啟動
時候進行設置;
max_nprocs
系統最大進程數,包含系統進程和用戶進程;默認值為為10+(16*MAXUSERS)
該值范圍為266到MAXPID;
基於Intel i386體系結構的Linux操作系統中,已經提供了這樣的多進程運行的支持。
通過合理的選擇進程調度算法,可以獲得比較好的平均相應時間和較高的系統性能。但是,美中不足的是,在目前的2.2.x版本的Linux內核中,存在對最大進程數的限制。也就是說,在目前的Linux系統中,最多只能有4090個用戶進程同時存在。對於一般的桌面應用,這個數目是綽綽有余。但是,對於企業級的服務器應用來說,則是不夠的。
設想一個典型的Web服務器軟件,它們一般都采用多進程/線程的結構。每當接到一個連接請求,就產生一個子進程/線程來處理。顯然,對於一個重負載的服務器來說,同時有成千上萬個連接是很常見的。而這時,采用kernel 2.2.x的系統就不能勝任了。因此可以說正是因為存在這個最大進程數的限制,使得Linux不能勝任企業級服務器操作系統的工作。事實上,目前這個級別的操作系統一般都是較為成熟,並且沒有上述限制的Solaris、AIX、HP-UX等系統。
maxuprc
一個用戶可以生成的最大用戶進程數;
默認值為MAX_NPROCS-RESERVED_PROCS
STREAM
nstrpush
默認值為9,這個參數定義了允許有多少個STREAM 模塊加載在系統核心中,我猜想這個參數是指相對於一個用戶或一個進程,通常不用修改該參數;
strmsgsz
默認值為 65536, 單個系統調用可以傳給一個STREAM設備信息的數據部分的最大字節數;任何write(2)超過這個大小限制會被分為多個信息范圍為:0到262144 bytes
當出現putmsg(2)系統調用返回ERANGE時,需要修改該參數;
strctlsz
默認值為 65536, 單個系統調用可以傳給一個STREAM設備信息的控制部分的最大字節數;范圍:0-MAXINT BYTES;
General Kernel Variables
noexec_user_stack
Warning: This option might crash some of your application software, and
endanger your system's stability!
By default, the Solaris 32 bit application stack memory areas are set with permissions to read, write and execute, as specified in the SPARC and Intel ABI. Though many hacks prefer to modify the program counter
saved during a subroutine call, a program snippet in the stack area can be used to gain root access to a system.
If the variable is set to a non-zero value, the stack defaults to read and write, but not executable permissions. Most programs, but not all, will function correctly, if the default stack permissions exclude
executable rights. Attempts to execute code on the stack will kill the process with a SIGSEGV signal and log a message in kern:notice. Program
which rely on an executable stack must use the mprotect(2) function to explicitly mark executable memory areas.
Refer to the System Administration Guide for more information on this topic. Admins which don't want the report about executable stack can set the noexec_user_stack_log variable explicitly to 0.
Also note that the 64 bit V9 ABI defaults to stacks without execute
permissions.
TC