Önyükleme hızını nasıl iyileştiririm?


67

Ubuntu'yu daha hızlı yapan birçok video gördüm, ancak bu yöntemler yalnızca masaüstü performansını daha hızlı hale getiriyor.

Bilgisayarımın daha hızlı açılmasını sağlamak için çalışıyorum. Ubuntu'nun açılışını önemli ölçüde hızlandırmak için yapabileceğim bir şey var mı?


5
systemd(15.04 IIRC'den beri) kullanan sistemler , systemd-analyzehangi işlemin ne kadar sürede başlayacağını analiz etmenize yardımcı olacak araçla birlikte gelir . Tüm man systemd-analyzeseçenekleri öğrenmek için bakın , muhtemelen en çok kullanacağınız açık systemd-analyze blame.
Byte Commander

@ByteCommander Bir adım adım cevap iş yapacak.
Anwar,

Yanıtlar:


28

Genel olarak, açılışta ne kadar az program yüklüyorsanız, sisteminizin o kadar hızlı olması gerekir. Bazı gereksiz hizmetleri devre dışı bırakmak için BUM (yazılım merkezinden) deneyin ve önyükleme sırasında yüklenecek gereksiz programların bulunmadığından emin olun. Son olarak, önyükleme aygıtınız olarak yarıiletken sürücü (SSD) kullanmak, önyükleme süresini önemli ölçüde artırmalıdır.

Oh bir şey daha, dosya sistemi türünüz de bir fark yaratıyor. EXT4 bazı performans gerilemelerine maruz kaldı (phoronix'e göre), ancak EXT4'ü hızlı açılış için mükemmel buldum.


normalde kullanışlı olmayan hangi hizmeti devre dışı bırakabileceğinizi ekleyebilir misiniz?
Philippe Gachoud 11:15

@PhilippeGachoud Şimdi gerçekten hatırlayamıyorum. Bu 2010'dan itibaren!
RolandiXor

Geriye dönük uyumlu bir SSD kullanıyorum ve anakartım SATA. Çılgınca çıldırıyor.
userDepth

17

Geçen gün bununla karşılaştım. Burada "e4rat" Talimatları

Bu küçük uygulama şaşırtıcı.

Natty'yi normalde 1.45 dak. İle 27.885 sn.'de çalıştıran, 2800+ hızında çalışan tek işlemcili AMD sempronu kullandım.

Bunu ispatlayacak başlangıç ​​çizelgelerine sahibim. Bu delilik! görüntü tanımını buraya girin


1
Bu gerçekten yardımcı olur !!!
user12164

E4rat hakkında daha fazla insanın bilmesi gereken bu, birçok farklı ipucu ve püf noktasında en büyük gelişmeyi yapan harika bir araçtır.
Victor Bjelkholm

3
Hala 12.04 için yasal mı? Üre ile ilgili sorunlara neden olacağını duydum. Bu doğru mu?
user138784

@ user138784 Anladığım kadarıyla, çünkü üredahead e4rat gibi bir iş yapıyor, bu yüzden açıkça çatışmalar. Ancak bazı nedenlerden dolayı e4rat, üre kafasından daha iyi görünüyor. Ayrıca, belki de faydalı olabilir - e4rat bir nedenden ötürü varsayılan olarak çalışmaz, biraz ince ayar yapılması gerekir , aksi halde günlük dosyası oluşturulmaz.
Hi-Angel,

e4rat 16.04'te işe yaramadı
Anwar

17

Önyükleme süresinin iyileştirilmesi, hizmetin devre dışı bırakılması / yönetilmesi ile yakından ilgilidir, ancak mevcut cevaplar, kullanılan hizmetlerin devre dışı bırakılmasında detaylardan yoksundur systemd.

Systemd nedir?

Kısacası, systemd, Linux için SysV ve LSB init betikleriyle uyumlu bir sistem ve servis yöneticisidir. Bu konuda daha fazla resmi proje sayfasından okunabilir .

Hangi servislerin daha fazla zaman aldığını kontrol edin

Hangi servisin çoğu zaman aldığını kontrol etmek için aşağıdaki komutu kullanın.

systemd-analyze blame

Önyükleme sırasında servislerin otomatik başlatılmasını devre dışı bırakma

Önyükleme sırasında servislerin otomatik başlatılmasını devre dışı bırakmak istiyorsanız, aşağıdaki komutu kullanabilirsiniz.

sudo systemctl disable some-time-eater-service.service --now

Ancak, söz konusu hizmete başka hangi servislerin ihtiyaç duyduğunu görmek isteyebilirsiniz. Kontrol etmek için aşağıdaki komutu kullanın

systemctl list-dependencies some-time-eater-service.service --reverse

Not: some-time-eater-service.serviceGerçek servis ismiyle değiştirin postgresql@9.5-main.service.

Otomatik başlatmanın devre dışı bırakılmasının bir servisi başlatılamaz hale getirmediğini unutmayın. Gereksinim ortaya çıktığında servis önyüklemeden sonra başlatılabilir. Tamamen devre dışı bırakmak istiyorsanız, bir sonraki bölümü okuyun.

Hizmetleri tamamen devre dışı bırakmak.

Bir hizmeti tamamen başlatılamaz hale getirmek maskiçin devre dışı bırakmak istiyorsanız , devre dışı bırakmak yerine kullanmalısınız . Bunun gibi, böyle

sudo systemctl mask <SERVICE-NAME>

<SERVICE-NAME>Bir servisin gerçek ismiyle değiştirin.

Maske maskve disablemaske arasındaki fark , bir servisi tamamen devre dışı bırakır, başlatamazsınız. Systemdunmask ile başlamanız gerekir (yine de ile başlayabilirsiniz ). Ancak bir hizmetin otomatik başlatılmasını devre dışı bırakmanız yeterlidir, daha sonra başlatabilirsiniz.servicedisable

Örneğin, postgresql@9.5-main.serviceservisimi maskelendikten sonra , başlatmak istediğimde systemctlaşağıdaki mesajla

Failed to start postgresql@9.5-main.service: Unit postgresql@9.5-main.service is masked.

GUI Aracı

Özellikle ilginç bulduğum bir GUI Aracı systemd-managerşu anda geliştirme aşamasında ve Resmi Ubuntu deposuna gidemedi. Ancak, Systemd-Manager'ın github sayfasından çok kolay bir şekilde kurabilirsiniz . Sürümler, kurulumu çok kolay bir .deb paketi içeriyor. Gerçi GTK-3.16 veya üstü gerekir.

Bir kere indirip kurduktan sonra systemd-managerkomut ile başlatabilirsiniz . Başlat.

Uygulama iki ana görünüme sahiptir. Bunlardan biri Systemd Units ve diğeri Systemd Analyse . Sol üst köşedeki etiketle değiştirebilirsiniz. Ekran görüntüsüne bakınız.

Görünümler Arasında Geçiş Yap

Ve yönetebileceğiniz üç tür birim var. Servisler , Soketler ve Zamanlayıcılar . Aralarında geçiş yapabilirsiniz. Ekran görüntüsüne bakınız.

Birim tipleri arasında geçiş yap

Bilgi gösteriliyor

Üç ana sekme Dosya , Dergi , Bağımlılıklar'dır .

  • Dosyalar seçilen ünitenin yapılandırma dosyasıdır.
  • Günlük, birimlerin etkinleştirilmesi / devre dışı bırakılması / başlatılması / durdurulması sırasında canlı sistemin çıktısıdır
  • Bağımlılıklar, seçili bir servisi başlatmak için başka hangi servislerin veya birimlerin etkinleştirilmesi gerektiğini gösterir.

Durum Göstergeleri

Durumu belirtmek için birimlerin adının yanında iki sütun vardır. Sol olanı, birimin önyüklemede başlatılıp başlatılmadığını gösterir ve sağ taraf o birimin çalışıp çalışmadığını gösterir. Resimde onları görün.

Önyükleme durumunda etkin

Şu anda çalışan durum

Kontrol Anahtarları

Açılışta etkin ya da çalışır durumda olmak için Google’ın sağ üst köşesinde iki tane Google düğmesi bulunur. Etkin , birimlerin başlayacağı ve önyükleneceği anlamına gelir. Resimde onları görün.

Toogle etkinleştirmek / başlamak için geçiş yapar

Uygulamanın tam görünümü aşağıda gösterilmiştir

Komple Görünüm

Umarım bu yardımcı olur. Systemd hakkındaki diğer cevaplardan faydalanıyorum, ancak bilgiyi tek bir yerde toplamam gerekiyordu.

Daha fazla bilgi :

Hakkında daha fazla bilgi edinmek için systemdbu bağlantıları ziyaret edebilirsiniz:

Diğer cevapların farklı önerileri var. SSD satın almak, RAM'i arttırmak vs. dahil


15

Bir manyetik sürücüden bir Katı Hal Sürücüsüne veya bir Manyetik ve Katı Hal Hibrit sürücüye geçin. Bu herhangi bir işletim sistemi önyükleme çok daha hızlı hale getirecek. Hibrit sürücüler çok daha pahalı değil. O kadar ileri gitmek istemiyorsan, 7200 veya 10K RPM sabit disk al.


6
Disk hızı, geçerli ön yükleme darboğazıdır.
scottl

@scottl, disklerimin SATA olduğunu ve açılış zamanımın @RobinJ tarafından bildirilen 1:45 dakikalık süreye benzemesi nedeniyle, parmakların özellikle disk performansını göstermesi için herhangi bir neden olduğundan şüpheliyim . Ancak gördüğüm şey, montaj diskleri ve paylaşımlarının 1.) fastbootve 2.) önyükleme işlemi için önemli olmayan disklere rağmen senkronize bir şekilde yapılması .
0xC0000022L,

