星期四, 4月 28, 2011

PowerPoint出現"無法顯示…檔案中…某些文字…

PowerPoint出現"無法顯示…檔案中…某些文字…"

  上週有同仁反應無法開啟ppt檔,經測試,該電腦開啟ppt檔時會出現「PowerPoint無法顯示 "XXX.ppt" 檔案中投影片上的某些文字圖像或物件,因為這些項目發生毀損,簡報中受到影響的投影覑已經以空白投影片取代。遺失的資訊已經沒辦法修復。若要確保檔案可以 使用舊版的PowerPoint開啟,請用[另存指令]([檔案]功能表),以同樣名稱或新的檔案名稱儲存檔案。」的錯誤訊息,好長一串…。




後來在自己的電腦測試,也發生一樣的狀況,再開啟幾年前做的ppt檔,有的ok,有的也會出現錯誤訊息,這狀況倒是特別。上網搜尋了一下,果然也有其他人發難,而問題的原因,竟是微軟釋出的KB2464588更新所導致,詳細的狀況可參考微軟TechNet的討論串

解決的方式有兩種,一是到新增移除程式移除KB2464588(記得把"顯示更新"打勾):


另一方法為使用微軟後來釋出的hotfix來修正。

參考資料:
http://blog.752club.com/powerpoint-kb2464588/

linux 更改 hostname

Linux (Redhat / Fedora / CentOS) 更改 hostname 的方式

發現更改主機的 hostname 的方式都改不太完整. 以下是試出來比較完整的方式:

Step 00:

  • 假設原本 hostname 為 tryboxap2, 現在想要更改為 tryboxap03
  • 使用 root 才可以更改 hostname
su - root

Step 01:

  • 將 /etc/hosts 內出現的 tryboxap2 都改成 tryboxap03
:
127.0.0.1 tryboxap03 localhost.localdomain localhost

Step 02:

  • 將 /etc/sysconfig/network 內的 HOSTNAME 改成 tryboxap03
NETWORKING=yes
HOSTNAME=tryboxap03
GATEWAY=61.67.71.126

Step 03:

  • 再使用 hostname 命令指定一次
hostname tryboxap03
  • 這時就已經設定完成. 可以使用 hostname 命令去確認一次
[root@tryboxap2 etc]# hostname
tryboxap03
[root@tryboxap2 etc]#
只要重新登入, 命令提示字串就會改成 [root@tryboxap03 etc]#


參考:
http://www.ichiayi.com/wiki/tech/linux_hostname

星期四, 4月 07, 2011

Media Manager volume pool aptilo has no more unassigned media in robotic device TLD(0)

問題:


建立了兩個policy,test1和test2。指定的volumn pool都为aptilo。
在aptilo的volumn pool裡有兩卷空白的磁帶A和磁帶B,手動執行test1成功,mount的是磁帶A,然後手動執行test2,它會去mount磁帶B,而磁帶A才寫了一點點資料,為什麼test2不去mount磁帶A,而去mount磁帶B。如果把磁帶B從aptilo裡刪除只剩磁帶A,再次執行test2,就出現下列錯誤,若只執行test1則OK。

2006-7-18 0:54:15 - started process bpbrm (1480)
2006-7-18 0:54:15 - connecting
2006-7-18 0:54:16 - connected; connect time: 00:00:01
2006-7-18 0:54:17 - started process bptm (2656)
2006-7-18 0:54:17 - Error bptm(pid=2656) Media Manager volume pool aptilo has no more unassigned media in robotic device TLD(0)
2006-7-18 0:54:20 - end writing
unable to allocate new media for backup, storage unit has none available(96)
2006-7-18 0:54:20 - Error bpsched(pid=676) suspending further backup attempts for client CLIENTSERVER, policy test2, schedule Full because it has exceeded the configured number of tries
2006-7-18 0:54:20 - Error bpsched(pid=676) backup of client CLIENTSERVER exited with status 96 (unable to allocate new media for backup, storage unit has none available)


答:
NBU會把資料寫在具有相同保存期限的磁帶裡,所以保存週期要設成一樣,或者在properties裡設置允許同一卷磁帶上有不同的保存週期。改更 Netbackup Management --> Host Properties -->Master Server


保存周期要设成一样,或者在properties里设置允许同一盘磁带上有不同的保存周期。
NetBackup Managemnt--->Host Properties--->Master Server 




我把所有用daily vloumn pool里的policy都改成相同的retention试了一下,好像是可以了。
不过现在好像又有这样一个问题,我的磁带机不是有两个drive吗,也就是可以支持同时有两个policy在运行,test1和test2是设置成同时运行的,但结果是test1在运行时候,test2却在等待,而这个daily volumn pool里至少还有两盘磁带可以写。不知何故。



可能是Master的每client的job数没改,现在查看其设置是1。
存储单元的最大同时写驱动器数也没改过,但其默认已经是2了。
应该是跟第一个设置有关了。



