问题(一) aix64位编程,一些问题请教
编译器 vac 6.0
编译参数:cc -G -D__AIX__ -q64 -qcpluscmt -qwarn64 -g -O3 -qarch=pwr5 -qtune=pwr5 -qstrict
1.
fprintf(logfile," xxx:%s/n",ttyname(0));
这样会Segmentation fault(coredump)
我已经确定ttyname(0)返回char *指针,dbx调试发现应该是fprintf时调用strlen时出的问题
如果改成这样:
memset(buffer,0,sizeof(buffer));
strcpy(buffer,ttyname(0));
fprintf(logfile," xxx:%s/n",buffer);
就不会报coredump了,这种问题能有别的方法修改么?
解答:这个问题我也遇到过,我的是用sprintf(conn_desp->ip_addr,"%s",inet_ntoa (cli_addr.sin_addr));可以,但是用strcpy(conn_desp->ip_addr,(char *)inet_ntoa(cli_addr.sin_addr));就coredump
2.char *的函数参数传入后会改变,原来32位时没这个问题,改成const char *后好了
问题(二) 为什么我的串口线可以安装AIX,但不能登陆AIX
我的串口线序是9孔对9孔:2、3交叉;7、8交叉;1、6都接对端4; 5直连。
难道还跟线有关???我最后设置IP后用 网络TELNET把串口打开,结果还是补不能登陆。
这种连接方法是否可以 ?
万能:
1-7、8
2-3
3-2
4-6
5-5
6-4
7、8-1
解答:线序:23交叉 78交叉 16接4 5直连 9不接
smitty console定向到tty0
smitty tty设置tty0属性
Enable LOGIN enable
STTY attributes for RUN time 加入clocal
STTY attributes for LOGIN 加入clocal
9孔对9孔:2、3交叉;7、8交叉;1、6都接对端4; 5直连
这样的线肯定能用
问题(三) 如何对系统做镜像以提高系统高可用性和性能
环境 RS6000
解答 通常情况下, 对系统做镜像会提高系统的高可用性, 即当其中一块盘损坏或数据区不可用时,系统会自动使用其镜像盘或镜像数据区进行正常的业务操作. 在以RS/6000系统为基础的数据库应用中做镜像有三种方式, 第一种方式是通过做RAID10直接对硬盘做镜像, 需要增加相应的适配卡支持. 可以对裸设备或文件系统做镜像. 第二种方式是通过AIX操作系统做RAID1, 只能对文件系统做镜像. 第三种方式是通过数据库系统做镜像,可以对裸设备或文件系统做镜像. 对于这三种方式一般建议大家采取前两种方式会取得比较好的系统性能和高可用性.本文主要讨论使用RAID1做镜像时系统拥有的盘数对性能的影响.
做RAID1镜像时,可以对卷组中指定的逻辑卷单独做镜像, 也可以对整个卷组做镜像. 对卷组中指定的逻辑卷做镜像时, 最好要求该卷组有三块或三块以上的硬盘以保证数据高可用性. 若对整个卷组做镜像则没有对卷组内硬盘个数的限制.此外要求镜像最好位于不同的硬盘, 当其中某块硬盘损坏时其镜像盘仍可工作, 以提高系统的高可用性.
下面介绍为什么对卷组中指定的逻辑卷做镜像时, 最好要求该卷组有三块或三块以上的硬盘。
在RS/6000系统中, 每个在VG(卷组)中的物理硬盘都至少有一个VGDA(卷组描述区, 既对该硬盘上的物理和逻辑卷进行描述). VGDA在硬盘的数量有如下规则:
一个卷组只有一块硬盘: 该硬盘有两个VGDA.
一个卷组有两块硬盘: 第一块硬盘有两个VGDA, 第二块硬盘有一个VGDA.
一个卷组有三块或三块以上硬盘: 每块硬盘有一个VGDA.
在AIX系统中, quorum(一个卷组中的可用VGDA的比率)必须高于51%, 该卷组才可用. 对于只有两块硬盘的卷组, 若第一块硬盘损坏, 则只有33%的VGDA可用, 若第二块硬盘损坏, 则有66%的VGDA可用. 对于有三块或三块以上硬盘的卷组, 若损坏一块硬盘, 至少有66%的VGDA可用.
对卷组中指定的逻辑卷做镜像时, 若该卷组中只有两块硬盘, 当第一块硬盘损坏时, 其VGDA只有33%可用, 会导致该卷组不可用,这样就使得镜像失去保证硬盘高可用性的功能.
若该卷组只有两块硬盘又一定要做镜像时, 可以关掉quorum, 即使第一块硬盘损坏也不会使整个卷组不可用,此时系统使用第二块硬盘,但是第二块硬盘的数据将不能镜像. 由此有可能带来数据丢失的风险,第二块硬盘损坏时会导致该卷组不可
用从而引起数据丢失.
因此, 对卷组中指定的逻辑卷做镜像时, 最好要求该卷组有三块或三块以上的硬盘以保证数据高可用性.
问题(四) Debug mode 引导AIX
环境 RS/6000 AIX V5.1
解答 1. 系统要求配置有tty console
2. #bosbot -aI /dev/ipldevice
3. #shutdown -Fr
问题(五) 在AIX中如何为一块网卡,配多个IP地址?
环境 产品, Pseries, RS6000,
软件版本, AIX4.3.3
解答 可以。 使用命令ifconfig 即可.其语法为:
ifconfig network_interface second_ip_address netmask your_netmask alias
在ODM中未记录此定义,所以关机后该定义会丢失,若需要的话,可将该命令加在启动文件(/etc/rc.net)中.
如第二个IP地址是 9.185.43.135 可用
# ifconfig en0 9.185.43.135 netmask 255.255.255.0 alias
当该IP地址不再需要时,可从系统中删除.
#ifconfig en0 9.185.43.135 netmask 255.255.255.0 delete
或从/etc/rc.net文件中删除。
问题(六) AIX内核参数调整之vmtune -p -P(2)?
环境 AIX 4
解答 -p minperm
如果在物理内存中的文件页面数量(file pages)低于此值,页面替换算法将替换文件页和程序页(computational pages),minperm的缺省值约为20%的物理内存。
-P maxperm
如果在物理内存中的文件页面数量(file pages)高于于此值,页面替换算法将只替换文件页,maxperm的缺省值约为80%的物理内存。
如果在物理内存中的文件页面数量在这两个值之间,页面替换算法通常只替换文件页,但是当文件页面的再替换率(repaging rate)高于程序页面时页面替换算法将同时替换文件页和程序页。
问题(七) AIX内核参数调整之vmtune -f -F(3)?
环境 AIX 4
解答 -f minfree
指出内存在free list中内存页的最低值,此值的范围从8到204800。
-F maxfree
当系统中的空闲内存小于minfree时,系统进行换页操作增加空闲内存页,当空闲内存页的数量大于等于maxfree时,系统换页操作停止。
maxfree的缺省值为minfree+8。maxfree-minfree的差值应大于等于maxpgahead。
注:一个页面的大小为4K。
问题(八) RS6000/Pseries 服务器上可安装Linux 吗? 应用程序该如何移植?
环境 产品, Pseries, RS6000
软件版本, AIX, linux
解答 1. RS6000/Pseries 的低端服务器(B80,270,170,150)可以安装Linux 操作系统. 所使用的系统版本应为 XX Linux on Pseries (由不同的 Linux公司提供) . 其上编译的Linux 应用程序使用的是 Linux 核心.
2. Pseries中的中高端服务器目前不可安装Linux, 但可以安装 AIX Toolbox for Linux Applications for Power System, 该工具箱提供了Linux API 接口, 在其上编译的Linux 应用程序使用的是AIX核心.
3. 在 XX Linux on Pseries环境下编译的程序,移植到AIX Toolbox for Linux Applications 中需重新编译,反之亦然.
问题(九) AIX内核参数调整之vmtune -r -R(4)?
环境 AIX 4
解答 -r minpgahead
指出何时启动提前读的功能,此值应为2的倍数,缺省值为2。
-R maxpgahead
指出最大的提前读的页数,此值应为2的倍数,缺省值为8,此值应大于minpgabead,最大值为512。maxfree-minfree的差值应大于等于maxpgahead。
问题(十) 如何确定一文件系统是Large File Enabled的文件系统?
环境 平台, Pseries, RS6000,
软件版本, AIX 4.3.3
解答 可使用 lsfs -q filesystem_name 命令来查看.
例如:
#lsfs -q /home
Name Nodename Mount Pt VFS Size Options Auto Accounting
/dev/hd1 -- /home jfs 131072 -- yes no
(lv size: 131072, fs size: 131072, frag size: 512, nbpi: 4096, compress: no, bf: false, ag:
bf:false 表示是standard filesystem
bf:true 表示是Large File Enabled file system.