13

Sanırım Ubuntu 11.04 hakkında konuştuğunuzu varsayıyorum?
Bunu çok uzun zamandır, çok başarılı olmadan, deniyorum. Her neyse, bu adımlar birkaç saniye fark yarattı:

1. Gereksiz paketleri çıkarma

apt-get purge brltty brltty-x11 foo2zjs min12xxw ttf-indic-fonts-core ttf-kacst-one ttf-khmeros-core ttf-lao ttf-punjabi-fonts ttf-unfonts-core

2. Önyükleme işlemi sırasında her iki çekirdeğin / CPU'nun kullanılması

SADECE BU BİLGİSAYARINIZIN ÇOK İŞLENMESİ'NİN / KABLOLARININ OLDUĞUNDAN EMİN OLUNSA BU YAPIN!
Açık /etc/init.d/rc(root yetkileri gerekir) ve değiştir CONCURRENCY=nonetarafından CONCURRENCY=shell. Sonra dosyayı kaydedin.

Güncelleme

"CONCURRENCY = kabuk artık modası geçmiş ve 'makefile' ismini değiştirdi. 2010-05-14'ten beri varsayılan 'makefile' oldu."    ~ Jonathon

3. Gereksiz ödemeleri devre dışı bırakmak

Bu biraz daha ileri, bu yüzden bunun ne anlama geldiğini bilmiyorsanız, yapmamak en iyisidir. Kur bumve kök yetkileriyle başlat. Ardından, gerek duymadığınızdan emin olduğunuz, servis kapaklarının önündeki kutuları işaretleyin. Örneğin, bir tarayıcınız yoksa, devre dışı bırakabilirsiniz saned. Ve asla bluetooth kullanmazsanız, devre dışı bırakabilirsiniz bluetooth.
İşiniz bittiğinde, vurmak uygula düğmesini ve ya tıklayın evet ya hayır (o çok önemli değil).