參考資料


http://bbs.chinaunix.net/archiver/tid-977575.html

星期四, 3月 24, 2011

Linux 效能分析

iostat 
[root@hqu-mysql ~]# iostat -x 
Linux 2.6.9-89.0.15.ELsmp (hqu-mysql)   2009年11月25日 

avg-cpu:  %user   %nice    %sys %iowait   %idle 
                   7.95       0.00       5.96       1.24      84.85 

Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz await  svctm  %util 
ida/c0d0     0.03   7.54  6.29  7.11   94.87  117.22    47.44    58.61    15.84     1.09       81.67   4.51   6.04 
ida/c0d0p1   0.03   7.54  6.29  7.11   94.87  117.22    47.44    58.61    15.84     1.09       81.68   4.51   6.04 
ida/c0d0p2   0.00   0.00  0.00  0.00    0.00    0.00     0.00     0.00        45.66     0.00       12.72  10.03   0.00 
数据库应该是有硬盘io延迟问题的。 

结果详解: 
% user      显示了在用户级(应用程序)执行时产生的 CPU 使用率百分比。 
% sys       显示了在系统级(内核)执行时产生的 CPU 使用率百分比。 
% idle       显示了在 CPU 空闲并且系统没有未完成的磁盘 I/O 请求时的时间百分比。 
% iowait   显示了 CPU 空闲期间系统有未完成的磁盘 I/O 请求时的时间百分比。 

rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s 
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s 
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s 
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s 
rsec/s: 每秒读扇区数。即 delta(rsect)/s 
wsec/s: 每秒写扇区数。即 delta(wsect)/s 
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。 
wkB/s: 每秒写K字节数。是 wsect/s 的一半。 
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio) 
avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。 
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio) 
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio) 
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒) 

简单分析: 
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。 

svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。 

队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。 

vmstat 
[root@sends ~]# vmstat -a 2 
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- 
r  b   swpd   free  inact active   si   so    bi    bo   in    cs us sy id wa 
2  0      0 589428 847744 2391492    0    0     1    21    3     6 23 13 64  0 
2  0      0 585972 848296 2394760    0    0     0    62 1076   754 21 33 46  0 
1  0      0 589108 848796 2390680    0    0     0     0 1077   702 22 33 46  0 
1  0      0 629604 825368 2374436    0    0     0    30 1024   685 20 32 47  0 
1  0      0 631012 825368 2372948    0    0     0    20 1029   682 21 33 46  0 


结果分析: 
Procs 
r:等待执行的任务数 
b:处在非中断睡眠状态的进程数 
展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了 

Memory 
swpd:正在使用的swap大小单位K
free:空闲的内存空间
buff:已使用的buff大小,对块设备的读写进行缓冲
cache:已使用的cache大小,文件系统的cache
inact: 
active: 

Swap 
si:交换内存使用,由磁盘调入内存 
so:交换内存使用,由内存调入磁盘 

IO 
bi:从块设备读入的数据总量(读磁盘) (KB/s) 
bo:写入到块设备的数据总理(写磁盘) (KB/s) 

System 
in:每秒产生的中断次数
cs:每秒产生的上下文切换次数 
上面这2个值越大,会看到由内核消耗的CPU时间会越多 

CPU 
us:用户进程消耗的CPU时间百分比 
us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了 
sy:内核进程消耗的CPU时间百分比 
sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。 
id:空闲
wa:IO等待消耗的CPU时间百分比 
wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。




使用Linux性能分析工具
Linux在具有高穩定性、可靠性的同時,具有很好的可伸縮性和擴展性,
能夠針對不同的應用和硬件環境調整,優化出滿足當前應用需要的最佳性能。
因此企業在維護Linux系統、進行系統調優時,了解系統性能分析工具是至關重要的。

在Linux下有很多系統性能分析工具,
比較常見的有top、free、ps、time、timex、uptime等。
下文將介紹几個較為重要的性能分析工具vmstat、iostat和sar及其使用。

用vmstat監視內存使用情況
vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監視。
它是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。

vmstat的語法如下:
vmstat [-V] [-n] [delay [count]]

其中,-V表示打印出版本信息;-n表示在周期性循環輸出時,輸出的頭部信息僅顯示一次;
delay是兩次輸出之間的延遲時間;count是指按照這個時間間隔統計的次數。
對于vmstat輸出各字段的含義,可運行man vmstat查看。



用iostat監視I/O子系統情況
iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat工具將對系統的磁盤操作活動進行監視。
它的特點是匯報磁盤活動統計情況,同時也會匯報出 CPU使用情況。
同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。

iostat的語法如下:
iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]

