আমি কীভাবে আমার বুটের সময় আরও কম করতে পারি?


11

আমার প্রয়োজন নেই এমন বেশিরভাগ পরিষেবাগুলি সরিয়ে দেওয়ার পরেও এটি বুট করতে, ছবি তুলতে এবং বন্ধ করতে প্রায় 28 সেকেন্ড সময় নেয়। আমি এটিকে আরও কমিয়ে দিতে চাই এবং আমি systemd-analyze blameএটি করেছি এবং নিম্নলিখিতগুলি পেয়েছি:

7.476s disableusb.service
1.736s keyboard-setup.service
958ms kbd.service
789ms systemd-fsck-root.service
737ms systemd-setup-dgram-qlen.service
722ms fake-hwclock.service
580ms kmod-static-nodes.service
565ms console-setup.service
534ms dev-mqueue.mount
518ms systemd-udev-trigger.service
498ms networking.service
489ms raspi-config.service
449ms hdparm.service
444ms systemd-journal-flush.service
376ms systemd-tmpfiles-setup.service
375ms dhcpcd.service
345ms systemd-logind.service
332ms ntp.service
317ms systemd-modules-load.service
281ms tmp.mount
272ms triggerhappy.service
269ms sys-kernel-debug.mount
265ms systemd-fsck@dev-mmcblk0p6.service
223ms rsyslog.service
221ms sys-kernel-config.mount
212ms systemd-tmpfiles-setup-dev.service
200ms systemd-remount-fs.service
198ms systemd-sysctl.service
184ms boot.mount
173ms systemd-random-seed.service
168ms rc-local.service
167ms user@1000.service
165ms var-log.mount
141ms udev-finish.service
130ms sys-fs-fuse-connections.mount
111ms systemd-user-sessions.service
94ms systemd-update-utmp.service
94ms alsa-restore.service
93ms systemd-update-utmp-runlevel.service
77ms systemd-udevd.service
55ms takepicture.service

disableusb.serviceআমার, এবং নামটি যা বোঝায় তার বিপরীতে এটি অন্যান্য কাজও করে। আমি সন্দেহ করি আমি সেখানে সময় উন্নত করতে পারি।

আমার সিস্টেম সিরিয়াল অনুসারে মাথাছাড়া চলছে। আমার কেবলমাত্র ওয়াইফাইয়ের মাধ্যমে নেটওয়ার্কিং প্রয়োজন (ওয়াইফাই শুরু হয় না কারণ আমি ইউএসবি শক্তিটি নিষ্ক্রিয় করি, তবে কখনও কখনও আমি এটি অক্ষম করব না, যাতে এটি শুরু করতে পারে)।

এই তালিকাটি দেখে, আমি যেমন: 1.736s keyboard-setup.serviceএবং 958ms kbd.service। তারা প্রায় 3 সেকেন্ড সময় নেয়। আমি কিবোর্ড ব্যবহার না করে থাকলে কি তাদের দরকার? যদি তা না হয় তবে আমি কীভাবে তাদের অক্ষম করব?

এখান থেকে আমি আর কী নিরাপদে অক্ষম করতে পারি?

ঠিক আছে, এখানে যাওয়ার জন্য সত্যিই অদ্ভুত কিছু আছে। আমি আরও কিছু পরিষেবা অক্ষম করেছি, এবং এটি এখনও মোটামুটি সময় নেয়, কেবল এখন এমন কিছু পরিষেবা যা আরও বেশি সময় নেয় তার আগে কম সময় নিয়েছিল ...

7.468s disableusb.service
1.676s console-setup.service
768ms systemd-logind.service
768ms systemd-fsck-root.service
726ms systemd-setup-dgram-qlen.service
714ms fake-hwclock.service
689ms networking.service
530ms systemd-journal-flush.service
524ms systemd-udev-trigger.service
509ms dev-mqueue.mount
509ms ntp.service
508ms kmod-static-nodes.service
439ms dhcpcd.service
334ms systemd-random-seed.service
331ms hdparm.service
318ms systemd-modules-load.service
281ms systemd-tmpfiles-setup.service
279ms systemd-fsck@dev-mmcblk0p6.service
279ms rsyslog.service
269ms systemd-remount-fs.service
265ms sys-kernel-config.mount
254ms systemd-tmpfiles-setup-dev.service
250ms systemd-sysctl.service
238ms rc-local.service
234ms systemd-udevd.service
232ms sys-kernel-debug.mount
224ms user@1000.service
187ms tmp.mount
176ms sys-fs-fuse-connections.mount
175ms var-log.mount
133ms systemd-update-utmp.service
122ms systemd-update-utmp-runlevel.service
122ms systemd-user-sessions.service
119ms alsa-restore.service
91ms boot.mount
88ms udev-finish.service
76ms takepicture.service

