HP-UX作業系統的記憶體

531968912發表於2015-02-27
HP-UX作業系統的記憶體使用:
(1) 核心                       無命令可檢視大小
(2) 程式(包括核心程式)       top -d1 -n1 -s1;export UNIX95=1;ps -eopid,sz,vsz,comm,args
(3) 裝置的快取:BUFFER         無命令可檢視大小
(4) 裝置檔案緩衝:CACHE        無命令可檢視大小
(5) 頁面排程                   swapinfo
(6) 空閒記憶體                   top -d1 -n1 -s1;


“export UNIX95=1;ps -epid,sz,vsz,comm”命令檢視的SZ總和,VSZ總和與top命令的
活動的程式記憶體、程式的虛存 基本相同。


■ 記憶體使用率的計算問題

參照LINUX的記憶體使用率計算公式,BUFFER、CACHE被認為是空閒的,記憶體使用率的計算公式為:


      記憶體使用率 = 1 - (free + CACHE + BUFFER)/ 實體記憶體大小


當HP-UX作業系統之上有 資料庫系統等大型應用進行大量的檔案IO操作(包括網路SOCKET)時,
HP-UX作業系統為了提高裝置及檔案的IO效率,將會把大量的記憶體用於CACHE、BUFFE。這樣從OS角度
看的空閒記憶體就比較小了。


CACHE、BUFFER的大小在HP-UX下沒辦法獲取,假定為0,自然計算出的記憶體使用率就偏高了。


按照HP工程師的說法,如果 基於裝置或檔案系統的 SWAP使用率為0,即使記憶體使用率接近100%,
也不能說明記憶體不夠用。


在某些情況下,雖然top看到還有空閒記憶體,但由於HP-UX的記憶體管理機制(下述的記憶體請求的預定),
有可能出現程式請求記憶體或啟動程式時,由於可以用於 頁面排程的剩餘空間 不能滿足 請求空間預定
的 要求而被拒絕,這時從應用角度看 就會出現 記憶體不夠 或 程式啟動不了的情況了。在發生這種情
況時,應該加大SWAP空間,以滿足OS對 頁面排程空間的 預定需求。


程式預定的SWAP空間,只有在真正發生頁面交換(swap)時,才會被使用。請看下述的 HP-UX對swapinfo
的資訊解釋 。


■ swapinfo對 頁面排程 分配 的解釋

swapinfo命令的樣本:
$ swapinfo
             Kb      Kb      Kb   PCT START/      Kb
TYPE      AVAIL    USED    FREE USED   LIMIT RESERVE PRI NAME
dev     1048576       0 1048576    0%       0       -    1 /dev/vg00/lvol2
reserve       - 368628 -368628
memory   747268 455972 291296   61%


swapinfo命令的線上手冊檢視命令:
$ man swapinfo


HP-UX系統命令“swapinfo”線上幫助關於 頁面排程 的部分內容含義:
(paging:記憶體分頁、頁面排程)


dev        Paging space residing on a mass storage device,
           either taking up the entire device or, if the
           device contains a file system, taking up the
           space between the end of the file system and
           the end of the device. This space is
           exclusively reserved for paging, and even if it
           is not being used for paging, it cannot be used
           for any other purpose. Device paging areas
           typically provide the fastest paging.


裝置       在一個塊儲存裝置上的頁面排程空間,或佔用整個裝置,或如果裝置包含一個檔案
           系統,則佔用在檔案系統末端與裝置末端間的空間。該空間被排他地保留為頁面調
           度,該空間不能用於任何其它目的。裝置頁面排程區域提供快速的頁面排程。


fs         Dynamic paging space available from a file
           system. When this space is needed, the system
           creates files in the file system and uses them
           as paging space. File system paging is
           typically slower than device paging, but allows
           the space to be used for other things (user
           files) when not needed for paging.


檔案系統   在一個檔案系統上的可用的動態頁面排程空間。但這個空間被需要,系統在檔案
           系統上建立檔案並將其用於頁面排程空間。檔案系統頁面排程比裝置頁面排程慢,
           但不需要用於頁面排程時,允許這些空間用於其它事情(使用者檔案)。


localfs    File system paging space (see fs above) on a
           file system residing on a local disk.


本地檔案系統 在一個本地磁碟上的檔案系統的 檔案系統的頁面排程空間(見上述的fs)。


network    File system paging space (see fs above) on a
           file system residing on another machine. This
           file system would have been mounted on the
           local machine via NFS.


網路       在另一臺機器的一個檔案系統上的檔案系統的頁面排程空間(見上述的fs)。這個檔案
           系統在本地機器透過NFS掛接。


reserve    Paging space on reserve. This is the amount of
           paging space that could be needed by processes
           that are currently running, but that has not
           yet been allocated from one of the above paging
           areas. See "Paging Allocation" below.


預訂       被預訂的頁面排程空間。當前正在執行的所有程式可能需要
           的頁面排程空間總量,但還沒有在上述的頁面排程區域被分配。
           請看後述的“記憶體分頁分配”。


memory     Memory paging area (also known as pseudo-swap).
           This is the amount of system memory that can be
           used to hold pages in the event that all of the
           above paging areas are used up. See "Paging
           Allocation" below. This line appears only if
           memory paging is enabled.


記憶體       記憶體頁面排程區域(也稱作 偽交換區)。在上述所有頁面排程
           區域被用完時,存放頁面的的系統記憶體總量。請看後述的
          “頁面排程分配”。僅當 記憶體頁面排程啟用下才出現。