其中,-c為匯報CPU的使用情況;-d為匯報磁盤的使用情況;-k表示每秒按kilobytes字節顯示數據;
-t為打印匯報的時間;-v表示打印出版本信息和用法;-x device指定要統計的設備名稱,默認為所有的設備;
interval指每次統計間隔的時間;count指按照這個時間間隔統計的次數。



使用sar進行綜合分析
sar是System Activity Reporter(系統活動情況報告)的縮寫。
顧名思義,sar工具將對系統當前的狀態進行取樣,然后通過計算數據和比例來表達系統的當前運行狀態。
它的特點是可以連續對系統取樣,獲得大量的取樣數據;取樣數據和分析的結果都可以存入文件,所需的負載很小。
sar是目前Linux上最為全面的系統性能分析工具之一,可以從14個大方面對系統的活動進行報告,
包括文件的讀寫情況、系統調用的使用情況、串口、CPU效率、內存使用狀況、進程活動及IPC有關的活動等,使用也是較為複雜。

sar的語法如下:

sar [-option] [-o file] t [n]
它的含義是每隔t秒取樣一次,共取樣n次。其中-o file表示取樣結果將以二進制形式存入文件file中。

sar option參數說明

選項 功能
-A 匯總所有的報告
-a 報告文件讀寫使用情況
-B 報告附加的緩存的使用情況
-b 報告緩存的使用情況
-c 報告系統調用的使用情況
-d 報告磁盤的使用情況
-g 報告串口的使用情況
-h 報告關于buffer使用的統計數據
-m 報告IPC消息隊列和信號量的使用情況
-n 報告命名cache的使用情況
-p 報告調頁活動的使用情況
-q 報告運行隊列和交換隊列的平均長度
-R 報告進程的活動情況
-r 報告沒有使用的內存頁面和硬盤塊
-u 報告CPU的利用率
-v 報告進程、i節點、文件和鎖表狀態
-w 報告系統交換活動狀況
-y 報告TTY設備活動狀況


另一種語法如下:

sar [-option] [-s time] [-e time] [-i sec] [-f file]

含義是表示從file文件中取出數據,如果沒有指定-f file,
則從標准數據文件/var/adm/sa/sadd取數據,其中dd表示當前天。
另外,-s time表示起始時間;-e time表示停止時間;
-i sec表示取樣的時間間隔,如果不指定則表示取文件中所有的數據。

一般它與-q和-u聯合使用,以便對每個CPU的使用情況進行分析,比如運行如下命令:
sar -q -u 5 1

由于sar命令太複雜,只有通過熟練使用才能了解每個選項的含義,
對于sar輸出中每個字段的含義運行man sar命令可以得到詳細的解釋。





參考資料:
http://saplingidea.javaeye.com/blog/526617
http://tw.myblog.yahoo.com/bullock0425/article?mid=-2&prev=534&l=a&fid=25

DHCP Snooping

參考資料:
在網段中,如果不小心打開了 "寬頻分享器" DHCP Server 功能。
通常這些 DHCP 服務預設都是打開的,而且都是 192.168.1.0/24 這個網段。所以這些怪怪的 IP 位址, 通常都是類似這樣 : 192.168.1.X。
整個網段, 通常會"部分取得正確, 部分取得錯誤".
Cisco 2950 以上的 Switch 支援 DHCP Snooping 功能,只要啟動這個功能,不管再有誰做這種事,也不會發生錯誤取得IP位址的問題
DHCP Snooping 的原理簡單的來說,Switch 會監看 DHCP 的活動,就是只允許指定的部分 Switch Port 放行 DHCP伺服器的回應封包,其他的一律不准。
所以只會取得指定 Server 回應的 DHCP 內容。
CISCO 交換機可攔截來自不信任埠口的 DHCP 要求,任何來自不信任埠口之 DHCP 封包將被丟棄。進入errdisable狀態。
在收到合法回應時,並可記錄已完成的 DHCP 資訊庫,內有 MAC位置 / IP位置 / 租用時間 等等資訊。
注意: 有一點很重要, 如果 DHCP Server 不是接在本 Switch 時, Uplink port 就必須要允許 DHCP Server 回應,不然整台 Switch 上的 PC 都會收不到動態的 IP位址資訊!
另外, 因為設定過程會影響 DHCP 運作, 建議最好是在離峰時間再啟動這個功能!
以下是一般的設定:
Global,啟動 DHCP Snooping,這行一定要。
 ip dhcp snooping
假設只對 VLAN 100 和 VLAN 200 作 DHCP 設限, 這行也一定要,可以是單一 vlan,也可以是一個 range x-x"
 ip dhcp snooping vlan 100 200
DHCP Server 埠,或是 Uplink,這邊是重點所在,不然會全部都收不到!
interface GigabitEthernet0/1
  ip dhcp trust
一般使用者埠,這是預設值,可以不用下,啟動 DHCP Snooping 後,預設所有埠口為不信任狀態。
 interface FastEthernet 0/1
  no ip dhcp trust
