Yanıtlar:
Bir göz atın hdparm
.
Gönderen kılavuzun ( man hdparm
komut satırında):
-S Bekleme (iş mili) zaman aşımını sürücü için ayarlayın. Bu değer, güç tasarrufu için iş mili motorunu kapatmadan önce ne kadar süre bekleyeceğinizi (disk etkinliği olmadan) belirlemek için sürücü tarafından kullanılır. Bu şartlar altında, çoğu sürücü çok daha hızlı olmasına rağmen, bir sonraki disk erişimine cevap vermek için sürücünün 30 saniye kadar sürebilir.
Zaman aşımı değerinin kodlanması biraz tuhaf. Sıfır değeri "zaman aşımları devre dışı" anlamına gelir: cihaz otomatik olarak bekleme moduna girmez. 1 ila 240 arasındaki değerler 5 saniyenin katlarını belirtir ve 5 saniyeden 20 dakikaya kadar zaman aşımına uğrar. 241 - 251 arasındaki değerler 1 - 11 birim 30 dakika belirtir, bu süre 30 - 5,5 saat arasında zaman aşımına uğrar. 252 değeri, 21 dakikalık bir zaman aşımını gösterir. 253 değeri, satıcı tarafından tanımlanmış bir zaman aşımı süresini 8 ile 12 saat arasında ayarlar ve 254 değeri saklanır. 255, 21 dakika artı 15 saniye olarak yorumlanır. Bazı eski sürücüler bu değerlerin çok farklı yorumlara sahip olabileceğini unutmayın.
Dolayısıyla sudo hdparm -I /dev/sdb | grep level
, mevcut iş mili değerini gösterecektir, örneğin:
Advanced power management level: 254
El kitabından: 254 saklıdır, bu yüzden Ubuntu'nun varsayılan olmasını bekliyorum.
Örnek:
sudo hdparm -S 25 /dev/sdb
= 25 * 5 saniye sonra işmili.
sudo hdparm -S 245 /dev/sdb
= sonradan iş parçacığı (245-240) * 30 dakika.
grep
, APM ( -B
parm) için görünüyorsun ama iş hakkında konuş -S
. APM hakkında da bir şey biliyor musunuz?
-B
ayar yukarıda belirtildiği gibi gösterilir. Geçerli -S
ayarı nasıl görebilirim ?
sudo hdparm -y /dev/sdb
hemen canavarı öldürür
Disk Yardımcı Programı -> HDD sürücüsünü seçin -> sağ üst köşedeki "Diğer işlemler ..." simgesine tıklayın -> Sürücü ayarları ...
Benimki şuna benziyor:
gnome-disk-utility
.
Eğer hdparm 'ın yeniden başlatmalar arasında kalıcı bir ayar yapmasını istiyorsanız, crontab' a eklemek yerine, kullanabilirsiniz /etc/hdparm.conf
. Küçük harf değil, S harfinin kullanımına dikkat edin:
command_line {
hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215
}
UUID'i değiştirerek bu satırı kendinizinkine ekleyin, ya da /dev/sdX
formatı kullanarak cihazı belirleyebilirsiniz . Diskin UUID'sini komut ile öğrenebilirsiniz sudo blkid
.
command_line
Bugünlerde kullanmak doğru mu? Bende farklı örnekler var /etc/hdparm
mı?
sudo lsblk --output NAME,FSTYPE,LABEL,UUID,MODE
Düzenle /etc/hdparm.conf
sudo -H gedit /etc/hdparm.conf # Be careful from now on
Arayın spindown-time
veya disk ayarları bölümü.
/dev/disk/by-label/4TB {
spindown_time = 1200
}
Diske farklı kurulumlarda aynı kalan UUID ile başvurmayı tercih ederim (HW'nin içinde değiştirilmedikçe).
/dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
spindown_time = 1200
}
Init betiği önyükleme sorunlarına neden olursa, nohdparm
çekirdek komut satırından geçebilirsiniz ve script çalışmaz.
man hdparm.conf
.
man hdparm.conf
dolaylı olarak, değerin -S
bu yüzden geçtiğini okur <255 için değerler üst cevapta kural ile uyumlu olmalıdır . Daha fazla bilgi bekliyoruz.
Saatlerce ve saatlerce harcadıktan sonra, WDC sürücümün boşta3 öznitelik değeri ne olursa olsun (google: idle3ctl) hdparm -S komutunu desteklemediğini öğrendim. Ve bu WD sürücülerinde yaygın bir sorundur. Ancak hd-boşta ( http://hd-idle.sourceforge.net/ ) kusursuz çalıştığını bildirmekten memnuniyet duyuyorum . Dpkg tarafından oluşturulmuş bir paketten kurulursa (Yükleme notlarına bakın), hem ubuntu hem de debian'da daemon oluşturur (config / etc / default / hd-idle konumunda). Ayrıca hazırda bekletme modundan çıktıktan sonra da iyi çalışır.
mc varsayılan # ps aux | grep hd boşta | grep -v grep | cut -c 66-; [reklam] 'daki f için; hdparm yapmak -C / dev / sd $ f | grep -v "^ $"; tamam / usr / sbin / hd-rölantide -i 1800 -a sdc -i 600 -a sdd -i 60 -l /var/log/hd-idle.log / Dev / sda: sürücü durumu: aktif / boşta / Dev / SDB: sürücü durumu: bekleme / Dev / SDC: sürücü durumu: bekleme / Dev / SDD: sürücü durumu: bekleme
Samsung HD204UI'nin iş mili davranışının APM seviyesine bağlı olduğunu keşfettim ( hdparm -B
). APM seviyesi 127 ise, iş mili zaman aşımı 10 sn'dir. APM seviyesi 150 ise, iş mili zaman aşımı -S
seçeneği ile tanımlanır .
-S
seçeneği ayarlayabilir ancak alamaz (bkz . Disk işlenme süresi nasıl belirlenir ). Bunu elde etmek için, "Disk" GUI yazılımını kullanın. Ekran görüntüsündeki diğer cevaba bakınız .
Gibi bir şey eklerim:
@reboot sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e > /dev/null 2> /dev/null
root'un crontab'ına. Uuid kullanmak daha iyi çünkü bence sda
/ sdb
vs. her yeniden başlatmada değişiyor gibi görünüyor.
hdparm.conf
?
Ubuntu'da 14.04
Diskler> sürücüyü vurgula> sağ üst köşedeki dişliye tıkla> Drive Settings> artık GUI'yi kullanmak için Bekleme, APM, AAM ve Yazma Önbelleği ayarlarına sahipsin!
Debian'da, WD sürücülerle, hdparm -S ile herhangi bir seviyenin ayarlanmasının , sürücünün sonraki hdparm -I'de 254 seviyesine dönmesine neden olduğunu buldum . Yani dönüp dönmediklerinden emin değilim. Bence hala dönüyorlar.
Bu sürücüler bir sunucu dizisinde ve gerçekten dönmelerini istemiyorum. Geçmişte, bir dosyayı birkaç dakikada bir güncellemek için bir cron işi ayarlayarak bunu zorladım.
Minidlna ile medyada kullandığım bir USB kasasına monte edilmiş harici bir HDD'de hdparm ile hiç şansım olmadı.
Buradan bir fikir gördüm: https://serverfault.com/questions/562738/keeping-usb-backup-drive-from-sleeping-while-mounted
En iyi sonuçlar, bulabileceğiniz disk kullanıcı adlarını kullanmaktan kaynaklanır:
sudo blkid
Aşağıdaki yöntem kök erişimi gerektirir, ancak hdparm da öyle. Bu, her 5 dakikada bir sürücüden rastgele bir blok okumak için crontab kullanır ve tüm mesajları yok sayar. Doğru UUID'ye sahip olduğunuzdan emin olmak için, bunu komut satırında sınayın (istediğiniz UUID'yi kullandığınızdan emin olun).
sudo dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM
Çıktıyı böyle görmelisin:
1+0 records in
1+0 records out
512 bytes copied, 0.000738308 s, 693 kB/s`
Potansiyel olarak / dosya sistemi (benim durumumda bir SSD olan) yazılı bir yerde sonlanabilecek bu mesajı bastırmak için aşağıda kök crontab'da kullanıyorum. İle oraya
sudo crontab -e
Ardından, yorumlar altında:
*/5 * * * * bash -c 'dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM' >/dev/null 2>&1
Umarım bu benzer sorunları olan birine yardımcı olur. Ne yazık ki, bu hala sistem günlüğüne yazılır, ancak bunu bastırmanın potansiyel yolları vardır; bkz bu ServerFault yazı .
[değiştir] 2017-01-07 09:02:
Bu satırı değiştirmek için /etc/rsyslog.d/50-default.conf dosyasını düzenleyerek bu mesajları bastırabildim:
*.*;auth,authpriv.none -/var/log/syslog
buna:
*.*;cron,auth,authpriv.none -/var/log/syslog
Ne yazık ki, bu tüm cron mesajlarını baskılar; Kök dosya sistemini (benim durumumda yaşlanmakta olan bir SSD'de bulunan oturum açma oturumunu kapatmak için yeniden yönlendirmek için cron alamadım, bu yüzden yazma sınırlamak istiyorum), ancak bu sadece bir ev sunucusu olduğu için, muhtemelen çok fazla şey kaçırmıyorum. Kesinlikle misiniz değil bir üretim makinesi için bu stratejiyi önerilir.