導航:首頁 > 文件管理 > 描述符上限配置文件

描述符上限配置文件

發布時間:2023-01-20 15:21:36

1. linux 文件描述符最大是多少

人們常說linux最大有65536個文件描述符,是由於常用linux內核的默認值決定的,實際上是可以通過修改內核突破的。
了解下文件描述符,內核(kernel)利用文件描述符(file descriptor)來訪問文件。文件描述符是非負整數。打開現存文件或新建文件時,內核會返回一個文件描述符。讀寫文件也需要使用文件描述符來指定待讀寫的文件。
文件描述符的有效范圍是 0 到 OPEN_MAX。一般來說,每個進程最多可以打開 64 個文件(0 — 63)。對於 FreeBSD 5.2.1、Mac OS X 10.3 和 Solaris 9 來說,每個進程最多可以打開文件的多少取決於系統內存的大小,int 的大小,以及系統管理員設定的限制。Linux 2.4.22 強制規定最多不能超過 1,048,576 。

2. 文件描述符是什麼

問題一:文件描述符和文件指針的區別 文件描述符:在linux系統中打開文件就會獲得文件描述符,它是個很小的正整數。每個進程在PCB(Process Control Block)中保存著一份文件描述符表,文件描述符就是這個表的索引,每個表項都有一個指向已打開文件的指針。
文件指針:C語言中使用文件指針做為I/O的句柄。文件指針指向進程用戶區中的一個被稱為FILE結構的數據結構。FILE結構包括一個緩沖區和一個文件描述符。而文件描述符是文件描述符表的一個索引,因此從某種意義上說文件指針就是句柄的句柄(在Windows系統上,文件描述符被稱作文件句柄)。

問題二:誰能解釋一下文件描述符標志? 文件描述符非負整數打現存文件或新建文件內核返文件描述符讀寫文件需要使用文件描述符指定待讀寫文件 習慣標准輸入(standard input)文件描述符 0標准輸(standard output) 1標准錯誤(standard error) 2盡管種習慣並非 Unix 內核特性些 shell 應用程序都使用種習慣內核遵循種習慣應用程序能使用 POSIX 定義 STDIN_FILENO、STDOUT_FILENO STDERR_FILENO 代替 0、1、2三符號量定義位於文件 unistd.h 文件描述符效范圍 0 OPEN_MAX般說每進程打 64 文件(0 ― 63)於 FreeBSD 5.2.1、Mac OS X 10.3 Solaris 9 說每進程打文件少取決於系統內存int 及系統管理員設定限制

問題三:文件描述符的定義數量 如何在不同平台上定義文件描述符的數量文件描述符極限以及可分配給進程的最大大小由資源限制來定義。這些值應當按照在WebLogicServer文檔中建議的、特定於操作系統的文件描述符值來設置:對於WLS8.1:調整硬體、操作系統和網路性能對於WLS7.0:調整硬體、操作系統和網路性能對於WLS6.1:調整硬體、操作系統和網路性能Unix和Linux都有文件描述符。不過,二者的主要區別在於如何設置文件描述符的硬極限值、預設值和配置過程。Solaris/usr/bin/ulimit實用程序定義允許單個進程使用的文件描述符的數量。它的最大值在rlim_fd_max中定義,在預設情況下,它設置為65,536。只有root用戶才能修改這些內核值。Linux管理用戶可以在etc/security/limits.conf配置文件中設置他們的文件描述符極限,如下例所示。softnofile1024hardnofile4096系統級文件描述符極限還可以通過將以下三行添加到/etc/rc.d/rc.local啟動腳本中來設置:#Increasesystem-widefiledescriptorlimit.echo4096>/proc/sys/fs/file-maxecho16384>/proc/sys/fs/inode-maxWindows在Windows操作系統上,文件描述符被稱作文件句柄。在Windows2000伺服器上,打開文件的句柄極限設置為16,384。此數量可以在任務管理器的性能摘要中監視。HP-UXnfile定義打開文件的最大數量。此值通常由以下公式來確定:((NPROC*2)+1000),其中NPROC通常為:((MAXUSERS*5)+64)。如果MAXUSERS等於400,則經過計算得到此值為5128。通常可以將此值設高一些。maxfiles是每個進程的軟文件極限,maxfiles_lim是每個進程的硬文件極限。AIX文件描述符極限在/etc/security/limits文件中設置,它的預設值是2000。此極限可以通過ulimit命令或setrlimit子常式來更改。最大大小由OPEN_MAX常數來定義。