পরিষেবাদি ফাইল: (কোড সিনট্যাক্স কেন কাজ করে না তা ধারণা নেই)

[Unit]
Description=Disable USB power
Before=networking.service
After=local-fs.target
DefaultDependencies=no

[Service]
Type=oneshot
ExecStart=/sbin/usb_down

[Install]

এই প্লটটি এখানে: http://www.etern-lands.com/plot.svg

এখানে চিত্র বর্ণনা লিখুন


1
আপনি যদি systemd-analyze plotএখানে চালনা করে এবং চিত্রটি অন্তর্ভুক্ত করেন তবে সমস্যাটি কী হতে পারে তা সম্ভবত পরিষ্কার হতে পারে (এটির সময়গুলি দেখানোর জন্য একটি দুর্দান্ত এসভিজি চার্ট তৈরি করা উচিত এবং জিনিসগুলি পরিস্কার করা হবে)।
অরোরা 10001

1
পরামর্শের জন্য ধন্যবাদ, আমি প্লট যুক্ত করতে পোস্টটি সম্পাদনা করেছি।
রাদু

আপনার জন্য পরিষেবা ফাইলটিতে আটকানো উচিত disableusb.service। বিটিডাব্লু, আপনি প্যাকেজটি convert plog.svg plog.jpgইনস্টল করা হলে imagemagick/ তাড়াতাড়ি করতে পারেন /
সোনারলকস

আমি সার্ভিস ফাইল যুক্ত করার জন্য প্রশ্নটি সম্পাদনা করেছি।
রাদু

প্রশ্ন: আপনার কী ধরণের এসডি কার্ড রয়েছে? একটি দ্রুত এসডি কার্ড এই অপটিমাইজেশনের তুলনায় দ্রুত বুট বার সরবরাহ করতে পারে। এটি কি কমপক্ষে 60 মিমি / সেকেন্ডের জন্য রেট দেওয়া আছে?
সাইবারনার্ড

উত্তর:


7
7.476s disableusb.service

এর দ্বারা বোঝা যায় আপনি অগ্রভাগে কিছু চালাচ্ছেন কারণ এটি অবিরাম নয় তাই আপনি অনুভব করেন যে এর ব্যাকগ্রাউন্ড করার কোনও অর্থ নেই। তবে, যদি এটির কাজটি করতে খুব বেশি সময় লাগে তবে সম্ভবত এটির পরিবর্তে এটি পটভূমিতে কাঁটাচামচ করা উচিত।

এখানে সমস্যাটি কেবল এটাই যে আপনার বুট সময়টিকে অগ্রভাগে রেখে দেয়ার চেয়ে বেশি উপকৃত হওয়ার সম্ভাবনা রয়েছে, যদিও এটি কোনওভাবেই কোনও পার্থক্য না করে। যাইহোক, যদি অন্য কিছু এটি সম্পূর্ণরূপে নির্ভর করে (কেবল সাফল্যের সাথে আরম্ভের সাফল্যের বিপরীতে যা একটি ধ্রুবক পরিষেবায় আরও বেশি প্রযোজ্য), তবে আপনার এটি ছেড়ে দেওয়া উচিত।

আমি যেমন জিনিসগুলি দেখতে পাই: 1.736s এর কীবোর্ড-সেটআপ.সার্ভিস এবং 958 মিমি কেবিডি.সার্ভিস। তারা প্রায় 3 সেকেন্ড সময় নেয়।

