Seçilen programlar için HDD yazma hızı nasıl sınırlanır?


23

Sabit diskim 5400 RPM yavaş ve 10 GB boyutunda dosyalar ile çalışırken, bu büyük dosya bitene kadar yeni bir kopya / muxing / writing / etc yeniden yaratılana kadar bilgisayarı kullanmak mümkün değil. sürece bağlı olarak, tüm HDD hızını yiyor ve bu işlem devam ederken başka bir program kullanılamıyor.

Bu yüzden belki çalıştığım programlar için HDD yazma hızını sınırlayabileceğimi düşünüyordum, bu yüzden büyük dosyalar işlenirken internette gezinmek veya mp3 çalmak için kullanmak için ücretsiz HDD artık hızını saklıyordu.


2
En azından yerel olarak, Windows'ta boğulmuş bir HDD IO'sunu hiç duymadım. İşlem önceliğini belirlemeyi denediniz mi wmic process where name="calc.exe" CALL setpriority "idle"
Marcelo

@Marcelo Priority, disk zamanını değil CPU zamanını belirler. Büyük bir dosyayı işlerken, disk CPU'yu değil bilgisayarı yavaşlatan şeydir.
Keltari


@Keltari Evet, farkındayım. Sadece belki CPU öncelik değiştirerek olabileceğini düşündük bazı Söz konusu nihai hedefi doğru etkisini.
Marcelo,

2
Büyük dosyaları kopyalarken bilgisayar "kullanılamaz" ise, DMA'yı etkinleştirmeyi unutmuş olabilirsiniz? Normalde, diskin meşgul olup olmadığı, çok (veya herhangi bir) CPU müdahalesi olmadan gerçekleştiğinden çok az fark eder veya hiç fark etmez.
Damon,

Yanıtlar:


13

Ne yazık ki, bunu yapamazsınız. Donanım, uygulamalardan ve hatta işletim sisteminin parçalarından soyutlanır. Temelde, uygulama "bunu diske yaz" diyor ve işletim sistemi bunu kullanıyor. Uygulama işlemez nasıl hatta ya ne zaman yazıldığı alır. Bunların hepsi sürücü ve çekirdek seviyesinde ele alınmaktadır ve bunu değiştirmenin gerçek bir yolu yoktur.

Bunu yapabilseniz bile , gerçek şu ki dönen bir manyetik disk kullanıyorsunuz - ve çok yavaş olanı - çok fazla kazanç görmeyeceksiniz. Sürücü sürekli dönüyor ve kafalar disk boyunca hareket ediyor. Dosyanıza daha az yazmış olsanız bile, disk sürekli okuma / yazma / yazma için diskte doğru alanları arar.

En iyi seçenek, başka bir sürücüye sahip olmak ve işinizi bu sürücü üzerinde yapmak, ilk sürücünüzü İnternet, MP3, vb.

PS Ne kadar RAM'e sahip olduğunuzu söylemediniz. Değişim yavaş hızda bir faktör olabilir. Sahip olduğunuz RAM miktarına bağlı olarak, daha fazlasını eklemek yalnızca yardımcı olacaktır.


2
Linux'un bir Windows sürümü ionicebir cevap olmak için yaklaşmaz mıydı?
Daniel Beck

@DanielBeck İşe yarayabilecek bir yazılım olabilir. Ancak, hangi komplikasyonları kullanmaktan gelebileceğini kim bilebilir? Sadece başka bir sürücüye tokat atmak ve konuyla ilgili yapmak çok daha kolay olurdu .
Keltari


1
Bir uygulamanın neden engellenemediğine dair herhangi bir ilkeli tartışma göremiyorum. İşte çok basit bir gaz kelebeği: Her saniye 1 saniye boyunca işlemi askıya alın. Bu, IO'yu% 50 oranında kısaltır ve diğer işlemlerin diski kullanmak için kaymasına izin verir. Arama süreleri 10ms düzeyindedir.
usr

@ usr: Bu, G / Ç'nin türüne ve sıklığına bağlıdır. Yaklaşımınız bazı durumlarda işe yarar ancak diğerleri değil - örneğin, eğer G / Ç tamamen çekirdek modunda oluyorsa, kullanıcı modu işlemini durdurarak her zaman duraklatabileceğinizi sanmıyorum.
Mehrdad,

9

Kement İşlemi , G / Ç'ye öncelik vermenizi sağlar. SSS bölümünden:

V4.1’deki (v4.09 beta) yeni olan Process Lasso, açık olan mevcut ve varsayılan G / Ç öncelik ayarlarına sahip ve bunları gerektirenlara sahip. Bu sadece NT6 + için geçerlidir (Vista, Win7, ...).

Ancak, Vista'nın G / Ç önceliği G / Ç işlemini yapan işlemin öncelik sınıfına bağlı olan G / Ç iş parçacığının önceliğine dayanır. Aslında uygulamalar tarafından kullanılabilen yalnızca iki öncelik düzeyi vardır, Normal ve Çok Düşük. Teknik olarak 5 olmasına rağmen, yalnızca bu ikisi süreçler tarafından uygulanır veya kullanılabilir.

Bu nedenle, iplik önceliklerinin ayarlanması o ipliğin G / Ç'sine yayılır. Bu şekilde, Kement Süreci zaten G / Ç önceliklendirmesini yapar. Microsoft, uygulamalara arama dizisinin önceliğini ayarlayarak (doğrudan veya işlem önceliği temel sınıfını ayarlayarak) G / Ç önceliğini ayarlamalarını önerir.

Ayrıca Microsoft'tan G / Ç önceliklendirmesi ile ilgili makaleye bakın .


1

Windows'taki tüm disk G / Ç'leri yemeye devam eden bir işlem olduğunda ne yapıyorum, İşlem Gezgini'ni açmak ve rahatsız edici işlemi duraklatmak. İşim bittikten ve biraz beklemeye hazırım sonra da devam ettiriyorum. Bu kesinlikle yapmanın en verimli yolu değil çünkü disk G / Ç'yi denetlemenin tamamen ya da hiç bir yolu olmadı ve bilgisayarınızı kullanırken işlemi beklemeniz gerekecek, ancak şimdiye kadar daha iyi bir alternatif görmedim.

Öte yandan, işleminizi Cygwin'de yapabilirseniz pv, bilgisayarınıza yükleyebilir ve pv'nin çıkış hızını kısmak için bir seçenekle (bence -r olduğunu düşünüyorum) ilk veya son adım olarak kullanabilirsiniz.

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.