पूंछ: inotify का उपयोग नहीं किया जा सकता है, मतदान के लिए पुन: प्रस्तुत: बहुत सारी खुली हुई फाइलें


16

जब मैं प्रयास करता tail -f catalina.outहूं, मुझे त्रुटि मिलती है:

tail: inotify cannot be used, reverting to polling: Too many open files 

मैंने इस पोस्ट में उत्तर देने की कोशिश की: बहुत सी खुली फाइलें - अपराधी को कैसे खोजा जाए

lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head

जब मैंने उपरोक्त कमांड को चलाया, तो आउटपुट था

17 6115

13 6413

10 6417

10 6415

9 6418

9 6416

9 6414

8 6419

4 9 

4 8

मुझे 1024 फ़ाइलों को खोलने वाली कोई भी प्रक्रिया दिखाई नहीं दे रही है। क्या फाइलों की संख्या 17,13,10,10,9 नहीं है? या मैं इसे गलत समझ रहा हूं? और ये सभी बैश, sshd, apache2, tomcat का नंबर 4 था।

मैंने भी किया lsof | grep tail | wc -l जो लौटा 20। ये संख्या बहुत बड़ी नहीं है, इसलिए यह tail -f catalina.outविफल क्यों होता है?

जवाबों:


17

Http://peter-butkovic.blogspot.com/2013/08/tail-inotify-resources-exerateed.html पर निर्देशों का पालन करके यह मेरे लिए हल किया गया था

स्थायी समाधान (पुनरारंभ के दौरान संरक्षित) जोड़ना रेखा:

fs.inotify.max_user_watches=1048576

सेवा:

/etc/sysctl.conf

सीमा मान स्थायी रूप से (यहां तक ​​कि पुनरारंभ के बीच) तय किया।

तो एक करो

sysctl -p

1
फ़ाइल डिस्क्रिप्टर बढ़ाने से मुझे मदद नहीं मिलती है। मेरा tailसंदेश थोड़ा अलग था tail: inotify resources exhausted:। इस जवाब से मुझे मदद मिली। यदि आप sudo sysctl -w fs.inotify.max_user_watches=1048576 && sysctl -pइसे स्थायी रूप से संशोधित किए बिना मदद करते हैं तो आप परीक्षण करने के लिए भी उपयोग कर सकते हैं । यह पोस्ट nefaria.com/2014/08/tail-inotify-resources-exerateed
Ruslan Stelmachenko

9

मुझे लगता है कि उत्तर पूर्ण नहीं है (यह सिस्टम पर खुली फाइलों की अधिकतम सीमा के बारे में कुछ नहीं कहता है)।

खुली फ़ाइलों की अधिकतम संख्या के बारे में दो सीमाएँ हैं:

  1. फ़ाइलों की अधिकतम सीमा प्रति प्रक्रिया खुलती है

    • आप देख सकते हैं कि इस सीमा का उपयोग करने का मूल्य क्या है: ulimit -n
    • आप इस सीमा को बदल सकते हैं: ulimit -n new_limit_number
    • यहां शीर्ष 10 प्रक्रियाएं प्राप्त करने के लिए एक कमांड है जिसमें कई फाइलें खुली हैं:

      lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head
  2. फ़ाइलों की अधिकतम सीमा प्रति सिस्टम खुलती है

    • आप देख सकते हैं कि इस सीमा का उपयोग करने का मूल्य क्या है: cat /proc/sys/fs/file-max
    • आप इस सीमा को बदल सकते हैं: echo new_limit_number > /proc/sys/fs/file-max
    • सभी खुले फ़ाइल हैंडल की गणना करें: lsof | wc -l

6

सबसे अधिक संभावना है, आप अपनी inotifyघड़ियों से भाग चुके हैं । संभवतः, आप पृष्ठभूमि में कुछ फ़ाइल सिंक्रोनाइज़ेशन टूल (जैसे। ड्रॉपबॉक्स) चला रहे हैं?

लिनक्स में, tail -fकमांड का आंतरिक कार्यान्वयन inotifyडिफ़ॉल्ट रूप से तंत्र का उपयोग करता है , इसलिए फ़ाइल परिवर्तनों की निगरानी करना। यदि आप सभी inotifyघड़ियों से बाहर निकल चुके हैं (डिफ़ॉल्ट रूप से 8192), तो inotify -fउस फ़ाइल में परिवर्तनों का पता लगाने के लिए मतदान पर स्विच करना होगा।

बेशक, आप inotifyघड़ियों की अधिकतम संख्या को संशोधित कर सकते हैं ।

संदर्भ:
http://www.quora.com/How-is-tail-f-implemented
http://peter-butkovic.blogspot.com/2013/08/tail-inotify-resources-exhausted.html
https: // serverfault.com/questions/510708/tail-inotify-cannot-be-used-reverting-to-polling-too-many-open-files


3

sysctl fs.inotify.max_user_instancesके लिए प्रति उपयोगकर्ता सीमा प्राप्त होगी inotify

मैंने इसका अनुभव किया, और सभी सीमा प्रणाली चौड़ी थी, लेकिन उपयोगकर्ता द्वारा सेटिंग आमतौर पर डिफ़ॉल्ट रूप से अपेक्षाकृत कम होती है, आप इसे बढ़ा सकते हैं sysctl.confऔर इसे फिर से लोड कर सकते हैं sysctl -p


3

Daud

ps aux | grep tail

यह जाँचने के लिए कि क्या बहुत से टेल कमांड चल रहे हैं, जैसे कि कोंट्राब द्वारा स्पॉन।


हा यह वास्तव में काम किया है, बहुत अधिक फ़ाइलों को रास्ता
अलेक्जेंडर मिल्स

मैं डेटा का अनुवाद कैसे करूं? क्या आप बता सकते हैं कि प्रत्येक जानकारी का क्या मतलब है और इसके बारे में क्या करना है? उदाहरण के लिए:root 20161 0.0 0.0 11132 1044 pts/0 S+ 17:27 0:00 grep tail
क्रिस्टिया

यह केवल एक समस्या है अगर TOO MANY प्रक्रियाओं का मिलान किया जाता है, तो मिलान की गई रेखा में "grep" होता है जो कमांड द्वारा ही उत्पन्न होता है। कृपया इसके बजाय "pgrep टेल" कमांड का उपयोग करें।
टैंगक्सिनफा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.