আমি কখনই এটি দেখিনি কারণ এটি আমার কাছে খুব বেশি গুরুত্ব দেয় না, তবে আমি বিশ্বাস করি যে রাস্পবিয়ানটিতে "কীবোর্ড সেটআপ" পরিচালিত হয়েছে সে সম্পর্কে কিছু ভুল আছে। আমি সিস্টেমড দ্বারা খুন হওয়ার আগে এটি 90 সেকেন্ড আগে চালিত দেখেছি।

আমি কিবোর্ড ব্যবহার না করে থাকলে কি তাদের দরকার? যদি তা না হয় তবে আমি কীভাবে তাদের অক্ষম করব?

আমি মনে করি না, তবে হঠাৎ আপনার যদি কীবোর্ডের প্রয়োজন হয় তবে এটি আপনার জন্য ঝামেলা তৈরি করতে পারে ... বা এটি কোনও লাভ করতে পারে না - আমার সন্দেহের অংশটি হ'ল এটি আসলে কিছুই সম্পাদন করছে না, যেহেতু "কীবোর্ড" সেটআপ "এমন একটি জিনিস যা স্থির কনফিগারেশন এবং প্রয়োজন অনুসারে ম্যানুয়ালি পরিবর্তিত হতে পারে।

একটি পরিষেবা অক্ষম করতে sudo systemd disable ...,।

raspi-config.service

এটি এখনও অদ্ভুত রয়েছে যেহেতু এটি চালানোর পরে এটি নিজেকে অক্ষম করার কথা - তবে আপনি যদি তা এড়িয়ে যান তবে তা নাও হতে পারে। এটি কীবোর্ড জিনিসটির সাথে সম্পর্কিত হতে পারে। সম্ভব হলে আপনার একটি মনিটরে প্লাগ ইন করা উচিত এবং পোস্ট বুটটি পপ আপ হয় কিনা তা দেখতে হবে। যে কোনও ক্ষেত্রে এটি অন্য কিছু হতে পারে তবে আপনি অক্ষমও করতে পারেন।

এই প্লটটি এখানে: http://www.etern-lands.com/plot.svg

আমার মনে হয় আপনার করা উচিত disableusb.service After=sysinit.target


আমি একটি করেছি: pi@raspberrypi:~$ sudo systemd disable raspi-config.serviceএবং পেয়েছি Excess arguments.। এছাড়াও, সেগুলির অনেকগুলি তালিকাভুক্ত থাকে না systemctl list-unit-files
রাদু

1
কিসের সাথে সম্পর্ক networking.service? আমি অনুমান করছি যে এটি উদ্দেশ্যমূলক ছিল না, এজন্যই আমি সিসিনিট (যা নেটওয়ার্কিং শুরু করার জন্য অপেক্ষা করে) পরে শুরু করার পরামর্শ দিয়েছি। যাইহোক, মনে রাখবেন যে যদি 28 সেকেন্ডে আপনার অন্তর্ভুক্ত থাকে তবে disableusbপাই এর কোনও মডেলের জন্য এটি বেশ যুক্তিসঙ্গত বুট সময় time তাদের কেউই দ্রুত নয়।
স্বর্ণকেশ

1
কেবলমাত্র ওয়াইফাইটি শুরু হতে আটকাতে নয়, ইউএসবি অক্ষম করার ক্ষমতা সংরক্ষণের ভূমিকা রয়েছে। ধারণাটি হ'ল ওয়াইফাই কখনও কখনও শুরু করা উচিত এবং স্ক্রিপ্টটি সেই ক্ষেত্রে শক্তিটি অক্ষম করবে না।
রাদু

2
আপনি disableusbনেটওয়ার্কিং শুরু হওয়ার আগেই শেষ করতে হবে যদি আপনি জোর করতে চান তবে অনুকূলিতকরণের চেষ্টা করে আপনার সময় নষ্ট করছেন কারণ আপনি ওয়াইফাইটি শুরু হচ্ছে না তা নিশ্চিত করতে চান। খালি বোবা, খালি কথা বলতে; আপনি খেলছেন আমার কেক আছে এবং খুব খাওয়া। আপনি শক্তি সংরক্ষণের জন্য ইউএসবি অক্ষম করতে চাইলে দুর্দান্ত, তবে আপনার ওয়াইফাই ইস্যুটি আলাদাভাবে মোকাবেলা করা উচিত। আপনি যদি বিরক্ত না হন তবে আপনার বুটের সময় থেকে কয়েক সেকেন্ড সময় নষ্ট করার চেষ্টা করে আপনার সময় নষ্ট করবেন না।
স্বর্ণকেশ