針對不信任埠口,可以限制 DHCP 封包流量速率。使用下列指令:
 ip dhcp snooping limit rate "流量,1-4294967294 / 封包"
倘若在不信任埠口偵測到 DHCP 要求,交換機可把本身 MAC / 交換埠識別字 加入到該封包的 選項82 之下。
使其可以順利的到達可信任的 DHCP 伺服器。此功能預設啟用。可以使用以下指令控制:
 [no] ip dhcp snooping information option
DHCP SNOOPING 檢查指令,如果後面加上 bining 字串,將可顯示所有已被監聽到且儲存在交換機裡的 DHCP 租用狀況。
show ip dhcp snooping [binding]

星期二, 3月 15, 2011

Linux DMA 關閉

當Linux 出現

Mar 15 05:52:23  kernel: ide-cd: cmd 0x3 timed out
Mar 15 05:52:23 qwfnhrep02 kernel: hda: irq timeout: status=0xd0 { Busy }
Mar 15 05:52:23 qwfnhrep02 kernel: hda: irq timeout: error=0x00
Mar 15 05:52:24 qwfnhrep02 kernel: hda: ATAPI reset complete

表示開啟DMA的功能,但是OS不支援
Linux 本身預設是開啟的
上面的訊息為hda光碟機有DMA功能OS不支援,但不影響server的運作
檢查系統中的DMA選項是否已被啓動
Linux中的hdparm命令是用來進行操控硬碟、光碟機之類設備的,
hdparm -i /dev/hda可以列出IDE可能支持的DMA模式,如:

DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4

啓動DMA支援
方法1:
在lilo.conf中加入:idex=dma,其中x代表硬碟序號,其取值範圍0-3,
分别代表系統中的四個IDE硬碟設備。

方法2:
使用hdparm命令,hdparm -d1 /dev/hda 其中d1表示開啓DMA模式,
可以利用加到rc.local中以便每次啓動OS時能使用DMA模式傳輸資料。

關閉DMA
命令格式:
hdparm -d0 /dev/hda 

參考資料:

星期五, 3月 11, 2011

將messages log 裡的snmp log 切出來

messages log 被 大量的 snmp log Received SNMP packet(s) from UDP:佔滿
修改/etc/sysconfig/snmpd.options
新增OPTIONS="-Lf /dev/null -p /var/run/snmpd.pid"
然後重新restart snmpd


參考資料
http://space.itpub.net/35489/viewspace-673743
http://kaien.wikidot.com/linux:rhel-snmp-syslog
http://blog.mgcrazy.com/?p=59

星期二, 3月 08, 2011

sendmail : STARTTLS: read error=generic SSL error (0)

sendmail 出現下列訊息,並一直重覆出現 STARTTLS: read error=generic SSL error (0)


Mar  7 13:52:09 QWFNHMAIL01 sendmail[17353]: STARTTLS: write error=syscall error (-1)
Mar  7 13:52:09 QWFNHMAIL01 sendmail[17353]: STARTTLS: write error=generic SSL error (-1)
Mar  7 13:52:09 QWFNHMAIL01 sendmail[17353]: p275hbkf017322: SYSERR(root): putbody: write error: Input/output error
Mar  7 13:52:09 QWFNHMAIL01 sendmail[17353]: p275hbkf017322: to=<jn075@webmail.mlc.edu.tw>,<ylg785@webmail.mlc.edu.tw>, delay=00:08:32, xdelay=00:05:11, mail
er=esmtp, pri=960570, relay=nopam.mlc.edu.tw. [163.19.163.60], dsn=4.0.0, stat=I/O error
Mar  7 13:52:09 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)
Mar  7 13:52:11 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)


查看 /etc/mail/sendmail.cf  沒有打開TLS選項確一直出現
google一下有可能是sendmail 8.12.X的bug
大部份都說去改一個site.config.m4 的檔案,還要再compiler ,還是先不要這麼做...
查到一個方法是把出現STL那個訊息的process 砍掉
http://www.utahsysadmin.com/2007/02/09/starttls-read-errorgeneric-ssl-error-0/
原來這麼簡單...

[root@QWFNHMAIL01 log]# tail maillog
Mar  8 10:33:15 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)
Mar  8 10:33:16 QWFNHMAIL01 last message repeated 54114 times
Mar  8 10:33:16 QWFNHMAIL01 sendmail[29009]: p282XDkx029009: Too many recipients
Mar  8 10:33:16 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)
Mar  8 10:33:16 QWFNHMAIL01 last message repeated 11 times
Mar  8 10:33:16 QWFNHMAIL01 sendmail[29009]: p282XDkx029009: from=<tp6888@xuite.net>, size=0, class=0, nrcpts=50, proto=SMTP, daemon=MTA, relay=[10.117.10.81]
Mar  8 10:33:17 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)
Mar  8 10:33:22 QWFNHMAIL01 last message repeated 221790 times
Mar  8 10:33:22 QWFNHMAIL01 sendmail[29010]: p282XMkw029010: [172.16.216.6] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Mar  8 10:33:22 QWFNHMAIL01 sendmail[17353]: STARTTLS: read error=generic SSL error (0)