Bu adımları tamamladıktan sonra iki kez yeniden başlatın . Bazı seçenekleri değiştirdikten sonra ilk yeniden başlatmanın diğerlerinden çok daha uzun sürmesine neden olabilir, ancak ikinci yeniden başlatma sırasında bir miktar fark görmelisiniz.


3
CONCURRENCY = Kabuk artık kullanılmıyor ve 'makefile' ismini alıyor. 2010-05-14'ten beri varsayılan 'makefile' oldu.
Jonathon

Hangi paketleri kaldırmanız gerektiğini listelemek (veya kısa bir açıklama yapmak) mümkün müdür? (açıklamanızda ilk konu). Her zaman basitçe kopyala-yapıştır yapan insanlar olduğunu ve aniden terminalden vb.
Okuyamadıklarını unutmayın

1
@CommuSoft Bu cevap zaten Ubuntu 11.04 hakkında olduğundan, aynı cevabı daha yeni sürümlere uygulamak yine de tavsiye edilemez. Bu şeylerin bazıları artık çalışmayacak ve diğer şeyler sistemi bozabilir.
RobinJ

9

Önyükleme sırasında neyin zaman alacağına dair ayrıntılı grafikler oluşturmak için önyükleme çizelgesi kullanın . Ne ayarlayacağınıza veya çıkaracağınıza karar vermede yardımcı olabilir. Gönderen https://wiki.ubuntu.com/BootCharting :

  • Bootchart ve pybootchartgui paketlerini apt-get veya Synaptic aracılığıyla yükleyin
  • Makinenizi yeniden başlatın
  • Bootchart, / var / log / bootchart dizinine .png dosyası olarak bulunur



3

Alternatif bir yükleme yaptıysam ve GUI paketlerini manuel olarak eklersem makinem YOL'u daha hızlı başlattı. Tabii ki, sadece ihtiyacım olmayan şeyleri çıkartıp kendimi ekleyebileceğimi söylüyor. "X, Y ve Z uygulamalarını nasıl derler / yüklerim" ile geri dönecekseniz, bu iyi bir fikir olmayabilir.