問題四:文件描述符可以是0嗎 文件描述符是一個簡單的整數,用以標明每一個被進程所打開的文件和socket。
第一個打開的文件是0,第二個是1,依此類推。Unix 操作系統通常給每個進程能打開的文件數量強加一個限制。更甚的是,unix 通常有一個系統級的限制。 os.chinauni

問題五:如何判斷文件描述符在fd open 一個文件將返回一個文件描述符。 0 - 返回的文件描述符 就是已經打開的。 /proc/pid/fd 下面為該進程打開的文件描述符 如果我的回答沒能幫助您,請繼續追問。

問題六:Linux查看進程打開多少文件描述符命令 linux系統下查看進程打開文件在/proc下,對應每個進程有一個以進程號命名的目錄,該目錄下有一個fd目錄,該目錄下面的每個文件是一個符號連接,其文件名對應該進程佔用的一個文件描述符,而連接指向的內容表示文件描述符對應的實際文件,有多少個文件描述符表示該進程打開了多少文件。
另外Linux
默認的進程打開文件上限是1024個,可以通過ulimit
-n查看。很多系統上限可以通過修改/etc/security/limits.conf文件改變,這個文件有詳細的注釋,對如何修改做了說明。如果希望
把所有用戶的進程打開文件上限改為65536,可以加入下面兩行
* soft nofile 65535
* hard nofile 65535
還可以只真對某個用戶或某個組做修改,具體方法參見文件注釋。修改後需要重新啟動系統才能生效。

問題七:linux 文件描述符 3是什麼?例如 0 1 2代表標準的輸出輸入和出錯,但是3,4又是什麼的呢? 其他已經被打開的文件

問題八:文件描述符掛起是什麼意思 具體操作,需要修改兩處,並且需重新啟動Linux伺服器。首先SSH登錄伺服器,執行ulimit-a查看當前限制。這一步是可選,主要是看下限制,心裡有數。第一處修改:vim/etc/security/limits.conf在文件尾部增加:*softnofile65535*hardno

問題九:有人了解java與linux文件描述符之間的關系嗎 linux文件描述符? 可以認為是linux下的任務管理中打開文件的索引表,是系統中使用的。。。。。。。java是一個平台、一種編程語言。。。。。。不知道要怎麼比較了。

問題十:文件描述符fb和tcp連接數有什麼關系 C10K的問題在上個世紀90年代就被提出來了。大概的意思是當用戶數超過1萬時,很多設計不良好的網路服務程序性能都將急劇下降、甚至癱瘓。並且,這個問題並不能通過升級硬體設備解決,是操作系統固有的問題,也就是說,如果你的伺服器最高能支撐1000個並發,盡管你升級了計算能力高一倍的 cpu,內存再翻一番,硬碟轉速在快一倍,也無法支撐2000個並發。
經典的網路編程模型有4個:
1. Serve one client with each thread/process, and use blocking I/O。即對每個客戶都使用不同的線程或進程進行服務,在每個線程或進程中使用阻塞I/O。這是小程序和java常用的策略,對於互動式的應用也是常見的選擇,這種策略很能難滿足高性能程序的需求,好處是實現極其簡單,容易實現復雜的交互邏輯。我們常用的Apache、ftpd等都是這種工作。
2. Serve many clients with single thread, and use nonblocking I/O and readiness notification。即對所有的客戶使用單一一個線程或進程進行服務,在這個線程或進程里,採用非同步IO的策略。這是經典模型,優點在於實現較簡單,方便移植,也能提供足夠的性能;缺點在於無法充分利用多CPU的資源。
3. Serve many clients with each thread, and use nonblocking I/O and readiness notification 對經典模型2的簡單改進,仍然採用非同步IO的策略,但對所有的客戶使用多個線程或進程進行服務。缺點是容易在多線程並發上出bug,甚至某些OS不支持多線程進行readiness notification
4. Serve many clients with each thread, and use asynchronous I/O 在有AI/O支持的OS上,能提供相當高的性能。不過AI/O編程模型和經典模型差別相當大,基本上很難寫出一個框架同時支持AI/O和經典模型。這個模型主要是用於window平台上。