[root@QWFNHMAIL01 log]# kill -9 17353
[root@QWFNHMAIL01 log]# ps -ef |grep sendmail
root      2814     1  0  2010 ?        00:00:00 [sendmail]
root     26302     1  0 Mar07 ?        00:00:03 [sendmail]
smmsp    26311     1  0 Mar07 ?        00:00:00 [sendmail]
root     28798     1  0 10:27 ?        00:00:00 [sendmail]
root     28980     1  0 10:31 ?        00:00:00 [sendmail]
root     28990     1  0 10:32 ?        00:00:00 [sendmail]
root     29008     1  0 10:33 ?        00:00:00 [sendmail]
root     29009 26302  0 10:33 ?        00:00:00 [sendmail]
root     29014 28578  0 10:33 pts/1    00:00:00 grep sendmail

星期二, 2月 22, 2011

出現 Generic host process for win32 services發生問題

當XP出現  Generic host process for win32 services發生問題   通常會併發網路連線問題


1.如果是中毒攻擊者在用戶註冊表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ Run 下
建立一個叫「msupdate」(估計有變化)的鍵,鍵值一般為msblast.exeC:\windows\system32目錄下會放置一個 msblast.exe的木馬程式
另外受攻擊者會出現「Generic Host Process for Win32 Services 遇到問題需要關閉」
「Remote Rrocedure Call (RPC)服務意外終止,Windows必須立即重新啟動」等錯誤訊息而重啟。
建議到microsoft下載相應更新。
如果已受攻擊,建議先拔掉網路線,在任務管理器中結束msblast.exe進程,清除註冊表中的相應條目,刪除 system32下的木馬程式,最後更新。




2.排除中毒問題後,更新windows patch 
更新 KB958644 及 KB956803 這兩個更新


3.若是排除病毒及更新後,還出現這樣的問題,一般都是IE組件在註冊表中註冊訊息被破壞,
可以按下面的方法去解決該問題:
 在"開始"選單中打開"執行"視窗,在其中輸入"regsvr32 actxprxy.dll",然後"確定",
接著會出現一個訊息對話框"DllRegisterServer in actxprxy.dll succeeded",再次點擊"確定"。
再次打開"執行"視窗,輸入"regsvr32 shdocvw.dll
再次打開"執行"視窗,輸入"regsvr32 oleaut32.dll
再次打開"執行"視窗,輸入"regsvr32 actxprxy.dll
再次打開"執行"視窗,輸入"regsvr32 mshtml.dll
再次打開"執行"視窗,輸入"regsvr32 msjava.dll
再次打開"執行"視窗,輸入"regsvr32 browseui.dll
再次打開"執行"視窗,輸入"regsvr32 urlmon.dll
如果排除病毒問題後,做完上面的幾個IE組件註冊一般問題即可得到解決




星期三, 2月 09, 2011

NBU磁帶機狀況檢查及手動備份Catalog

檢查磁帶機狀況

手動備份catalog

畫面左邊 Netbackup Management-->Catalog 
按右鍵選手動備份


星期三, 1月 26, 2011

Outlook server及個人端的行事曆移動

Outlook  server 端的行事歷無法被刪除或取代
如果想要把個人資料夾的行事歷全部放到server 上
或將server上的移到個人行事曆
可使用 檢視-->排列-->目前檢視-->依類別
然後再將要移動的資料選起來移動即可.

星期二, 1月 11, 2011

NBU-- the backup failed to back up the requested files(6) 錯誤碼

錯誤碼內容


the backup failed to back up the requested files(6)
2011/1/11 上午 10:36:12 - Error bpsched(pid=1180) suspending further backup attempts for client qwfnhora01, policy oracle_membr_log, schedule Auto because it has exceeded the configured number of tries
2011/1/11 上午 10:36:12 - Error bpsched(pid=1180) backup of client qwfnhora01 exited with status 6 (the backup failed to back up the requested files)


上面的訊息為備份的script 錯誤有關


到client 檢查netbackup log 在/usr/openv/netbackup/logs 看裡面的內容

 Processing /usr/openv/script/membr1/backuptapelog.sh
10:52:12.843 [1056850] <4> bphdb: INF - Child executing /usr/openv/script/membr1/backuptapelog.sh
10:52:12.883 [2420932] <4> bphdb: INF - bphdb still working.
10:52:12.883 [2420932] <4> bphdb: INF - Keepalives will be sent every 1800 seconds.
10:52:12.883 [2420932] <4> bphdb: INF - Waiting for the child status.
10:52:56.360 [2420932] <16> bphdb: ERR - Script exited with status = 1 <the requested operation was partially successful>
10:52:56.367 [2420932] <4> bphdb: file /tmp/obackup_class deleted.
10:52:56.368 [2420932] <16> bphdb: ERR - bphdb exit status = 6: the backup failed to back up the requested files

