孙猴子的水帘洞

http://blogs.163jsp.com/monkeysun/date/20080121 星期一 2008年01月21日

Solaris桌面环境的禁用

  如果将Solaris作为服务器使用,启用桌面没有意义,还占用资源,可以使用dtconfig命令来禁用。

/usr/dt/bin/dtconfig -d

 

dtconfig用法:
 
 CDE 配置公用程序
 
  ./dtconfig -d     (禁用自动启动)
  ./dtconfig -e     (允许自动启动)
  ./dtconfig -kill  (终止 dtlogin)
  ./dtconfig -reset (复位 dtlogin)
  ./dtconfig -p     (打印机动作更新)
 ./dtconfig -inetd    (inetd.conf /usr/dt 守护程序)
 ./dtconfig -inetd.ow (inetd.conf /usr/openwin 守护程序) 

http://blogs.163jsp.com/monkeysun/date/20080108 星期二 2008年01月08日

非常感谢FreeBSD

  第一次亲自安装的UNIX就是FreeBSD,那时候Solaris还没有开源。FreeBSD确实开源的,随时都可以下载安装,重要的是还有中文手册,使用我们平常的PC机就可以了,不像其它的UNIX高高在上,PC上根本没法装。能够在自己的机器上联系unix命令那是非常高兴的事,能够快速熟悉unix系统。FreeBSD的性能还是相当不错的,主要用来做web服务器或者邮件服务器,跑PHP没问题,当然还有MySQL数据库。后来只是由于其受java许可的限制,java的支持一直比较慢,即使现在java开源了,相应的jdk版本更新也不是很快。本人是专注java的,没办法,后来听说Solaris开源了,就转到Solaris了。不过无论如何都感谢FreeBSD,她是我unix的初恋。

 

Solaris10上交换空间(swap)的管理

添加裸分区到swap空间

添加一个裸交换分区,你需要在系统上执行如下的步骤:

1. 确定一个空的磁盘分区.

2. 在/etc/vfstab中添加一条记录,把裸分区作为一个交换分区:

/dev/dsk/c0t1d0s0   -   -   swap   -   no   -

3. 执行下面的命令,启用这个交换分区:

#swap -a /dev/desk/c0t1d0s0

4. 使用下面的命令查看交换分区的情况:

#swap -l

添加文件系统到swap
  Solaris支持使用文件来增加交换空间。把一个文件添加到交换空间你需要执行如下步骤:

1. 使用mkfile创建一个文件:

#mkfile 250m /opt/myswapfile

这里创建了一个250M的文件。

2. 为了使用这个交换文件,执行如下命令:

#swap -a /opt/myswapfile

3. 检查变化:

#swap -l

提示: 为了在下次系统启动后也使用这个交换文件,你需要在/etc/vfstab添加如下记录:

/opt/swapfile   -   -   swap   -   no   -

禁用交换空间
  Solaris OS提供了在系统运行时禁用一个交换文件的能力。使用swap命令的-d选项。所有已经分配的块被拷贝到其它交换区域。

solaris# swap -d /opt/myswapfile

检查变化:

solaris# swap -l

监视交换空间
  为交换空间配置合适的大小是很重要的: 太小会影响性能,太大会浪费磁盘空间。
  如果物理内存不够用,Solaris会使用swap空间。这叫做分页。

  这里是一个交换空间的概要:

solaris#swap -s
total: 3500744k bytes allocated + 3048720k reserved = 6549464k used,
23869824k available

  这里是交换空间包含的设备或者文件:

solaris#swap -l
swapfile             dev      swaplo     blocks        free
/dev/md/dsk/d1       85,1         16     41945456      41945456

  如果你的交换空间不够用,你会看到如下的错误信息:

Not Enough Space

or

WARNING /tmp: File system full, swap space limit exceeded

  查看运行的系统是否物理内存不足,可以使用vmstat 和 iostat。

solaris#vmstat
kthr      memory            page            disk          faults      cpu
 r b w   swap  free    re  mf pi po fr de sr m0 m1 m3 m4   in   sy   cs us sy id
 0 0 0 24137360 6421168 70 179 21 14 14 0 0 0  0  0  0  472 3363 1776  4  2 94
 0 0 0 23869912 5953040 11 13  0 0 0  0  0  0  0  0  0  430 1071 1545  7  1 92
 0 0 0 23870896 5953904 58 313 0 2 2  0  0  0  0  0  0  578 2369 1798 20  1 78
 0 0 0 23874712 5957216 11 11  0 0 0  0  0  0  0  0  0  417 1325 1648  0  0 100
 0 0 0 23874744 5957248 22 64  0 3 3  0  0  0  0  0  0  423 1578 1629  1  2 97

  在vmstat输出中查看列sr (Scan Rate)。

