Linux上修改open files數目

2021-10-09 11:01:25 字數 1641 閱讀 7354

部署的伺服器和應用讀取檔案太多,導致系統執行變慢了,或者服務起不來,需要調整開啟檔案數目。

linux系統上預設的open files數目為1024, 有時應用程式會報too many open files的錯誤,是因為open files 數目不夠。

用 ulimit -a 命令可以檢視 系統對各種引數的限制;當你把open files的值增大到一定程度,你的too many open files就不會再出現了。

1)修改當前互動終端的limit值

查詢當前終端的檔案控制代碼數: ulimit -n 回車,一般的系統預設的1024.

修改檔案控制代碼數為65535,ulimit -n 65535.此時系統的檔案控制代碼數為65535.

2)將ulimit 值新增到/etc/profile檔案中(適用於有root許可權登入的系統)

為了每次系統重新啟動時,都可以獲取更大的ulimit值,將ulimit 加入到/etc/profile 檔案底部。

echo ulimit -n 65535 >>/etc/profile

source /etc/profile #載入修改後的profile

ulimit -n #顯示65535,修改完畢!

ok,好多朋友都以為大功告成了,可以突然發現自己再次登入進來的時候,ulimit的值還是1024,這是為什麼呢? 

關鍵的原因是你登入的使用者是什麼身份,是不是root使用者,由於伺服器的root使用者許可權很大,一般是不能用來登入的,都是通過自己本人的登入許可權進行登入,並通過sudo方式切換到root使用者下進行工作。 使用者登入的時候執行sh指令碼的順序:

/etc/profile.d/file

/etc/profile

/etc/bashrc

/mingjie/.bashrc

/mingjie/.bash_profile

由於ulimit -n的指令碼命令載入在第二部分,使用者登入時由於許可權原因在第二步還不能完成ulimit的修改,所以ulimit的值還是系統預設的1024。

解決辦法:

修改linux的軟硬體限制檔案/etc/security/limits.conf.

在檔案尾部新增如下**:

* soft nofile 65535

* hard nofile 65535

儲存並退出,命令說明:

domino type item value

domino是以符號@開頭的使用者名稱或組名,*表示所有使用者,type設定為hard or soft。item指定想限制的資源。如cpu,core nofile nproc or maxlogins。value是相應的限制值。

儲存後如何讓其檔案生效呢,我在網上也搜尋的很久,都沒什麼答案,最後很好笑的是,只需要重新登入一次,ulimit的值就生效了,如果還不行就 reboot(重新啟動伺服器)。

正常情況下實際就操作第一步和解決辦法那步,然後重新登入進去就可以了。

Linux上修改open files數目

linux系統上預設的open files數目為1024,有時應用程式會報too many open files的錯誤,是因為open files 數目不夠。用 ulimit a 命令可以檢視 系統對各種引數的限制 ulimit a core file size blocks,c 0 data se...

Linux 上不可修改的檔案和目錄

有時候我們需要讓乙個我們自己的目錄中的內容不能變動,也就是不允許其他人隨便刪改我們的目錄和目錄中的檔案。這裡,首先,我們需要知道兩個概念,檔案的粘滯位和屬性。檔案如果設定了粘滯位 這裡的檔案指的是目錄 那麼這個目錄中的檔案是不允許其他使用者刪除的。粘滯位設定後,在檔案的許可權中x會變成 t 或者 t...

linux上修改ssh密碼和mysql密碼

修改ssh密碼 修改mysql密碼 方法1 用set password命令 mysql u root p mysql set password for root localhost password newpass 方法2 用mysqladmin mysqladmin u root password...