1
আপনি কী বলছেন তা আমি বুঝতে পারি না বলে আমি মনে করি না। আমি আপনাকে বলেছি যে আপনার পরামর্শ অনুসারে আমি স্ক্রিপ্টের বেশিরভাগ অংশ সরিয়ে নিয়েছি এবং প্রায় 2 সেকেন্ডের সাথে বুটের সময় বৃদ্ধি পেয়েছে ...
রাদু

3

গ্রাফের দিকে তাকালে এটি স্পষ্ট মনে হয় যে অক্ষম করা console-setup.serviceআসলে কোনওভাবেই গতি বাড়িয়ে তুলবে না। আপনি দেখতে পাচ্ছেন সম্পূর্ণ networking.serviceহওয়া পর্যন্ত অপেক্ষা করা disableusb.service, সুতরাং console-setup.serviceসমান্তরালভাবে রান করার জন্য একটি 1.6 দ্বিতীয় লোড সময় মোটামুটি বুটের সময়কে কোনওভাবেই প্রভাব ফেলবে না।

একটি সমালোচনামূলক পথের সময় নির্ধারণের একটি ধারণা রয়েছে যা এই পথে যখন কোনও কার্যকলাপ বিলম্বিত হয় তখন পুরো প্রকল্পে বিলম্ব ঘটে lays অন্যান্য ক্রিয়াকলাপগুলিতে 'ভাসা' রয়েছে, অর্থাত্ তারা সমালোচিত নয় এবং চূড়ান্ত সমাপ্তির সময়কে প্রভাবিত না করে বিলম্বিত হতে পারে।

এটি এই সমালোচনামূলক পথ যা আপনার অবশ্যই সময় সাশ্রয় করতে হবে, অ-সমালোচনামূলক ক্রিয়াকলাপ নয়। systemd-analyze critical-chainসমালোচনামূলক ক্রিয়াকলাপগুলি সনাক্ত করতে আপনাকে সহায়তা করবে, যদিও আপনি তাদের প্লটে খুব বেশি স্পট করতে পারেন। কোনও প্রান্তিক লাভ disableusb.serviceআপনার বুট সময়কে উল্লেখযোগ্যভাবে সহায়তা করবে।

এটি আপনার পরিষেবাগুলিতে কেন এত বেশি সময় নেয় তা বুঝতেও সহায়তা করতে পারে । এর জন্য, বুটচার্ট 2 কার্যকর হতে পারে। এটি এর সাথে ইনস্টল করা যেতে পারে:

apt-get install systemd-bootchart

আসলে এটি সক্ষম করতে, সম্পাদনা করুন /boot/cmdline.txtএবং সেট করুন:

init=/lib/systemd/systemd-bootchart

বুটিংটি সম্পূর্ণ হওয়ার পরে, আপনি /run/logএকটি এসভিজি ফাইল হিসাবে সংরক্ষণ করা চার্টটি পাবেন । তারপরে, init=...এর প্রাথমিক সেটিংসে ফিরুন (বা এটি আগে না থাকলে এটি মুছুন)।

এর জন্য ম্যানsystemd-bootchart পেজও দেখুন ।


একমাত্র সিপিইউ ব্যয়বহুল জিনিসটি আমার ডিসিয়েবলবস raspistill -o /home/pi/test_boot.jpg। সার্ভিস এটি করে । এটি কেবল একটি পরীক্ষা, আমি প্যারামিটারগুলিকে আরও কিছুটা পরিবর্তন করতে পারি এবং কিছুটা সময় সাশ্রয় করতে পারি তবে ভবিষ্যতে আমি কাঁচা আউটপুট সক্ষম করতে চাই যা প্রতিটি পিকের জন্য আরও একটি 10 ​​ডলার বা তার বেশি অর্থ হবে যা সম্ভবত একটি অতিরিক্ত দ্বিতীয় লাগবে লিখতে. আমি বুটচার্ট জিনিসটি চেষ্টা করব, আমি আশা করি এটির জন্য কোনও মনিটরের প্রয়োজন হবে না :)
রাদু

