我在Ubuntu 12上遇到Tomcat7打開的文件過多的問題,所以我將打開的文件數量從4096和1024分別增加到了16384。現在我沒有收到任何更多有關打開文件的錯誤,但總體CPU%似乎已上升。增加最大文件的數量是否也會在CPU時間中產生一些成本?如果沒有,爲什麼不把ulimit設置得過高呢?設置ulimit真的有什麼缺點嗎?
回答
的ulimit存在的整個原因是防止使用更多的資源的過程比是「正常」,以保護系統的整體性能。
「正常」,可根據你在做什麼,而是設置限制默認情況下會破壞的ulimit的目的,並允許任何過程中使用了可笑的資源量非常高的不同。在沒有用戶的服務器上,這不像一個大型的多用戶環境那麼重要,但它仍然是防止錯誤或被利用的進程的有用保護措施。
您的CPU可能只是上升了,因爲您的計算機現在正在做更多的工作,而不是錯誤。
PS - 你要確保沒有什麼不對你的tomcat環境太...它可能是確定有成千上萬個打開的文件,我不知道您的應用程序,但也可能是一個越過越野車的東西的跡象。如果是,你剛纔所允許的竊聽器的效果變得更糟可能更:(如果你能解釋一下爲什麼tomcat的需要大量的文件打開,很酷,但如果沒有...亞克西。
是的,它預計會有成千上萬的開放連接 - 我們通常有2000-3500個併發用戶,峯值我們通過30秒的keepalive時間進行長期連接,以避免重複SSL握手的開銷。感謝您的回答! –
成千上萬的開放套接字/併發用戶不必等於數千個打開的文件,但如果它會在你的應用程序中執行,那麼這就可以解釋爲什麼4096的默認限制會導致問題,如果問題在你打到16000個用戶之前不會再回來,我不會爲此擔心。 – user3109924
@ user3109924我的理解是套接字不過是用於通信目的的特殊**文件**。你在Unix中創建一個套接字,你得到一個文件描述符作爲返回值。所以我不明白爲什麼開放套接字/ conns不意味着打開文件描述符?解決10K問題的web服務器是否有超過10K的打開文件描述符限制? – Mikki
- 1. ConcurrentHashMap有什麼缺點嗎?
- 2. 一致散列有什麼缺點嗎?
- 3. 使用NewSequentialID有什麼缺點嗎?
- 4. 啓用git rerere有什麼缺點嗎?
- 5. 單身模式有什麼缺點嗎?
- 6. Joomla - wrapper |有什麼缺點嗎?
- 7. 在CoreAudio中,設置kAudioDevicePropertyBufferFrameSize有什麼優點/缺點?
- 8. 我可以從node.js設置ulimit嗎?
- 9. 冗餘限定符有什麼缺點嗎?有什麼好處?
- 10. 什麼缺點設置Page.ClientTarget =「uplevel」的所有網頁?
- 11. 將每個屬性設置爲強有什麼缺點?
- 12. VistaDB有什麼缺點
- 13. Typed DataSet有什麼缺點
- 14. Apache Wicket有什麼缺點?
- 15. std :: reverse_iterator有什麼缺點?
- 16. H264有什麼缺點?
- 17. Debian擠壓和設置ulimit
- 18. 「ulimit -l」是什麼意思?
- 19. has_many和has_one,有什麼優點/缺點?
- 20. 使用Maven有什麼優點/缺點?
- 21. py2exe有什麼優點/缺點
- 22. 閱讀後沒有關閉文件有什麼缺點嗎?
- 23. 在腳本中設置php.ini變量的缺點是什麼?
- 24. 組合不同的Javascript框架有什麼缺點嗎?
- 25. jQuery圓角創建的額外標記有什麼缺點嗎?
- 26. Snow Leopard新的「突然終止」機制有什麼缺點嗎?
- 27. 指定非常長的字體堆棧有什麼缺點嗎?
- 28. 在Android中添加過多的庫有什麼缺點嗎?
- 29. 使用Include()或嵌套的include()有什麼缺點嗎?
- 30. 基於類的Javascript注入有什麼缺點嗎?
我經常把我打開文件描述符限制我從來沒有注意到任何性能影響(當然,除了我的程序再次開始工作外)。 – phs