經常使用系統優化參數

目錄網絡

1 簡介oracle

2 經常使用參數 異步

  2.1 /proc 文件系統與 sysctltcp

  2.2 配置文件ide

  2.3 經常使用內核參數工具

  2.3.1 kernel:/proc/sys/kernel/優化

  2.3.2 虛擬內存:/proc/sys/vm/spa

  2.3.3 文件系統:/proc/sys/fs/日誌

  2.3.4 網絡:/proc/sys/net/ipv4/blog

  2.4 資源控制參數

3 方案舉例

  3.1 Oracle 內核參數調優

  3.2 Weblogic 網絡調優

4 常見故障處理

  4.1 資源不可用

  4.1.1 問題現象

  4.1.2 緣由分析

  4.1.3 解決方法

  4.2 VFS: file-max limit xxxxxx reached

  4.2.1 問題現象

  4.2.2 緣由分析

  4.2.3 解決方法

  4.3 Too many open files

  4.3.1 問題現

  4.3.2 緣由分析

  4.3.3 解決方法


簡介

本文介紹經常使用的系統優化方法以及與系統資源相關的問題處理。

經常使用參數

/proc 文件系統與 sysctl

/proc 文件系統是一個虛擬文件系統,經過它可使用一種新的方法在 Linux 內核空間和用戶空間之間進行通訊;sysctl 是一個實時調整內核參數的工具,它依賴於 /proc,經過操做 /proc/sys/ 目錄內的內容達到動態調整內核參數的目的。

sysctl 命令參數中的參數名稱與 /proc/sys/ 下的目錄結構相對應,例如:

sysctl 的 net.ipv4.conf.all.send_redirects 對應 /proc/sys/net/ipv4/conf/all/send_redirects

相應的調整方法也是對應的,例如:

sysctl -w net.ipv4.conf.all.send_redirects=0 等效 echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects

配置文件

§ /etc/sysctl.conf,這是 sysctl 預加載的配置文件,語法以下:

#註釋

;註釋

參數 

§ /etc/security/limits.conf,這是 pam_limits 模塊的配置文件,經過 pam_limits 模塊能夠控制用戶的系統資源分配,語法以下:

#用戶或者組   軟硬限制       資源的類型     限制資源的大小 

 <>        <類型>        <資源>        <>

經常使用內核參數

kernel/proc/sys/kernel/

參數

說明

pid_max

最大的進程ID 號數值,若是達到此值,下個進程的ID 將從最小值開始

panic

kernel panic發生時,等待重啓的時間,單位爲秒,若是使用software watchdog,建議值爲60

shmall

所有容許使用的共享內存大小,單位爲 bytes

shmmax

單個段容許使用的大小,單位爲 bytes

shmmni

系統的內存segment的總數

sysrq

內核中斷值,爲禁用,1爲徹底啓用,大於爲部分啓用

pty/max

最大僞終端數值

pty/nr

目前已分配的僞終端值

虛擬內存:/proc/sys/vm/

參數

說明

nr_hugepages

系統大內存頁最大限制數,關於大內存頁

文件系統:/proc/sys/fs/

參數

說明

aio-max-nr

最大異步IO限制

aio-nr

當前已調用異步IO

file-max

最大文件描句柄數限制

file-nr

第一個數值表示內核已分配的文件句柄數,第二個數表示文件句柄已經分配可是目前沒被使用,第三個數值即file-max

網絡:/proc/sys/net/ipv4/

參數

說明

icmp_echo_ignore_all

屏蔽全部 icmp 消息,表示關閉, 表示打開

ip_forward

ip 轉發,表示關閉,表示打開

tcp_keepalive_time

tcp 保持鏈接的時間,單位爲秒,默認值是 7200

tcp_keepalive_probes

探測tcp 鏈接是否存活的嘗試次數,默認值爲 9

tcp_keepalive_intvl

每次探測tcp 鏈接是否存活的間隔時間,單位爲秒,默認值爲 75

tcp_max_syn_backlog

未得到客戶端確認的tcp 鏈接請求,須要保存在隊列中最大數目

資源控制參數

資源類型

說明

core

生成的 core 文件的大小限制,單位爲 KB

data

最大的 data 的大小,單位爲 KB

fsize

最大的文件大小,單位爲 KB

memlock

最大的鎖定內存地址空間,單位爲KB

nofile

最大文件打開數

rss

max resident set size (KB)

stack

最大堆棧大小,單位爲 KB

cpu

最大CPU 時間,單位爲分鐘

nproc

最大進程數

as

地址空間限制

maxlogins

此用戶的登陸次數限制

maxsyslogins

此係統的登陸次數限制

priority

用戶進程的優先級別

locks

此用戶的最大文件鎖

sigpending

最大等待信號量數

msgqueue

POSIX 消息隊列所能使用的最大內存,單位爲 bytes

nice

最大的nice 值限制

rtprio

最大實時優先級別

方案舉例

Oracle 內核參數調優

Weblogic 網絡調優

常見故障處理

資源不可用

問題現象

用戶執行su - root 時,提示」can not set user id:資源不可用「

緣由分析

這個錯誤是由於普通用戶不能再建立系統進程,即 fork() 調用失敗。

解決方法

1、能夠經過執行以下兩條命令,來查看殭屍進程:

# ps auxwwf |grep -i defunct

2、而若是發現有殭屍進程,須要考慮如下幾點:

2.1 條件容許的話,建議您直接重啓機器;

2.2 建議您檢查應用狀況,查看產生殭屍進程的緣由,才能從根本上解決問題;

2.3 最後,按照「步驟三」方法適當將limits.conf文件中的oracle兩個軟限制調大一些。

3、若是沒有發現殭屍進程,調整該普通用戶的系統資源限制:

3.1 打開 /etc/security/limits.conf,修改裏面以下內容:

user  hard  nproc   16384

user  soft  nproc   8191

其中的 user  soft  nproc   2047nproc 是單個用戶可用的最大進程數。系統默認的軟限制是8091,您把這一項調大一些,最大爲不超過hard 行的值

3.2 從新登陸此用戶,執行 ulimit -u 驗證。

VFS: file-max limit xxxxxx reached

問題現象

在系統日誌中,能夠看到相似下面的信息:

kernel: VFS: file-max limit xxxxxx reached

 

緣由分析

系統中打開的文件數已經達到內核 fs.fs-max 的限制;

解決方法

1、打開 /etc/sysctl.conf,添加或修改 fs-max 值:

fs.file-max = 65535

2、修改完畢後,執行 sysctl -p 生效,執行以下命令驗證:

# cat /proc/sys/fs/file-max

Too many open files

問題現象

執行任何命令終端都報出:Too many open files 的錯誤;

緣由分析

文件打開數已經達到此用戶的最大限制;

解決方法

1、打開 /etc/security/limits.conf,添加或者修改以下內容:

user     soft    nofile      1024 

user     hard    nofile      65536

修改 user     soft    nofile      1024 裏面的1024,此值不該超過 hard nofile 裏的值

2、從新登陸,執行 ulimit -n 驗證。

相關文章
相關標籤/搜索