UNIX中的netstat可用来判断网络缓存区急用的情况,例如netstat中关于queue的overflow信息。这些信息可表明TCP,UDP队列的相关状态。
AIX提供了no命令来设置网络的相关内核配置。
在启动某个进程时,VMM需要为该进程分配虚拟内存空间,以存放进程的数据和结构。这时,VMM维护了一个未分配虚拟内存页帧的空闲列表,该列表用来处理系统中的进程缺页问题。
AIX中,VMM的参数设置可以通过vmo命令得到
# vmo -a
VMM会将内存段划分为两类:计算段(工作段)和文件段(持久段)。文件段使用文件内存,而计算段则使用计算性内存。对对数据库来说,数据库启动时会申请共享内存,这部分内存结构就是计算内存。
对于文件访问而言,由于文件在磁盘中拥在对应的存储位置,因此它会被保存在文件段内存中,直到这些页面转换或进程消失。即便发生了交换操作,我们还是希望将文件段分布到磁盘中,而不是计算段内存结构中。
大的数据缓存所使用的页帧链表将会非常庞大。为了使用AIX能够更有效地为应用系统分配数据缓存,并且完成有效的高度,可以设置大的内存页面结构来提高性能。
默认AIX不分配任何内存到大页面物理内存上,但可以手工指定,可以支持4KB、64KB、16MB、16GB。
vmo -r -o lgpg_size=16777216 -o lgpg_regions=256
分配了16MB的大内存页面池,指定了256个。、
如果要为共享内存使用大页面,还要将AIX的v_pinshm参数设置为1(默认为0),让VMM可以固安内存池中的页,以避发生页面交换。
# vmo -r -o maxpin%=50
# vmo -r -o v_pinshm=1
设置完以后,应用系统、数据库就可以使用大内存池。如果是在Oracle系统中,可设定LOCK_SGA参数来使Oracle的共享内存“锁”在内存中,同时,在分配共享内存时请求较大的页面。
minperm和maxperm需要设定,这两个参数是VMM内存替换策略中的阈值。当文件页面占用实际内存的百分比低于minperm时,页面替换算法将同时替换文件和计算页面,而忽略重新分布的计算情况。当文件页面占用实际内存的百比高于maxperm时,页面替换算法仅替换文件页面。
因此,这两个参数可以用来确定AIX系统倾向于使用计算性内存还是文件内存。
设定空闲列表数
AIX中的minfree和maxfree两个参数,当AIX VMM空闲列表中的页面数量下降到minfree指定的值以下时,VMM将开始运行lru守护进程,转换最近尚未使用的页面。在空闲表增大到maxfree指定的数据目后,页面转换操作停止。默认为960和1088(4KB页面)。
对于一个64位CPU的服务器来说,可以设置为8000(32)、8512(23MB)。
# vmo -p -o maxfree=8512
# vmo -p -o minfree=8000
# mount -o cio /db
/etc/filesystems
options = cio,rw
在访问裸设备方式的数据库时,AIX会默认使用异步I/O的方式访问裸设备,这时的AIO进程是一个核心进程,不需要进行CPU的上下文切换。而当Oracle访问文件系统的数据文件时,需要调用AIO Server进程,进行CPU的上下切换。采用CIO方式或裸设备方式,还是有微小差别的。
alter system set filesystemio_options=setall scope=spfile;
[aix202:root:/]vmstat 2 30
System configuration: lcpu=4 mem=3648MB
kthr memory page faults cpu
—– ———– ———————— ———— ———–
r b avm fre re pi po fr sr cy in sy cs us sy id wa
2 0 274445 593091 0 0 0 0 0 0 7 403425 8126 35 16 49 0
2 0 274445 593090 0 0 0 0 0 0 8 404238 8182 35 16 48 0
1 0 274445 593089 0 0 0 0 0 0 8 406472 8182 35 16 48 0
1 0 274445 593088 0 0 0 0 0 0 8 406185 8182 35 16 48 0
1 0 274445 593087 0 0 0 0 0 0 8 406494 8193 35 16 48 0
1 0 274576 592951 0 0 0 0 0 0 46 406253 8184 35 17 47 1
2 0 274576 592950 0 0 0 0 0 0 9 406070 8180 35 16 48 0
2 0 274575 592950 0 0 0 0 0 0 10 407277 8178 35 16 48 0
2 0 274575 592949 0 0 0 0 0 0 9 404805 8172 35 16 49 0
2 0 274575 592948 0 0 0 0 0 0 11 406614 8134 35 16 48 0
2 0 274575 592948 0 0 0 0 0 0 5 405990 8127 35 16 49 0
2 0 274575 592948 0 0 0 0 0 0 6 406388 8134 35 16 48 0
2 0 274574 592949 0 0 0 0 0 0 6 408020 8165 35 16 49 0
1 0 274574 592949 0 0 0 0 0 0 8 406316 8142 35 16 48 0
2 0 274574 592949 0 0 0 0 0 0 5 406821 8127 35 16 49 0
1 0 274574 592949 0 0 0 0 0 0 4 404438 8119 35 16 49 0
re列:页面高度程序输入输出列表
fr列:释放的页面(替换页面)
sr列:被页面替换算法扫描的页面
cy列:被页面替换算法使用的时钟周期
Faults,用于统计每秒钟发生的陷阱和中断率的平均值。
in列:设备中断统计。
sy列:系统调用统计。
cs列:内核线程的上下文切换统计。
[aix202:root:/]iostat 5 5
System configuration: lcpu=4 drives=16 paths=1 vdisks=0
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 11.8 36.1 15.1 48.8 0.0
Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk0 0.0 0.0 0.0 0 0
dac1 0.0 0.0 0.0 0 0
dac1utm 0.0 0.0 0.0 0 0
dac0 0.0 0.0 0.0 0 0
dac0utm 0.0 0.0 0.0 0 0
hdisk1 0.0 0.0 0.0 0 0
hdisk2 0.0 0.0 0.0 0 0
hdisk3 0.0 0.0 0.0 0 0
hdisk4 0.0 0.0 0.0 0 0
hdisk5 0.0 0.0 0.0 0 0
hdisk6 0.0 0.0 0.0 0 0
hdisk7 0.0 0.0 0.0 0 0
hdisk8 0.0 0.0 0.0 0 0
hdisk9 0.0 0.0 0.0 0 0
hdisk10 0.0 0.0 0.0 0 0
loop0 0.0 0.0 0.0 0 0
tty部分统计了每秒接收自系统上所终端的字条总数,以及每秒输出到系统上所有夏玉米的字符总数。
tin,系统从所有tty讲到的字符总数
tout,写入所有tty的字符总数
CPU统计了所有处理器的全局平均统计值,会被内核定期更新
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 599.8 39.5 19.5 20.4 20.6
Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk0 0.0 0.0 0.0 0 0
dac1 0.0 12451.7 3112.9 2812 22496
dac1utm 0.0 0.0 0.0 0 0
dac0 0.0 0.0 0.0 0 0
dac0utm 0.0 0.0 0.0 0 0
hdisk1 0.0 0.0 0.0 0 0
hdisk2 0.0 0.0 0.0 0 0
hdisk3 0.0 0.0 0.0 0 0
hdisk4 0.0 0.0 0.0 0 0
hdisk5 0.0 0.0 0.0 0 0
hdisk6 0.0 0.0 0.0 0 0
hdisk7 0.0 0.0 0.0 0 0
hdisk8 0.0 0.0 0.0 0 0
hdisk9 97.5 12451.7 3112.9 2812 22496
hdisk10 0.0 0.0 0.0 0 0
loop0 0.0 0.0 0.0 0 0
% iowait,物理磁盘处于活动状态的百分比。
Kbps,磁盘读写的数据量,以Kb/s表示。
Kb_read,被读取的KB数。