3. linux 如何設置進程所能打開的最大文件描述符個數

進程最大打開文件描述符數:user limit中nofile的soft limit
a. 查看
$ ulimit -n
1700000
2. 設置
a. 臨時性:通過ulimit -Sn設置最大打開文件描述符數的soft limit,注意soft limit不能大於hard limit(ulimit -Hn可查看hard limit),另外ulimit -n默認查看的是soft limit,但是ulimit -n 1800000則是同時設置soft limit和hard limit。對於非root用戶只能設置比原來小的hard limit。
查看hard limit:
$ ulimit -Hn
1700000
設置soft limit,必須小於hard limit:
$ ulimit -Sn 1600000
2. 永久性:上面的方法只是臨時性的,注銷重新登錄就失效了,而且不能增大hard limit,只能在hard limit范圍內修改soft limit。若要使修改永久有效,則需要在/etc/security/limits.conf中進行設置(需要root許可權),可添加如下兩行,表示用戶chanon最大打開文件描述符數的soft limit為1800000,hard limit為2000000。以下設置需要注銷之後重新登錄才能生效:
chanon soft nofile 1800000
chanon hard nofile 2000000
設置nofile的hard limit還有一點要注意的就是hard limit不能大於/proc/sys/fs/nr_open,假如hard limit大於nr_open,注銷後無法正常登錄。可以修改nr_open的值:
# echo 2000000 > /proc/sys/fs/nr_open

4. ubuntuserver修改文件描述符最大限制

ubuntuserver修改文件描述符最大限制是1024。1024是文件的二進制,修改文件要按照1024的標准。二進制數據是用0和1兩個數碼來表示的數。而2的10次恰好等於1024,所以為了方便就用了1024進制。

5. 如何設置合理的mysql的參數