আমি মনে করি একটি পিএনজিও খুব উত্পাদিত হয়; এটি নথিতে নোট করা উচিত যেখানে এটি রাস্পবিয়ানে সংরক্ষণ করে।
অরোরা 10001

দুর্ভাগ্যক্রমে, এটি কাজ করে না। Setting up bootchart2 (0.14.4-3) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults update-rc.d: warning: stop runlevel arguments (6 0) do not match bootchart-done Default-Stop values (none)। আমি যখন শুরু pybootchartgui -iকরি তখন আমি একটি: সতর্কতা পাই: পথ '/var/log/bootchart.tgz' উপেক্ষা করে উপস্থিত নেই। পার্স ত্রুটি: খালি অবস্থা: '/var/log/bootchart.tgz' তে একটি বৈধ বুটচার্ট নেই
রাদু

2
ওহ, এটি বুটচার্টকে এখন স্ট্রেচে সিস্টেমড-বুটচার্ট নামে পরিচিত এবং সিস্টেমডের সাথে আরও ঘনিষ্ঠভাবে সংহত করা হয়েছে। আমি যথাযথ পদক্ষেপগুলি সহ @ রাডু সম্পাদনা করেছি।
অরোরা 10001

1
সুতরাং, আমি জানতে পেরেছিলাম যে ক্যামেরা অ্যাপটিতে 5 সেকেন্ড বিলম্ব হয়েছে, কেবল কারণেই। আমি ব্যবহার করেছি --timeout 1এবং এটি বুটের সময় হ্রাস করেছে 15.389s :)
রাদু

2

আমি একটি মাথা নিচু রাস্পবেরিপি জিরো চালাচ্ছি এবং আমি এর থেকে কয়েক সেকেন্ড শেভ করতে পারলাম:

systemd

# Don't start the Light Display Manager on headless
sudo systemctl disable lightdm.service

# In a headless environment you don't need the keyboard setup.
sudo systemctl disable keyboard-setup.service

# Checks if the country is set in the WIFI config. This is likely a regulatory precaution.
sudo systemctl disable wifi-country.service

# Unless you have an external joystick or something that uses `/dev/input/`
sudo systemctl disable triggerhappy.service 

# I read that the swap file actually slows the PI down and decreases SD card lifetime. 
sudo systemctl disable dphys-swapfile.service

# Disable Bluetooth unless you need it
sudo systemctl disable hciuart.service

# Unless you have a hardware button to disable the WIFI you won't need this
sudo systemctl mask systemd-rfkill.service # disabling won't work


# Open GL should be obsolete on a headless machine
sudo systemctl disable gldriver-test.service

# Only disable this one if you're not using `/etc/rc.local`
sudo systemctl mask rc-local

# You might to re-enable this service when making changes using `sudo raspi-config`
sudo systemctl disable raspi-config.service

দয়া করে মনে রাখবেন যে systemd-analyzeবুট সময়টি আউটপুট করে:

Startup finished in 1.532s (kernel) + 20.862s (userspace) = 22.395s

সর্বনিম্ন বুট আউটপুট

ইন boot/cmdline.txtপরিবর্তন tty1করতে tty3এবং পরিশেষে যোগ loglevel=3 quiet logo.nologoশেষে এrootwait

এটি আমার জন্য আরও একটি সেকেন্ড বাঁচিয়েছে।

বিবিধ

এই লোকটি 3 সেকেন্ডের একটি রাস্পবেরি বুট অর্জন করেছে: https://www.samplerbox.org/article/fastbootrpi

বুটের সময় হ্রাস করার জন্য কয়েকটি পদক্ষেপ সহ এটি একটি ভাল ব্লগ: http://himeshp.blogspot.com/2018/08/fast-boot-with-raspberry-pi.html

ডগলিওসন কিছু রাস্পবার্পি পরিষেবাদি সম্পর্কে https://www.raspberrypi.org/forums/viewtopic.php?t=195692 ব্যাখ্যা করেছেন

পিডিএফ হিসাবে গভীরতর টিউটোরিয়াল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.