/proc虛擬檔案系統與系統核心引數修改方法
/proc虛擬檔案系統與系統核心引數修改方法
/proc 虛擬檔案系統用作檢視和配置系統核心引數的介面。/proc 是一個層次結構的目錄其中包含了
系統核心的當前設定值。之所以稱為/proc 是因為該虛擬檔案系統通常傳送資訊給別的作業系統程式。
虛擬檔案系統不會實際的存在於磁碟中。/proc 虛擬檔案在記憶體中動態的根據核心引數建立。使用
man proc 可以檢視到很多與 /proc 虛擬檔案系統相關的資訊。可以使用 cat,less,more,view,grep
等命令檢視/proc 虛擬檔案。有些/proc 檔案的檢視需要 root 許可權。
常用的/proc虛擬檔案
/proc/cpuinfo CPU與系統架構資訊。
/proc/meminfo 空閒的與已經分配使用的實體記憶體,虛擬記憶體資訊。
/proc/net 存放網路資訊的目錄。
/proc/mounts 所有已掛載的檔案系統。
/proc/diskstats 每一個磁碟的I/O 統計資訊。
/proc/devices PCI 裝置。
/proc/filesystems 編譯進核心的檔案系統。
/proc/sys 存放與系統核心相關變數的目錄。其中的一些變數可以透過sysctl 設定。
/proc/cmdline 在啟動的時候傳遞給核心的引數。
/proc/version 作業系統版本資訊。
檢視CPU 的詳細資訊:
[oracle@zeng ~]$ less /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Pentium(R) Dual-Core CPU T4400 @ 2.20GHz
stepping : 10
cpu MHz : 0.000
cache size : 6144 KB
fdiv_bug : no
第一塊CPU編號為0,依此類推。在安裝oracle資料庫的時候需要檢視該資訊。以確定CPU是否滿足
安裝oracle資料庫軟體的先決條件。
檢視實體記憶體,虛擬記憶體資訊:
[oracle@zeng ~]$ grep MemTotal /proc/meminfo
MemTotal: 911564 kB
[oracle@zeng ~]$ grep SwapTotal /proc/meminfo
SwapTotal: 3481592 kB
在安裝oracle 資料庫軟體的時候需要檢視理記憶體,虛擬記憶體資訊。以確定是否滿足oracle 文件
中給出的記憶體需求。我們不僅關係實體記憶體,虛擬記憶體的總量,還關係他們的使用情況。
[oracle@zeng ~]$ free
total used free shared buffers cached
Mem: 911564 273168 638396 0 84548 73424
-/+ buffers/cache: 115196 796368
Swap: 3481592 0 3481592
free 命令列出當前系統中實體記憶體,虛擬記憶體的分配情況。如果發現實體記憶體不足可以選擇新增
新增記憶體條,或者把不重要的程式結束掉,釋放記憶體。虛擬記憶體不足可以為系統新增一個swap file
增加虛擬記憶體的容量。
檢視核心引數:
[oracle@zeng ~]$ grep . /proc/sys/kernel/*
/proc/sys/kernel/acct:4 2 30
/proc/sys/kernel/acpi_video_flags:0
/proc/sys/kernel/auto_msgmni:1
/proc/sys/kernel/blk_iopoll:1
/proc/sys/kernel/bootloader_type:113
/proc/sys/kernel/bootloader_version:1
grep: /proc/sys/kernel/cad_pid: Permission denied
/proc/sys/kernel/core_pattern:|/usr/libexec/abrt-hook-ccpp /var/spool/abrt %p %s %u %c
/proc/sys/kernel/core_pipe_limit:4
/proc/sys/kernel/core_uses_pid:1
/proc/sys/kernel/ctrl-alt-del:0
/proc/sys/kernel/domainname:(none)
/proc/sys/kernel/exec-shield:1
/proc/sys/kernel/ftrace_dump_on_oops:0
/proc/sys/kernel/hostname:zeng
使用grep 命令列印出/proc/sys/kernel 目錄下檔案中的所有的資訊。也可以使用grep 只檢視
某個引數的值。
在安裝oracle 資料庫軟體的時候你需要先檢視下系統的核心設定引數,然後再決定應該怎麼修改。
另外一種檢視與修改核心引數的方式是使用sysctl 使用程式。
檢視所有的核心引數,在檢視核心引數的時候與輸出重定向聯絡起來使用是一個好主意,可以把
輸出的資訊儲存為文字,慢慢的檢視。
[oracle@zeng ~]$ sysctl -a | less
error: permission denied on key 'kernel.cad_pid'
kernel.sched_child_runs_first = 0
kernel.sched_min_granularity_ns = 1000000
kernel.sched_latency_ns = 5000000
kernel.sched_wakeup_granularity_ns = 1000000
kernel.sched_shares_ratelimit = 250000
-a 顯示當前所有系統變數的值。
使用sysctl修改核心引數:
檢視下原來的核心引數(sem 訊號量)。
[root@zeng ~]# grep . /proc/sys/kernel/*| grep sem
/proc/sys/kernel/sem:250 32000 100 128
修改semd的值,這些值以陣列的形式給出。注:核心引數不要無理由的隨便改變,這裡僅為測試。
[root@zeng ~]# sysctl -w kernel.sem="250 32000 100 300"
kernel.sem = 250 32000 100 300
-w 指定修改某個核心引數值。(該引數設定臨時有效,重啟以後就無效了。)
確定修改以後的值
[root@zeng ~]# grep . /proc/sys/kernel/*| grep sem
/proc/sys/kernel/sem:250 32000 100 300
透過/etc/sysctl.conf 檔案來修該核心引數:
檔案中的第一句話表明了該檔案的用途。並把kernel.sem的值修改為下面的樣式。退出並儲存。
root@zeng ~]# vi /etc/sysctl.conf
# Kernel sysctl configuration file for Oracle Linux
kernel.sem = 250 32000 100 400
然後使用sysctl -p 命令使/etc/sysctl.conf 中的條目例項化成當前的核心引數值。
[root@zeng ~]# sysctl -p
確定修改後的情況:
[root@zeng ~]# grep . /proc/sys/kernel/*| grep sem
grep: /proc/sys/kernel/keys: Invalid argument
/proc/sys/kernel/sem:250 32000 100 400
注:建議在修改 /etc/sysctl.conf 檔案前進行備份。以方便將來審計那些引數發生了變化,並
方便反轉。
使用echo 修改核心引數:
現在把核心引數修改回未修改前的值。
[root@zeng ~]# echo 250 32000 100 128 > /proc/sys/kernel/sem
確定命令的執行結果
[root@zeng ~]# grep . /proc/sys/kernel/*| grep sem
/proc/sys/kernel/sem:250 32000 100 128
該引數只是臨時有效,如果需要永久生效,應該把要修改的核心引數寫進/etc/sysctl.conf
把要修改的引數寫進/etc/sysctl.conf ,執行sysctl -p 讓系統重新讀取該檔案,把修改的
值設定為當前值。
[root@zeng ~]# echo "kernel.sem =250 32000 100 128" >> /etc/sysctl.conf
[root@zeng ~]# sysctl -p
注意是 >>而不是>,如果是>會把原來/etc/sysctl.conf 中的內容覆蓋掉。>>在檔案的末尾新增
一行。所有建議在修改/etc/sysctl.conf 前進行備份。
確定修後的結果.
[root@zeng ~]# tail -5 /etc/sysctl.conf
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.sem =250 32000 100 128
如果 /etc/sysctl.conf 中存在兩個kernel.sem 條目,後面的那個條目才有效。因為在啟動的時候
/etc/sysctl.conf 中的引數是從上到下處理的。
使用cat修改核心引數:
[root@zeng ~]# cat >> /etc/sysctl.conf <
> kernel.sem = 250 32000 100 200
> EOF
[root@zeng ~]# tail -5 /etc/sysctl.conf
net.core.wmem_max = 1048586
kernel.sem =250 32000 100 128
kernel.sem = 250 32000 100 200
只有kernel.sem = 250 32000 100 200 會生效,前一個sem 值不會生效。
小結:可以執行sysctl -w 來臨時修改核心引數,如果想讓核心引數永久更改應該透過編輯
/etc/sysctl.conf 檔案或者使用echo,cat 新增條目,並執行sysctl -p 實現。另外不要
無理由的修改核心引數,否則可能導致系統不穩定,甚至當機。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-718305/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 核心proc檔案系統與seq介面(3)---核心proc檔案底層結構淺析
- Linux系統篇-檔案系統&虛擬檔案系統Linux
- Linux 核心101:虛擬檔案系統的使命Linux
- linux修改系統引數Linux
- 從rm到linux虛擬檔案系統Linux
- 詳解 Linux 中的虛擬檔案系統Linux
- 通過虛擬機器學習作業系統引導檔案的配置虛擬機機器學習作業系統
- 分散式檔案系統(HDFS)與 linux系統檔案系統 對比分散式Linux
- Ubuntu系統中修改hosts檔案Ubuntu
- 作業系統引導和虛擬機器作業系統虛擬機
- 如何實現Windows宿主系統和虛擬機器ubuntu系統檔案互相訪問Windows虛擬機Ubuntu
- 從 lsof 開始,深入理解 Linux 虛擬檔案系統Linux
- 檔案系統(七):檔案系統崩潰一致性、方法、原理與侷限
- [武器化學習] 鯨髮卡系統虛擬卡系統任意檔案讀取漏洞poc
- 根檔案系統簡介與BusyBox構建根檔案系統
- Abp原始碼分析之虛擬檔案系統Volo.Abp.VirtualFileSystem原始碼
- win10系統修改錄音檔案中的檔名的方法Win10
- 磁碟管理與檔案系統
- 核心必須懂(二): 檔案系統初探
- 雲伺服器修改Linux系統核心的引導順序伺服器Linux
- 防火牆的虛擬系統防火牆
- Linux中proc檔案系統是什麼意思?有什麼作用?Linux
- Linux系統中虛擬裝置檔案的各種實用用法Linux
- veeambackup通過虛擬機器還原系統檔案操作說明虛擬機
- linux系統檔案開啟數Linux
- win10系統如何關閉虛擬鍵盤 win10系統關閉虛擬鍵盤的方法Win10
- 檔案系統
- linux 程式引數檔案 /proc/pid/cmdline 簡介Linux
- Windows10系統新增虛擬網路卡的方法Windows
- 檔案系統(五):exFAT 檔案系統原理詳解
- Linux系統檔案系統及檔案基礎篇Linux
- windows10系統如何修改檔案型別Windows型別
- LiteOS-A核心中的procfs檔案系統分析
- 小白自制Linux開發板 三. Linux核心與檔案系統移植Linux
- 檔案和檔案系統
- Win10系統訪問Linux子系統檔案的方法Win10Linux
- 何在Mac系統上建立大檔案?教你在Mac系統建立大檔案的方法Mac
- Windows系統常用系統引數設定文件Windows
- 虛擬化架構與Centos7系統部署架構CentOS