3

Bununla mücadele eden herkes için BUM'u kurun ve kök kullanıcı olarak başlatın (normal sudo yerine gksudo kullanmaya dikkat edin). Ardından devre dışı bırakmak istediğiniz hizmetin işaretini kaldırın (Apache2, PostGreSQL servisini devre dışı bıraktım, MySQL, sanal kutu ve ark.) Ve hepsi bu! Hizmeti orada istemiyorsanız tamamen silebilirsiniz, ancak devre dışı bırakmak için fazlasıyla yeterli.

sudo apt-get install bum

görüntü tanımını buraya girin



2

Düzenleme 2016/10/25: Eğer siz veya askıya tercih olamaz çünkü hazırda beklemeyi kullanacağız etmediği / S3 o zaman ekleyerek Grub devre dışı bırakabilirsiniz noresumeiçin GRUB_CMDLINE_LINUX_DEFAULTde /etc/default/grubve çalıştırın update-grub. GalliumOS çalıştıran Chromebook N22'ye bir örnek:

livewire@zc01:~$ systemd-analyze
Startup finished in 8.580s (kernel) + 4.160s (userspace) = 12.740s

livewire@zc01:~$ systemd-analyze
Startup finished in 3.595s (kernel) + 4.254s (userspace) = 7.850s

Bunu buldum çünkü önyükleme sırasında "Çalıştırma komut dosyaları yerel-premount" bölümünü merak ediyordum ve initramfs'te biraz araştırma yaptım, bu da beni daha önce yalnızca hazırda bekleme modundan uyandırmadığı zaman kullandığım bu seçeneğe yönlendirdi.


Düzenleme 06.08.2016: Linux dağıtımınızın systemd ile birlikte gelen son sürümüne güncellemelisiniz.


Malzemeler:

  • Ücretsiz UEFI kodu veya Coreboot ile UEFI sistemi edinin
  • SSD al
  • UEFI modunda Ubuntu'yu kurun
  • Bonus: initramfs'i xz lzop ile sıkıştırın ve sadece gereken modülleri dahil edin. (Bunu yapmadan önce ne yaptığınızı gerçekten bilmelisiniz.)
  • Bonus: Gereksiz telefon numaralarını kaldırın veya daha hızlı başlaması için yapılandırın. Varsayılan yükleme zaten yeterince iyi olsa da.
    • Örnek: btrfs 'bu aygıtta btrfs birimi yokken takılacak havuz arayan init işi. Bu btrfs araçlarını kurulumlarımın bir kısmından kaldırmamı sağladı.

Söylemeliyim ki 32 saniye aslında yeterince iyi. Geleneksel donanım ile çok daha hızlı olmayacak. Yeni Lenovo T530'umun eski modda başlatılması için aynı süre gerekiyor. Yeni kurduğum yeni mikro SSD ve UEFI modunda Ubuntu ile güç düğmesine basıldığında oturum açmak için 15 saniyeye indi. Posta sırasında 5 saniye boşa gidiyormuş gibi hissetmeye devam ediyor, ancak gerçek işletim sistemini başlatmak için hiçbir zaman boşa harcanmıyor. Mikro SSD 280 MB / sn aktarma hızına sahip, 500 MB / sn SSD olabilir 7 saniyeye kadar yapabilir. Ancak işletim sistemi önyükleme zamanını (POST ve değil) azaltmak gerçekten üreticilere kalmıştır.

Önyükleme profili ve kabuk eşzamanlılığı ile ilgili olarak. Bu bilgiler tarihli ya da sonunda efsane olarak görülebilir. Otomatik önyükleme profilinin veya önyükleme profillemesini tamamen gereksiz yapan şeylerin Linux'a veya çekirdek sisteme yıllar önce eklendiğini hatırlıyorum, çünkü o zamandan beri yeni bir çekirdek paketi yüklendikten sonra önyükleme profillemesini kullanmıyordum. Kabuk eşzamanlılık ayarının bir şeyleri bozduğu söylenir, ancak Systemd ve Upstart ile bunun da gereksiz olması ve hiçbir olumlu etkisi olmamalıdır.


1

Çöp toplayıcı doğru. Dikkatle ilerle. Ancak, güvenle devre dışı bırakabileceğiniz programlardan bazıları, özellikle Evolution'ı kullanmıyorsanız, Evolution gibi e-posta gönderme programlarıdır. Ayrıca, hiç yazdırmazsanız, yazdırmayla ilgili herhangi bir şey devre dışı bırakılabilir. Kablolu ise Kablosuz için aynı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.