紅色內容為script 問題

檢查 /usr/openv/script/裡的script 看問題在哪裡

星期一, 1月 10, 2011

AIX Memory 效能設定

1 、 VMM 的管理簡介


首先,還是簡單講解一下記憶體以及 VMM 的一點工作原理。

記憶體和交換空間一般都是用頁面來進行分配和管理的。 在記憶體中存在兩種類型的頁面:計算頁面(一般為可執行文件段中的頁面)和文件頁面(存儲的數據文件的頁面)。 當我們執行程序或者讀入數據的時候,記憶體中的頁面就逐漸被佔用。 當空閒的記憶體只剩 minfree 的時候, vmm 的調頁就被喚醒,通過調頁算法,將內存中的頁面轉移到交換空間中。 一直到空閒內存達到 maxfree,才停止調頁。

在這裡,我們涉及到兩個參數:

1) Minfree :最小空閒頁鍊錶尺寸。 一旦低於該值,系統偷頁以填充頁鍊錶,保證有足夠的記憶體頁面。 偷頁就是將不常用的頁面替換出去。

2) Maxfree :最大空閒頁鍊錶尺寸。 一旦高於該值,系統停止偷頁。

如果發現空閒列表不足,可以用下面的方法增加 minfree 參數

#vmo -o minfree=1000 -o maxfree=1008
Setting maxfree to 1008
Setting minfree to 1000

#vmo –o minfree=1000 –o maxfree=1008 –P # -P 參數使修改永久生效
一般情況下, minfree 和 maxfree 通過下面的公式得到:
maxfree=minmum(memory/128,128) ,minfree=maxfree-8
注意:在 AIX 5.2 之前的版本請使用 /usr/samples/kernel/vmtune 命令。
#/usr/samples/kernel/vmtune –f 1000 –F 1008

或參考 http://pctartarus.com/bbs/archiver/tid-1939.html


另外,關於內存的使用,我們還有兩個經常碰到的參數需要關注:
Minperm :用戶 I/O 文件訪問的最小緩衝區頁數
Maxperm :用戶 I/O 文件訪問的最大緩衝區頁數
Minperm 和 maxperm 這兩個參數的預設值分別為 20 %和 80 %。 在這裡主要與性能相關的是 maxperm 參數。maxperm參數指定了文件頁面可以佔用記憶體的上限,因為文件頁面不主動釋放,所以很容易造成記憶體的文件頁面過高的佔用,導致其他的應用程式記憶體使用不足。 調整參數值的方法如下:

#vmo -o maxperm%=80 -o minperm%=20
Setting minperm% to 20
Setting maxperm% to 80

在 AIX 5.2 之前的版本請使用 /usr/samples/kernel/vmtune 命令。
#/usr/samples/kernel/vmtune -p 20 – P 80 將 min 和 max 的值分別設置為 20 %和 80 %。

查看當前的參數設置方法如下:
1 ) vmo –a 顯示當前所有的參數設置
在 AIX 5.2 之前的版本請使用 # /usr/samples/kernel/vmtune 顯示當前所有的參數設置

qwfnhora01:/>vmo -a
       cpu_scale_memp = 8
data_stagger_interval = 161
                defps = 1
  force_relalias_lite = 0
            framesets = 2
            htabscale = n/a
    kernel_heap_psize = 4096
 large_page_heap_size = 0
         lgpg_regions = 0
            lgpg_size = 0
      low_ps_handling = 1
      lru_file_repage = 1
    lru_poll_interval = 0
            lrubucket = 131072
           maxclient% = 80
              maxfree = 128
              maxperm = 2520411
             maxperm% = 80
               maxpin = 2621440
              maxpin% = 80
      mbuf_heap_psize = 4096
      memory_affinity = 1
        memory_frames = 3276800
             mempools = 1
              minfree = 120
              minperm = 630102
             minperm% = 20
            nokilluid = 0
              npskill = 16384
              npswarn = 65536
     num_spec_dataseg = 0
            numpsblks = 2097152
         pagecoloring = n/a
      pinnable_frames = 3082426
pta_balance_threshold = n/a
  relalias_percentage = 0
soft_min_lgpgs_vmpool = 0
     spec_dataseg_int = 512
     strict_maxclient = 1
       strict_maxperm = 0
             v_pinshm = 0
      vmm_fork_policy = 0

2vmstat -v

