Systemd-journal-flush.service का उपयोग क्या है?


14

यह मेरे सिस्टम बूट समय को धीमा कर देता है।

क्या मैं इसे निष्क्रिय कर सकता हूं?

अगर मैं इसे बूट पर अक्षम कर दूंगा तो क्या होगा?

मैं Ubuntu संस्करण 18.04 का उपयोग कर रहा हूं।

जवाबों:


14

systemd-journal-flush.service, / Var / log / पत्रिका में इन / रन / लॉग / पत्रिका संग्रहीत किसी भी लॉग डेटा फ्लश करने के लिए करता है, तो पत्रिका डेमॉन पूछता persistentभंडारण सक्षम है। यदि आपके पास (पहले से) विशाल लॉग फ़ाइलें हैं, तो इसका परिणाम धीमी बूटिंग होगा। इसके अलावा डिस्क (साथ /var/log) को ऐसा करने के लिए एक लेखनीय मोडस में रखा जाना चाहिए।

इसे समाप्‍त करने के लिए: विशाल पुरानी लॉग फाइलें, जो बूट के दौरान जांची जाती हैं और नए लॉग डेटा को जोड़ने से धीमा बूट समय होता है।

जर्नल लॉग लॉग प्रकार की जाँच करने के लिए

journalctl --disk-usage

फ्लश प्रसंस्करण के समय और डिस्क स्थान की जानकारी प्राप्त करने के लिए, निम्नलिखित कमांड दर्ज करें

journalctl -b --unit systemd-journald

संबंधित आउटपुट जैसा दिखेगा

-- Logs begin at Sat 2018-12-08 00:40:23 CET, end at Mon 2018-12-10 19:40:27 CET. --
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Journal started
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Runtime journal (/run/log/journal/265c93c062bf4c8da41abfe2ae793452) is 4.7M, max 38.3M, 33.5M free.
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Time spent on flushing to /var is 7.066904s for 132 entries.
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: System journal (/var/log/journal/265c93c062bf4c8da41abfe2ae793452) is 128.0M, max 256.0M, 128M free.


आप या तो यह कर सकते हैं

  • सेवा अक्षम करें (अनुशंसित नहीं)

    फिर यह संभव है कि सभी लॉग डेटा डिस्क पर नहीं लिखे गए हों; बूट दोष डिबगिंग जब कष्टप्रद।


  • एक journalctl --vacuumकमांड का उपयोग करें

    से journalctl -h

    --vacuum- आकार = BYTES डिस्क का उपयोग निर्दिष्ट आकार से कम करें
    --vacuum-files = INT केवल जर्नल फ़ाइलों की निर्दिष्ट संख्या छोड़ें
    --vacuum-time = निर्दिष्ट समय से अधिक पुरानी फ़ाइलों को निकालें

    इसलिए ए

     sudo journalctl --vacuum-size=1G --vacuum-time=5d --vacuum-files=5
    


  • भंडारण प्रकार बदलें systemd-journal-flush.service

    पहले अपने भंडारण प्रकार की जाँच करें

     systemctl cat systemd-journal-flush.service  | grep -i storage
    

    से man journald.conf

    भंडारण =

    नियंत्रण जहां जर्नल डेटा संग्रहीत करने के लिए। "अस्थिर", "लगातार", "ऑटो" और "कोई नहीं" में से एक।

    यदि " वाष्पशील ", जर्नल लॉग डेटा केवल मेमोरी में संग्रहीत किया जाएगा, अर्थात / रन / लॉग / जर्नल पदानुक्रम के नीचे (जो आवश्यक हो तो बनाया जाता है)।

    यदि " लगातार ", डेटा अधिमानतः डिस्क पर, अर्थात / var / लॉग / जर्नल पदानुक्रम के नीचे संग्रहीत किया जाएगा (जो कि यदि आवश्यक हो तो बनाया जाता है), के साथ / वापसी / लॉग / पत्रिका (जो यदि आवश्यक हो तो बनाया जाता है) के दौरान। शुरुआती बूट और अगर डिस्क में लिखने योग्य नहीं है।

    " ऑटो " "निरंतर" के समान है, लेकिन निर्देशिका / संस्करण / लॉग / जर्नल की आवश्यकता होने पर नहीं बनाया जाता है, ताकि इसका अस्तित्व नियंत्रित हो जाए कि लॉग डेटा कहां जाता है।

    " कोई नहीं " सभी संग्रहण को बंद कर देता है, प्राप्त सभी लॉग डेटा को हटा दिया जाएगा। कंसोल, कर्नेल लॉग बफर, या एक syslog सॉकेट जैसे अन्य लक्ष्यों को अग्रेषित करना अभी भी हालांकि काम करेगा। "ऑटो" के लिए चूक।

    फ़ाइल को संपादित करें

    sudo nano /etc/systemd/journald.conf
    

    जर्नल अनुभाग में असहजता और परिवर्तन:

    Storage=auto
    SystemMaxFileSize=1G
    SystemMaxFiles=5
    

    सहेजें और रिबूट करें।



मैं यह नहीं देखता कि विशाल लॉग फ़ाइल बूट को धीमा क्यों करेगी? यह लॉग इन / रन / लॉग / जर्नल को फ्लश करता है, लेकिन यह आखिरी बूट के बाद से केवल लॉग है
solsTiCe

1
मैं निश्चित नहीं हूँ। यह भी (बेकार?) Systemd-user-session-flush.service की निर्भरता systemd-user-session.service (Seehttps: //github.com/systemd/systemd/pulln502) पर निर्भर हो सकता है। हालाँकि, मैंने अनुभव किया कि लॉग फ़ाइल को बूट समय से 1GB से कम गति तक सीमित करना। मैंने सिस्टमड / जर्नल / * कोड के माध्यम से पढ़ा, लेकिन sth दिलचस्प नहीं पाया।
abu_bua

1
शायद डी / संपीड़न (lz4) के कारण? आगे लॉग डेटा बस फ़ाइल में स्ट्रीम नहीं मिलता है; यह तेजी से संशोधित, वस्तुओं की खोज के लिए जर्नल और एक हैश तालिका प्राप्त करता है, ...
abu_bua

1
मुझे लगता है कि पत्रिका फ़ाइलों और / var / लॉग फ़ाइलों के संबंध में एक टिप्पणी उपयोगी हो सकती है; मैं उस पर स्पष्ट नहीं हूं, लेकिन मुझे लगता है कि पत्रिका सक्रिय लॉगिंग है और जब यह फ्लश हो जाता है जो सामान्य / var / लॉग फ़ाइलों में डिस्क पर सक्रिय डेटा लिख ​​रहा है?
pbhj

आप सही हैं, लेकिन बूटिंग के दौरान डेटा को डिस्क पर नहीं लिखा जा सकता है, क्योंकि डिस्क को पहले माउंट किया जाना है।
abu_bua

3

सिस्टमड डेवलपर होमपेज के इस पोस्ट के अनुसार , आप यूनिट फ़ाइल को बदलकर इसे ठीक कर सकते हैं ।

ऐसा करने के लिए, खोलें /lib/systemd/system/systemd-journal-flush.service, जैसे

sudo vim /lib/systemd/system/systemd-journal-flush.service

और इससे पहले निर्भरता को बदल दें

 Before=systemd-user-sessions.service systemd-tmpfiles-setup.service

 को

 Before=systemd-tmpfiles-setup.service

यह फिक्स सिस्टमड वर्जन> 40 v240 के लिए अपने आप बदल जाएगा।

फ़ाइल को सहेजना न भूलें।

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