Paging Allocation
記憶體分頁分配


      Paging areas are enabled at boot time (for device paging areas
      configured into the kernel) or by the swapon command (see swapon(1M)),
      often invoked by /sbin/init.d/swap_start during system initialization
      based on the contents of /etc/fstab. When a paging area is enabled,
      some portion of that area is allocated for paging space. For device
      paging areas, the entire device is allocated, less any leftover
      fraction of an allocation chunk. (The size of an allocation chunk is
      controlled by the tunable parameter swchunk, and is typically 2 MB.)
      For file system paging areas, the minimum value given to swapon
      (rounded up to the nearest allocation chunk) is allocated.


      頁面排程區域在啟動時被啟用(配置於核心的裝置頁面排程區域) 或者 用swapon命
      令(請看swapon在1M節的手冊,即用“man 1M swapon” 命令列來檢視),在基於
      “/etc/fstab”內容的系統初始化期間swapon命令經常被“/sbin/init.d/swap_start”
      呼叫。但一個頁面排程區域被啟用時,該區域的某些部分被分配用於頁面排程空間。
      基於裝置的頁面調取區域,除了少量的不夠一個分配塊的多餘碎片外,整個設
      備將被分配(一個可分配塊的大小由可調整的引數swchunk控制,並且典型塊大小為2M);
      基於檔案系統的頁面調取區域,按照swapon命令指定的最小值(被調整到最近
      的分配塊)來分配。


      When a process is created, or requests additional space, space is
      reserved for it by increasing the space shown on the reserve line
      above. When paging activity actually occurs, space is used in one of
      the paging areas (the one with the lowest priority number that has
      free space available, already allocated), and that space will be shown
      as used in that area.


      當一個程式被建立或請求額外的空間時,透過 增加 上述預定行的空間,請求的空間
      被預定。當頁面排程活動真正發生時,頁面排程區域之一(有空閒可用空間的最低優
      先號的那個,已分配的)的空間被使用,並且那個空間將作為已使用被顯示。


      The sum of the space used in all of the paging areas, plus the amount
      of space reserved, can never exceed the total amount allocated in all
      of the paging areas. If a request for more memory occurs which would
      cause this to happen, the system tries several options:


      所有頁面排程區域已使用空間的總和,加上被預定的空間總量,永遠不會超出所有頁面
      排程區域已分配的總量。如果發生需要更多記憶體,可能引起這種情況發生的請求,系統
      嘗試幾種選擇:


      1.   The system tries to increase the total space available by
           allocating more space in file system paging areas.


           系統嘗試 用在檔案系統的頁面排程區域分配更多空間的辦法增加總的可用空間。


      2.   If all file system paging areas are completely allocated and the
           request is still not satisfied, the system will try to use memory
           paging as described on the memory line above. (Memory paging is
           controlled by the tunable parameter swapmem_on, which defaults to
           1 (on). If this parameter is turned off, the memory line will
           not appear.)


          如果所有檔案系統的頁面排程區域完全分配但請求還不能滿足,系統將嘗試用上
          述“記憶體”行描述的記憶體頁面排程。(記憶體頁面排程有可調整的引數swapmem_on控
          制,預設為1(on)。如果該引數被關閉,那個“記憶體”行將不出現)


      3.   If memory paging also cannot satisfy the request, because it is
           full or turned off, the request is denied.


           如果記憶體頁面排程也不能滿足請求,由於其已滿(用完)或被關閉,該請求被拒絕。


      Several implications of this procedure are noteworthy for
      understanding the output of swapinfo:


      為理解swapinfo輸出,這個過程的幾個含義值得注意:     


      +    Paging space will not be allocated in a file system paging area
           (except for the minimum specified when the area is first enabled)
           until all device paging space has been reserved, even if the file
           system paging area has a lower priority value.


           在檔案系統的頁面排程區域,頁面排程空間將不被分配(除非當該區域首次啟用時
           指定了最小值),除非所有裝置的頁面裝置度空間已被預訂,即使檔案系統的頁面
           排程區域有更低優先值。


      +    When paging space is allocated to a file system paging area, that
           space becomes unavailable for user files, even if there is no
           paging activity to it.
           
           但頁面排程空間被分配在一個檔案系統的頁面排程區域時,那個空間成為使用者檔案
           不可用空間,即使在那個空間沒有頁面排程活動。


      +    Requests for more paging space will fail when they cannot be
           satisfied by reserving device, file system, or memory paging,
           even if some of the reserved paging space is not yet in use.
           Thus it is possible for requests for more paging space to be
           denied when some, or even all, of the paging areas show zero
           usage - space in those areas is completely reserved.


           預留在裝置、檔案系統或記憶體的頁面排程空間 不能滿足 需要更多頁面排程空間的請
           求時,這些請求將失敗,即使某些預定頁面排程空間還沒使用。因此,當某些或所有
           頁面排程區域顯示0使用率——這些區域的空間被完全預定時,有可能發生需要更多頁
           面排程空間的請求被拒絕,
         
      +    System available memory is shared between the paging subsystem
           and kernel memory allocators. Thus, the system may show memory
           paging usage before all available disk paging space is completely
           reserved or fully allocated.


           在頁面排程子系統和核心記憶體分配器間,系統可用記憶體被共享。如此,在所有可用的
           磁碟頁面排程空間被全部預定或完全分配之前,系統顯示基於記憶體的頁面排程空間使
           用率。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-1442413/,如需轉載,請註明出處,否則將追究法律責任。

相關文章