ORACLE在HP-UX下的系列問題處理(40)
2024-08-29 13:40:01
供稿:網(wǎng)友
Oracle 7.3.3 setPRivgrp/大文本頁錯誤
問題描述
在 HP-UX 10.20上的dmesg輸出或syslog中發(fā)現(xiàn)下面的信息:
Process pid num=1 does not have mem locking privileges
^ or a meaningful PID with PHKL_11902/3
[PHKL_11959]
required for using large text pages in this version.
See setprivgrp command
這是怎么回事?
配置信息
操作系統(tǒng) - HP-UX
版本 -
硬件系統(tǒng) - HP 9000
系列 -H70
解決方法
這個顯示表示執(zhí)行了一個要求使用大文本頁的二進(jìn)制文件(因為"chatr +pi L" 在二進(jìn)制文件上運行),用ADB 可以關(guān)閉該信息:
echo "allow_superpage_text?W 0" adb -w /stand/vmunix
安裝了PHKL_12945/6后,就無須再用這種方式關(guān)閉(要求重新啟動,并且假如重建內(nèi)核,必須重復(fù)執(zhí)行)。
假如不應(yīng)使用該特性,那么最好用chatr(1)重新設(shè)置二進(jìn)制文件,請求應(yīng)用缺省的4k 頁。假如應(yīng)當(dāng)使用該特性,則進(jìn)程執(zhí)行時所在的組應(yīng)當(dāng)被賦予MLOCK 權(quán)限,例如,假如這是一個Oracle進(jìn)程,Oracle 用戶所在的組為dba:
setprivgrp dba CHOWN MLOCK
為永久性實現(xiàn)這個目的,應(yīng)當(dāng)修改/etc/privgroup (位于/sbin/init.d/set_prvgrp: /usr/sbin/setprivgrp -f /etc/privgroup)(如有邊要創(chuàng)建該文件,添加一行"dba CHOWN MLOCK")。但假如使用了Advanced或Online JFS,則必須安裝下面的VxFS補丁程序,以避免在裝載可導(dǎo)致進(jìn)程掛起、無法殺死的二進(jìn)制文件過程中死鎖。:
PHKL_12945 (s700) 或 PHKL_12946 (s800).
背景資料:
處理器需要將虛擬地址映射到物理頁地址上,它們使用一個硬件TLB (翻譯后援緩沖器)來緩沖最近使用的譯文。假如譯文不在TLB中,就會出現(xiàn)讀取頁目錄和更新TLB的開銷。PA-8000 處理器與較老的處理器相比,TLB故障的代價更大,但是它可以處理更大的頁面尺寸,所以您需要的TLB登錄項可能更少。
HP-UX 10.20 內(nèi)核不能要求裝載具有大文本頁的二進(jìn)制文件,因此它必須在exec(2)過程中讀一次,然后將其鎖入RAM中。只有在進(jìn)程具有MLOCK 權(quán)限的情況下,內(nèi)核才能進(jìn)行此項處理,而這個權(quán)限是在已經(jīng)用setprivgrp 賦予當(dāng)前組的情況下獲得的。
TLB故障的減少和文本頁故障的消除應(yīng)當(dāng)能夠提高系統(tǒng)性能,代價就是啟動時間稍微有些長(啟動過程中裝載整個的二進(jìn)制文件),損失可用于其它目的的RAM頁(現(xiàn)在內(nèi)存中駐留整個二進(jìn)制文件,而不只是最近使用過的頁面)。
.........following with all English text ....
Oracle 7.3.3 setprivgrp/large text pages errors
Problem Description
On HP-UX 10.20, I see the following message in the dmesg output or syslog:
Process pid num=1 does not have mem locking privileges
^ or a meaningful PID with PHKL_11902/3
[PHKL_11959]
required for using large text pages in this version.
See setprivgrp command
What is happening?
Configuration Info
Operating System - HP-UX
Version -
Hardware System - HP 9000
Series -H70
Solution
This message means a binary was exec(2)uted which asked to use large text pages (because "chatr +pi L" was run on the binary file).
The message can be disabled with ADB:
echo "allow_superpage_text?W 0" adb -w /stand/vmunix
Disabling it this way (which requires a reboot and must be repeated if the kernel was rebuilt) is no longer necessary with PHKL_12945/6.
If the feature should not be used,
using chatr(1) to reset the binary to request the default 4k pages is the preferred method. If the
feature should be used, the group the process is executing in should be granted the MLOCK privilege, e.g. if this is an Oracle
process and the group the Oracle user is in is dba:
setprivgrp dba CHOWN MLOCK
To do this permanently, /etc/privgroup (which is read in
/sbin/init.d/set_prvgrp: /usr/sbin/setprivgrp -f /etc/privgroup)
should be edited (create if necessary, add a line "dba CHOWN MLOCK").
However, if Advanced or Online JFS is used, the following VxFS patch
needs to be installed to prevent a deadlock during the load of the binary that would result in a hung, un-killable process:
PHKL_12945 (s700) or PHKL_12946 (s800).
Background:
Processors need to map virtual to physical page addresses. They use a
piece of hardware, the TLB (Transaction Lookaside Buffer) to cache recently used translations. If a translation is not in the TLB,
overhead to read the page Directory and update the TLB is incurred.
PA-8000 processors have a larger penalty for a TLB miss than older processors, but can handle larger page sizes, so that you may need
fewer TLB entries.
The HP-UX 10.20 kernel cannot demand load a binary with large text pages, so it has to read it once during exec(2) and lock it into RAM.
The kernel will only do that if the process has the MLOCK privilege,which is granted if the current group has been given this privilege with setprivgrp.
The redUCtion of TLB misses and elimination of text page faults should increase performance. The cost is a slightly larger startup time (during which the whole binary is loaded) and the loss of RAM pages available
for other purposes (the whole binary is now resident in memory, not just the recently used pages)