[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock

basedir = /usr/local/mysql
datadir = /data/mysql
pid-file = /data/mysql/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1 #表示是本機的序號為1,一般來講就是master的意思

skip-name-resolve
# 禁止MySQL對外部連接進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間。但需要注意,如果開啟該選項,
# 則所有遠程主機連接授權都要使用IP地址方式,否則MySQL將無法正常處理連接請求

#skip-networking

back_log = 600
# MySQL能有的連接數量。當主要MySQL線程在一個很短時間內得到非常多的連接請求,這就起作用,
# 然後主線程花些時間(盡管很短)檢查連接並且啟動一個新線程。back_log值指出在MySQL暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中。
# 如果期望在一個短時間內有很多連接,你需要增加它。也就是說,如果MySQL的連接數據達到max_connections時,新來的請求將會被存在堆棧中,
# 以等待某一連接釋放資源,該堆棧的數量即back_log,如果等待連接的數量超過back_log,將不被授予連接資源。
# 另外,這值(back_log)限於您的操作系統對到來的TCP/IP連接的偵聽隊列的大小。
# 你的操作系統在這個隊列大小上有它自己的限制(可以檢查你的OS文檔找出這個變數的最大值),試圖設定back_log高於你的操作系統的限制將是無效的。

max_connections = 1000
#
MySQL的最大連接數,如果伺服器的並發連接請求量比較大,建議調高此值,以增加並行連接數量,當然這建立在機器能支撐的情況下,因為如果連接數越多,
介於MySQL會為每個連接提供連接緩沖區,就會開銷越多的內存,所以要適當調整該值,不能盲目提高設值。可以過'conn%'通配符查看當前狀態的連接
數量,以定奪該值的大小。

max_connect_errors = 6000
# 對於同一主機,如果有超出該參數值個數的中斷錯誤連接,則該主機將被禁止連接。如需對該主機進行解禁,執行:FLUSH HOST。

open_files_limit = 65535
# MySQL打開的文件描述符限制,默認最小1024;當open_files_limit沒有被配置的時候,比較max_connections*5和ulimit -n的值,哪個大用哪個,
# 當open_file_limit被配置的時候,比較open_files_limit和max_connections*5的值,哪個大用哪個。

table_open_cache = 128
# MySQL每打開一個表,都會讀入一些數據到table_open_cache緩存中,當MySQL在這個緩存中找不到相應信息時,才會去磁碟上讀取。默認值64
# 假定系統有200個並發連接,則需將此參數設置為200*N(N為每個連接所需的文件描述符數目);
# 當把table_open_cache設置為很大時,如果系統處理不了那麼多文件描述符,那麼就會出現客戶端失效,連接不上

max_allowed_packet = 4M
# 接受的數據包大小;增加該變數的值十分安全,這是因為僅當需要時才會分配額外內存。例如,僅當你發出長查詢或MySQLd必須返回大的結果行時MySQLd才會分配更多內存。
# 該變數之所以取較小默認值是一種預防措施,以捕獲客戶端和伺服器之間的錯誤信息包,並確保不會因偶然使用大的信息包而導致內存溢出。

binlog_cache_size = 1M
# 一個事務,在沒有提交的時候,產生的日誌,記錄到Cache中;等到事務提交需要提交的時候,則把日誌持久化到磁碟。默認binlog_cache_size大小32K

max_heap_table_size = 8M
# 定義了用戶可以創建的內存表(memory table)的大小。這個值用來計算內存表的最大行數值。這個變數支持動態改變

tmp_table_size = 16M
# MySQL的heap(堆積)表緩沖大小。所有聯合在一個DML指令內完成,並且大多數聯合甚至可以不用臨時表即可以完成。
# 大多數臨時表是基於內存的(HEAP)表。具有大的記錄長度的臨時表 (所有列的長度的和)或包含BLOB列的表存儲在硬碟上。
#

如果某個內部heap(堆積)表大小超過tmp_table_size,MySQL可以根據需要自動將內存中的heap表改為基於硬碟的MyISAM表。
還可以通過設置tmp_table_size選項來增加臨時表的大小。也就是說,如果調高該值,MySQL同時將增加heap表的大小,可達到提高聯接查
詢速度的效果

read_buffer_size = 2M
# MySQL讀入緩沖區大小。對表進行順序掃描的請求將分配一個讀入緩沖區,MySQL會為它分配一段內存緩沖區。read_buffer_size變數控制這一緩沖區的大小。
# 如果對表的順序掃描請求非常頻繁,並且你認為頻繁掃描進行得太慢,可以通過增加該變數值以及內存緩沖區大小提高其性能

read_rnd_buffer_size = 8M
# MySQL的隨機讀緩沖區大小。當按任意順序讀取行時(例如,按照排序順序),將分配一個隨機讀緩存區。進行排序查詢時,
# MySQL會首先掃描一遍該緩沖,以避免磁碟搜索,提高查詢速度,如果需要排序大量數據,可適當調高該值。但MySQL會為每個客戶連接發放該緩沖空間,所以應盡量適當設置該值,以避免內存開銷過大

sort_buffer_size = 8M
# MySQL執行排序使用的緩沖大小。如果想要增加ORDER BY的速度,首先看是否可以讓MySQL使用索引而不是額外的排序階段。
# 如果不能,可以嘗試增加sort_buffer_size變數的大小

join_buffer_size = 8M
# 聯合查詢操作所能使用的緩沖區大小,和sort_buffer_size一樣,該參數對應的分配內存也是每連接獨享

thread_cache_size = 8
# 這個值(默認8)表示可以重新利用保存在緩存中線程的數量,當斷開連接時如果緩存中還有空間,那麼客戶端的線程將被放到緩存中,
# 如果線程重新被請求,那麼請求將從緩存中讀取,如果緩存中是空的或者是新的請求,那麼這個線程將被重新創建,如果有很多新的線程,
# 增加這個值可以改善系統性能.通過比較Connections和Threads_created狀態的變數,可以看到這個變數的作用。(–>表示要調整的值)
# 根據物理內存設置規則如下:
# 1G —> 8
# 2G —> 16
# 3G —> 32
# 大於3G —> 64

query_cache_size = 8M
#MySQL的查詢緩沖大小(從4.0.1開始,MySQL提供了查詢緩沖機制)使用查詢緩沖,MySQL將SELECT語句和查詢結果存放在緩沖區中,
# 今後對於同樣的SELECT語句(區分大小寫),將直接從緩沖區中讀取結果。根據MySQL用戶手冊,使用查詢緩沖最多可以達到238%的效率。
# 通過檢查狀態值'Qcache_%',可以知道query_cache_size設置是否合理:如果Qcache_lowmem_prunes的值非常大,則表明經常出現緩沖不夠的情況,
# 如果Qcache_hits的值也非常大,則表明查詢緩沖使用非常頻繁,此時需要增加緩沖大小;如果Qcache_hits的值不大,則表明你的查詢重復率很低,
# 這種情況下使用查詢緩沖反而會影響效率,那麼可以考慮不用查詢緩沖。此外,在SELECT語句中加入SQL_NO_CACHE可以明確表示不使用查詢緩沖

query_cache_limit = 2M
#指定單個查詢能夠使用的緩沖區大小,默認1M

key_buffer_size = 4M
#指定用於索引的緩沖區大小,增加它可得到更好處理的索引(對所有讀和多重寫),到你能負擔得起那樣多。如果你使它太大,
# 系統將開始換頁並且真的變慢了。對於內存在4GB左右的伺服器該參數可設置為384M或512M。通過檢查狀態值Key_read_requests和Key_reads,
# 可以知道key_buffer_size設置是否合理。比例key_reads/key_read_requests應該盡可能的低,
# 至少是1:100,1:1000更好(上述狀態值可以使用SHOW STATUS LIKE 'key_read%'獲得)。注意:該參數值設置的過大反而會是伺服器整體效率降低

ft_min_word_len = 4
# 分詞詞彙最小長度,默認4

transaction_isolation = REPEATABLE-READ
# MySQL支持4種事務隔離級別,他們分別是:
# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.
# 如沒有指定,MySQL默認採用的是REPEATABLE-READ,ORACLE默認的是READ-COMMITTED

log_bin = mysql-bin
binlog_format = mixed
expire_logs_days = 30 #超過30天的binlog刪除

log_error = /data/mysql/mysql-error.log #錯誤日誌路徑
slow_query_log = 1
long_query_time = 1 #慢查詢時間 超過1秒則為慢查詢
slow_query_log_file = /data/mysql/mysql-slow.log

performance_schema = 0
explicit_defaults_for_timestamp

#lower_case_table_names = 1 #不區分大小寫

skip-external-locking #MySQL選項以避免外部鎖定。該選項默認開啟

default-storage-engine = InnoDB #默認存儲引擎

innodb_file_per_table = 1
# InnoDB為獨立表空間模式,每個資料庫的每個表都會生成一個數據空間
# 獨立表空間優點:
# 1.每個表都有自已獨立的表空間。
# 2.每個表的數據和索引都會存在自已的表空間中。
# 3.可以實現單表在不同的資料庫中移動。
# 4.空間可以回收(除drop table操作處,表空不能自已回收)
# 缺點:
# 單表增加過大,如超過100G
# 結論:
# 共享表空間在Insert操作上少有優勢。其它都沒獨立表空間表現好。當啟用獨立表空間時,請合理調整:innodb_open_files

innodb_open_files = 500
# 限制Innodb能打開的表的數據,如果庫里的表特別多的情況,請增加這個。這個值默認是300

innodb_buffer_pool_size = 64M
# InnoDB使用一個緩沖池來保存索引和原始數據, 不像MyISAM.
# 這里你設置越大,你在存取表裡面數據時所需要的磁碟I/O越少.
# 在一個獨立使用的資料庫伺服器上,你可以設置這個變數到伺服器物理內存大小的80%
# 不要設置過大,否則,由於物理內存的競爭可能導致操作系統的換頁顛簸.
# 注意在32位系統上你每個進程可能被限制在 2-3.5G 用戶層面內存限制,
# 所以不要設置的太高.

innodb_write_io_threads = 4
innodb_read_io_threads = 4
# innodb使用後台線程處理數據頁上的讀寫 I/O(輸入輸出)請求,根據你的 CPU 核數來更改,默認是4
# 注:這兩個參數不支持動態改變,需要把該參數加入到my.cnf里,修改完後重啟MySQL服務,允許值的范圍從 1-64

innodb_thread_concurrency = 0
# 默認設置為 0,表示不限制並發數,這里推薦設置為0,更好去發揮CPU多核處理能力,提高並發量

innodb_purge_threads = 1
# InnoDB中的清除操作是一類定期回收無用數據的操作。在之前的幾個版本中,清除操作是主線程的一部分,這意味著運行時它可能會堵塞其它的資料庫操作。
# 從MySQL5.5.X版本開始,該操作運行於獨立的線程中,並支持更多的並發數。用戶可通過設置innodb_purge_threads配置參數來選擇清除操作是否使用單
# 獨線程,默認情況下參數設置為0(不使用單獨線程),設置為 1 時表示使用單獨的清除線程。建議為1

innodb_flush_log_at_trx_commit = 2
# 0:如果innodb_flush_log_at_trx_commit的值為0,log buffer每秒就會被刷寫日誌文件到磁碟,提交事務的時候不做任何操作(執行是由mysql的master thread線程來執行的。
# 主線程中每秒會將重做日誌緩沖寫入磁碟的重做日誌文件(REDO LOG)中。不論事務是否已經提交)默認的日誌文件是ib_logfile0,ib_logfile1
# 1:當設為默認值1的時候,每次提交事務的時候,都會將log buffer刷寫到日誌。
# 2:如果設為2,每次提交事務都會寫日誌,但並不會執行刷的操作。每秒定時會刷到日誌文件。要注意的是,並不能保證100%每秒一定都會刷到磁碟,這要取決於進程的調度。
# 每次事務提交的時候將數據寫入事務日誌,而這里的寫入僅是調用了文件系統的寫入操作,而文件系統是有 緩存的,所以這個寫入並不能保證數據已經寫入到物理磁碟
# 默認值1是為了保證完整的ACID。當然,你可以將這個配置項設為1以外的值來換取更高的性能,但是在系統崩潰的時候,你將會丟失1秒的數據。
# 設為0的話,mysqld進程崩潰的時候,就會丟失最後1秒的事務。設為2,只有在操作系統崩潰或者斷電的時候才會丟失最後1秒的數據。InnoDB在做恢復的時候會忽略這個值。
# 總結
# 設為1當然是最安全的,但性能頁是最差的(相對其他兩個參數而言,但不是不能接受)。如果對數據一致性和完整性要求不高,完全可以設為2,如果只最求性能,例如高並發寫的日誌伺服器,設為0來獲得更高性能

innodb_log_buffer_size = 2M
# 此參數確定些日誌文件所用的內存大小,以M為單位。緩沖區更大能提高性能,但意外的故障將會丟失數據。MySQL開發人員建議設置為1-8M之間

innodb_log_file_size = 32M
# 此參數確定數據日誌文件的大小,更大的設置可以提高性能,但也會增加恢復故障資料庫所需的時間

innodb_log_files_in_group = 3
# 為提高性能,MySQL可以以循環方式將日誌文件寫到多個文件。推薦設置為3

innodb_max_dirty_pages_pct = 90
# innodb主線程刷新緩存池中的數據,使臟數據比例小於90%

innodb_lock_wait_timeout = 120
# InnoDB事務在被回滾之前可以等待一個鎖定的超時秒數。InnoDB在它自己的鎖定表中自動檢測事務死鎖並且回滾事務。InnoDB用LOCK TABLES語句注意到鎖定設置。默認值是50秒

bulk_insert_buffer_size = 8M
# 批量插入緩存大小, 這個參數是針對MyISAM存儲引擎來說的。適用於在一次性插入100-1000+條記錄時, 提高效率。默認值是8M。可以針對數據量的大小,翻倍增加。

myisam_sort_buffer_size = 8M
# MyISAM設置恢復表之時使用的緩沖區的尺寸,當在REPAIR TABLE或用CREATE INDEX創建索引或ALTER TABLE過程中排序 MyISAM索引分配的緩沖區

myisam_max_sort_file_size = 10G
# 如果臨時文件會變得超過索引,不要使用快速排序索引方法來創建一個索引。注釋:這個參數以位元組的形式給出

myisam_repair_threads = 1
# 如果該值大於1,在Repair by sorting過程中並行創建MyISAM表索引(每個索引在自己的線程內)

interactive_timeout = 28800
# 伺服器關閉互動式連接前等待活動的秒數。互動式客戶端定義為在mysql_real_connect()中使用CLIENT_INTERACTIVE選項的客戶端。默認值:28800秒(8小時)

wait_timeout = 28800
# 伺服器關閉非交互連接之前等待活動的秒數。在線程啟動時,根據全局wait_timeout值或全局interactive_timeout值初始化會話wait_timeout值,
# 取決於客戶端類型(由mysql_real_connect()的連接選項CLIENT_INTERACTIVE定義)。參數默認值:28800秒(8小時)
# MySQL伺服器所支持的最大連接數是有上限的,因為每個連接的建立都會消耗內存,因此我們希望客戶端在連接到MySQL Server處理完相應的操作後,
# 應該斷開連接並釋放佔用的內存。如果你的MySQL Server有大量的閑置連接,他們不僅會白白消耗內存,而且如果連接一直在累加而不斷開,
# 最終肯定會達到MySQL Server的連接上限數,這會報'too many connections'的錯誤。對於wait_timeout的值設定,應該根據系統的運行情況來判斷。
# 在系統運行一段時間後,可以通過show processlist命令查看當前系統的連接狀態,如果發現有大量的sleep狀態的連接進程,則說明該參數設置的過大,
# 可以進行適當的調整小些。要同時設置interactive_timeout和wait_timeout才會生效。

[mysqlmp]
quick
max_allowed_packet = 16M #伺服器發送和接受的最大包長度
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M

6. linux 文件描述符最大是多少怎麼計算的

最大值是系統相關的,linux shell 輸入如下命令就知道,其中的「-n: file descriptors」就是最大限制值。
# ulimit -a
-f: file size (blocks) unlimited
-t: cpu time (seconds) unlimited
-d: data seg size (kb) unlimited
-s: stack size (kb) 8192
-c: core file size (blocks) 0
-m: resident set size (kb) unlimited
-l: locked memory (kb) 64
-p: processes 128
-n: file descriptors 1024
-v: address space (kb) unlimited
-w: locks unlimited
-e: scheling priority 0
-r: real-time priority 0

7. 如何在Linux下增大可打開文件描述符的數目

在安裝Oracle Grid Infrastructure檢查約束時遇到一個錯誤,大體是說當前可打開的文件描述符的最大數為1024,而要求是65536。
於是在gird用戶下執行ulimit -a,顯示可打開的最大文件數為1024,這是默認值;執行ulimit -n 65536不允許修改,轉到root下面執行ulimit -n 65536,執行ulimit -a 顯示為65536,在grid用戶下執行依然為1024。當時想到用sudo的方式執行,對gird用戶賦予所有許可權,執行ulimit -n 65536依然報錯。
後來想起在配置/etc/profile文件里,對oracle有ulimit -n 65536的命令,如下:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
添加grid用戶後,source /etc/profile
if [ $USER = "oracle" ] || [ $USER = "grid" ] ; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
在grid執行ulimit -a依然為1024,後來檢查安裝步驟發現忘了在/etc/security/limits中添加grid用戶了,添加下面即可:
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
看來是作用域的問題,增大文件描述符。

8. 文件描述符的定義數量

如何在不同平台上定義文件描述符的數量
文件描述符極限以及可分配給進程的最大大小由資源限制來定義。這些值應當按照在WebLogicServer文檔中建議的、特定於操作系統的文件描述符值來設置:
對於WLS8.1:調整硬體、操作系統和網路性能
對於WLS7.0:調整硬體、操作系統和網路性能
對於WLS6.1:調整硬體、操作系統和網路性能
Unix和Linux都有文件描述符。不過,二者的主要區別在於如何設置文件描述符的硬極限值、預設值和配置過程。
Solaris
/usr/bin/ulimit實用程序定義允許單個進程使用的文件描述符的數量。它的最大值在rlim_fd_max中定義,在預設情況下,它設置為65,536。只有root用戶才能修改這些內核值。
Linux
管理用戶可以在etc/security/limits.conf配置文件中設置他們的文件描述符極限,如下例所示。
softnofile1024
hardnofile4096
系統級文件描述符極限還可以通過將以下三行添加到/etc/rc.d/rc.local啟動腳本中來設置:
#Increasesystem-widefiledescriptorlimit.
echo4096>/proc/sys/fs/file-max
echo16384>/proc/sys/fs/inode-max
Windows
在Windows操作系統上,文件描述符被稱作文件句柄。在Windows2000伺服器上,打開文件的句柄極限設置為16,384。此數量可以在任務管理器的性能摘要中監視。
HP-UX
nfile定義打開文件的最大數量。此值通常由以下公式來確定:((NPROC*2)+1000),其中NPROC通常為:((MAXUSERS*5)+64)。如果MAXUSERS等於400,則經過計算得到此值為5128。通常可以將此值設高一些。maxfiles是每個進程的軟文件極限,maxfiles_lim是每個進程的硬文件極限。
AIX

文件描述符極限在/etc/security/limits文件中設置,它的預設值是2000。此極限可以通過ulimit命令或setrlimit子常式來更改。最大大小由OPEN_MAX常數來定義。

9. 怎麼查看mysql文件描述符限制

何解決
第一步:設置OS參數(如果你有許可權的話):
文件/etc/security/limits.conf新增如下行:
mysql soft nofile 65535
mysql hard nofile 65535
上面的配置,是OS限制各個用戶能夠打開的文件描述符限制(hard soft區別參看man ulimit),新增上面兩行,表示mysql用戶能夠打開65535個文件描述符(可以使用lsof -u mysql|wc -l查看當前打開了多少個文件描述符)。
第二步:修改MySQL參數:
在MySQL配置文件my.cnf中新增下面的行

閱讀全文

與描述符上限配置文件相關的資料

熱點內容
java引用傳遞和值傳遞 瀏覽:109
oracle下載安裝教程 瀏覽:854
php篩選資料庫 瀏覽:830
怎麼用手機看wlan密碼 瀏覽:745
奧維地圖導入的文件在哪裡 瀏覽:364
sdltrados2014教程 瀏覽:43
培訓制度文件在哪裡找 瀏覽:601
勒索病毒防疫工具 瀏覽:861
win10c不能打開 瀏覽:375
xfplay影音先鋒蘋果版 瀏覽:597
兩個文件打開兩個word 瀏覽:921
蘋果6s桌面圖標輕微抖動 瀏覽:326
如何刪除手機中看不見的臨時文件 瀏覽:469
安卓412原生鎖屏apk 瀏覽:464
書加加緩存文件在哪裡 瀏覽:635
dock是word文件嗎 瀏覽:267
社保公司新辦去哪個網站下載資料 瀏覽:640
三維標注數據怎麼填寫 瀏覽:765
數據線斷在哪裡取出來 瀏覽:522
word最好的文件 瀏覽:345

友情鏈接