qwfnhora01:/>vmstat -v
              3276800 memory pages
              3150515 lruable pages
               548834 free pages
                    2 memory pools
               194364 pinned pages
                 80.0 maxpin percentage
                 20.0 minperm percentage
                 80.0 maxperm percentage
                 12.9 numperm percentage
               407332 file pages
                  0.0 compressed percentage
                    0 compressed pages
                  0.0 numclient percentage
                 80.0 maxclient percentage
                    0 client pages
                    0 remote pageouts scheduled
                    0 pending disk I/Os blocked with no pbuf
                    0 paging space I/Os blocked with no psbuf
                 8634 filesystem I/Os blocked with no fsbuf
                    0 client filesystem I/Os blocked with no fsbuf
                    0 external pager filesystem I/Os blocked with no fsbuf


顯示 minperm 和 maxperm 和 numperm 的值。numperm 值給出的是記憶體中文件頁數。
系統調頁的規則:
1) 如果 numperm>maxperm ,則只調出文件頁面。
2) 如果 numperm<minperm ,則同時調出文件頁面和計算頁面。
3) 如果 minperm<numperm<maxperm ,則只調出文件頁面,除非新調入的文件頁面大於計算頁面的總和。
如果系統在向調頁空間調出頁面,可能使因為記憶體中的文件頁數低於 maxperm ,從而也調出了部分的計算頁面以達到 maxfree的要求。 在這種情況下,可以考慮把 maxperm 降低到低於 numperm 的某個值,從而阻止計算頁面的調出。 在 5.2 ML4 以後的版本中,為了防止計算頁面被調出,可以採用另外一個方法,就是設置參數 lru_file_repage=0 。 將該參數設為 0 ,則告訴 vmm在進行頁面替換的時候,優先替換文件頁面。
maxclient 通常應該設置為一個小於或者等於 maxperm 的值。
增強 JFS 文件系統為它的緩衝區高速緩存使用客戶機文件,這不受 maxperm 和 minperm 的影響。 為了在限制增強 JFS 文件系統使用高速緩存,可以指定 maxclient 的值,避免在它進行頁面替換的時候,替換其他類型的頁。


2 、使用 vmstat 確定內存的使用情況

主要檢查 vmstat 輸出的 memory 和 pages 列和 faults 列。 詳細的說明見前一節 cpu 評估說明。

3 、 svmon 命令

qwfnhora01:/>svmon -G -i 2 2
               size      inuse       free        pin    virtual
memory      3276800    2720818     555982     194216    2381233
pg space    2097152     289637

               work       pers       clnt      lpage
pin          193983        233          0          0
in use      2289298     431520          0          0
               size      inuse       free        pin    virtual
memory      3276800    2722427     554373     194238    2382831
pg space    2097152     289636

               work       pers       clnt      lpage
pin          194003        233          0          0
in use      2290896     431531          0          0

memory 段

¨ size 物理記憶體總頁數。4KB/ 頁
¨ inuse 物理記憶體中正在使用的記憶體頁面數。 包含活動進程和已經終止的進程的持久文件頁面。
¨ free 空閒列表中的頁面數量
¨ pin 鎖定在記憶體中的頁面數量(鎖定的意思就是不能被替換出去)
¨ virtual

pg space 段

¨ size 調頁空間總大小
¨ inuse 已經分配頁的總數,也就是已經使用的調頁空間頁數

pin 段

¨ work 物理記憶體中的工作頁面數
¨ pers 物理記憶體中的持久頁面數
¨ clnt 物理記憶體中的client頁面數(clinet頁面就是一個遠程文件頁面)

inuse 段

¨ work 物理記憶體中的工作頁面數
¨ pers 物理記憶體中的持久頁面數
¨ clnt 物理記憶體中的client頁面數(client
頁面就是一個遠程文件頁面)

3 、 ps 命令顯示當前運行的進程狀態信息。
運行下列命令,顯示內存佔用前 10 位的進程。

qwfnhora01:/>r
ps gv |sort +6b -nr |head -10
 1511620      - A    27:53 2364 200000 226280    xx 64644 38092  0.0  2.0 ora_mmo
 2343082      - A     3:11    1 22240 60332    xx 64644 38092  2.6  1.0 oraclem
 1958134      - A     1:59    1 18620 56712    xx 64644 38092  5.9  1.0 oraclem
 1728572      - A    41:05  551 20760 54328    xx 64644 38092  0.0  0.0 ora_arc
 2306100      - A    409:24   82 16760 54140    xx 64644 38092  0.5  0.0 oraclem
  946326      - A    193:55    2 15936 54028    xx 64644 38092  3.2  0.0 oraclem
  983108      - A    216:51    1 15928 54020    xx 64644 38092  1.5  0.0 oraclem
  975094      - A    77:42    1 15852 53944    xx 64644 38092  0.6  0.0 oraclem
 1548438      - A    18:24    1 15780 53872    xx 64644 38092  2.2  0.0 oraclem
 1847442      - A    46:45    1 15684 53776    xx 64644 38092  0.3  0.0 oraclem