solaris#iostat -Pxn
                    extended device statistics
    r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
    0.1    2.7    1.1    5.6  0.0  0.1    0.2   25.5   0   2 c1t0d0s0
    0.0    0.0    0.0    0.0  0.0  0.0    0.0    9.7   0   0 c1t0d0s1
    0.0    0.0    0.0    0.0  0.0  0.0    0.0    1.2   0   0 c1t0d0s2

  在iostat的输出中看r/s 和 w/s c列,如果这些值高,意味着为了释放空间产生了大量的I/O操作。

  如果物理内存太小,系统会频繁地使用交换设备而产生大量的I/O操作。在这个状态下,CPU的使用率也会增加。所以应该增加物理内存了。

在Solaris10上按部就班地创建一个区域

  这是一个使用Solaris容器技术创建区域的一个简单指南,例子使用了SVM(Solaris卷管理器)和一个Oracle数据库。可以很简单地修改这些步骤添加更多的文件系统到脚本中。

  提示: 在这个例子中, 我仅创建了一个区域(zone), 名字为zone1. 我在步骤2和3中使用了SVM,并测试了Oracle 10.1 和 10.2。

1. 格式化硬盘的片0(slice 0).

2. 创建虚拟设备(meta devices). 例如, 我有三个SAN磁盘, 我想使用三个磁盘串联创建一个虚拟设备。 

# metainit d60 3 1 c2t50060E800456EE02d0s0 1 c2t50060E800456EE02d1s0 
1 c2t50060E800456EE02d2s0
d60: Concat/Stripe is setup

3. 创建软分区:

# metainit d61 -p d60 6g
d61: Soft Partition is setup
# metainit d62 -p d60 10g
d62: Soft Partition is setup
# metainit d63 -p d60 30g
d63: Soft Partition is setup
#

4. 创建文件系统:

# newfs /dev/md/rdsk/d61
newfs: construct a new file system /dev/md/rdsk/d61: (y/n)? y
# newfs /dev/md/rdsk/d62
newfs: construct a new file system /dev/md/rdsk/d62: (y/n)? y
# newfs /dev/md/rdsk/d63
newfs: construct a new file system /dev/md/rdsk/d63: (y/n)? y
#

5. 为根文件系统(/ fs)和Oracle数据库的 /u00 /u01创建挂载点。

 
mkdir -p /export/zone1
mkdir /u00
mkdir /u01
mount /export/zone1

6. 执行下面的脚本, 它的详细内容在步骤11后面。

zonecfg -z zone1 -f /usr/scripts/make.zone1.ksh

# zoneadm list -cv
ID NAME STATUS PATH
0 global running /
- zone1 configured /export/zone1
# chmod 700 /export/zone1

7. 安装zone1:

# zoneadm -z zone1 install
Preparing to install zone <zone1>.
Checking <ufs> file system on device </dev/md/rdsk/d62>
to be mounted at </export/zone1/root>
Checking <ufs> file system on device </dev/md/rdsk/d63>
to be mounted at </export/zone1/root>
Creating list of files to copy from the global zone.
Copying <124550> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1021> packages on the zone.
Initializing package <49> of <1021>: percent complete: 4%

8. 运行下面的命令查看区域状态:

# zoneadm list -cv
ID NAME STATUS PATH
0 global running /
- zone1 installed /export/zone1

9. 运行下面的命令把区域的状态改为ready:

# zoneadm -z zone1 ready

10. 使用下面的命令查看区域状态:

# zoneadm list -cv
ID NAME STATUS PATH
0 global running /
1 zone1 ready /export/zone1

11. 启动区域:

# zoneadm -z zone1 boot

/usr/scripts/make.zone1.ksh脚本的详细内容:

create -b
set zonepath=/export/zone1
set autoboot=true
add fs
set dir=/u00
set special=/dev/md/dsk/d62
set raw=/dev/md/rdsk/d62
set type=ufs
end
add fs
set dir=/u01
set special=/dev/md/dsk/d63
set raw=/dev/md/rdsk/d63
set type=ufs
end
add net
set address=10.11.33.144
set physical=ce2
end

Tomcat下配置虚拟主机

  Tomcat下配置虚拟主机非常简单,只需增加Host元素就可以了,让我们来看看server.xml中默认的localhost主机的定义部分:

      <Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">

      </Host>

  这部分就是定义了一个名称为“localhost”的主机,程序根目录是%Tomcat%\webapps,这里的webapps是相对于Tomcat的安装目录的,是相对路径。明白了这些在定义一个主机就是很简单的事了,例如定义一个localhosta的主机:

      <Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">

      </Host>

      <Host name="localhosta" appBase="D:/hosts/localhosta"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">

      </Host>

   此处的D:/hosts/localhosta目录的作用和%Tomcat%\webapps目录是相同的,你可以在里面创建默认的ROOT目录,并在其下放置程序就可以了,当然你也可以布置其它的应用。

  为了测试这个localhosta主机,你需要修改%Windows%(Windows安装目录)\system32\drivers\etc\hosts文件,用记事本打开就可以。添加一个localhosta的主机名:

127.0.0.1       localhost
127.0.0.1       localhosta

  红色文字为新添加的内容,现在打开浏览器,在地址栏输入 http://localhosta:8080 就可以访问你的新虚拟主机localhosta 。怎么样,简单吧。


Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.