如果是 oracle 的一些程序佔用了過度的記憶體,我們也可以通過前面類似的程序處理方法來分析。

4 、記憶體的調整

具體調整需要結合系統運行的應用程序對症下藥,如調整 minperm/maxperm 將改變內存與 PAGING SPACE 之間的交換算法,調整 minpgahead/maxpgahead 將改變記憶體塊請求機制,調整 minfree/maxfree 將改變記憶體不足時的記憶體清理刷新機制,等等。如果數據庫使用raw device,並且沒有太多其他的應用,因為raw device不需要文件系統的緩存,所以可以降低 minperm , maxperm ,maxclient 的默認值,降低操作系統對內存的不必要的佔用。
案例:
計費數據庫數據庫響應變慢,內存16G,raw device,卻存在很多的 PI,PO 情況。

在檢查與內存相關的系統參數,發現如下問題:
minperm% = 20 , maxperm% = 80 , maxclient% = 80

說明:以上三個參數為系統預設配置,其表示,使用文件系統時,最多可使用 80% *16G=10.8G,用於緩存所訪問的文件。

結論:由於以上參數採用系預設配置,文件系統緩存最大可以達到10.8G, 在執行大量的文件 cp 操作後,系統的可用記憶體量迅速下降,在其後的計費過程中,由於大量 page in/page out 操作引起系統嚴重性能瓶頸。


優化:
將 maxperm% = 30 , maxclient% = 30

#vmo –o maxperm%=30 –P
#vmo –o maxclient%=30 –P
5.2 以前版本
/usr/samples/kernel/vmtune –p 20 –P 30
/usr/samples/kernel/vmtune –t 30



AIX 的記憶體配置

有關AIX 的記憶體配置一直有個奇怪的問題,就是無論你的記憶體裝了多少,系統配置時都會儘可能的讓作業系統拿來當成檔案系統 JFS/JFS2 操作的 Cache,而且會儘可能的把記憶體都吃光,這使得有些正常的使用者作業要用到記憶體時,系統就要去做記憶體分頁切換,而在 AIX 5.2 ML5 和 AIX 5.3 ML2之前,這個動作並沒有被最佳化過,意思就是平常記憶體可能都會被 File System Cache 佔用,但真正使用者要執行的程式要使用時,實體記憶體己經被佔用光了,所以系統就會大量的使用 VMM 上面定義的磁碟分頁的部份,如此一來,真正的效能就會被磁碟分頁這個動作整個拖住。造成效能非常的差。

在剛剛說的 AIX 5.2 ML5 和 AIX 5.3 ML2 之前,我們使用 VMO 中的 Min Perm 和 Max Perm 來限制 File System Cache ,讓系統可保有最小有 Min Perm 定義的百分比 Size 的 File Cache ,最大又只能使用 Max Perm 定義的 Cache ,這樣的話就能改善上述的一些狀況。

另外在搭配 Oracle 9i /10g 版本時,更可以在系統上去改動 v_pinshm=1 ,然後將 Oracle 的 Lock_SGA 啟動,讓 Oracle 的 SGA 部份啟動後就佔住記憶體,不會再接受系統操作去切換分頁位置,但是 v_pinshm=1 這個設定如果在記憶體較小的設備上(其實己經遇過幾次,說比較小,也不一定,有很大的系統還是當過),經常造成系統當掉,每次原廠工程師把 Report 收回去一看就會說這個要關掉不能開,但 Oracle 明明有文件說這個開了效能才會上來。每次就為了這個參數在吵。

一直到 AIX 5.2 ML5 和 AIX 5.3 ML2 之後,有了一個新的參數叫 LRU_FILE_REPAGE ,系統預設是 1 ,建議是 0 (AIX 6 己經將這個參數拿掉,直接預設就是 0 ) ,這個參數設定為 0 後,系統就會將記憶體優先配置給使用者使用,假設記憶體己經全部被 Filesystem Cache 部份佔掉了,當有使用者要使用時,Filesystem Cache 就會優先被釋放出來供使用者的應用程式使用。

有這個參數以後,在各種應用系統的記憶體問題效能就有比較大幅度的解決,起碼記憶體不會再莫明奇妙的一直被吃光,然後用到磁碟分頁去了,除非,你的記憶體是真的不夠的。但是記住一點,你在各種記憶體監控程序去檢視記憶體時,你仍然會發現記憶體的 Free Space 可能還是 2%~3%或者是更少,除非你的系統開起來都沒有任何運作。

另外 File System Cache 只有在有使用 JFS/JFS2 的狀態下,有執行 OS Level 的 檔案操作時會被使用到,比如說 copy 檔案, tar 檔案等等這些檔案的 I/O 行為,如果是像 Oracle 那種直接由 Block Level 或是說使用 RAW Device 是不會用到 File Cache的。


參考資料