Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

[Linux] System "przycina się" podczas operacji na zewnętrznej pamięci



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Komputery
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Luke



Dołączył: 17 Cze 2007
Posty: 1893
Skąd: Szczecin

PostWysłany: Wto Kwi 01, 2014 8:57 pm  OP    Temat postu: [Linux] System "przycina się" podczas operacji na zewnętrznej pamięci Odpowiedz z cytatem Pisownia

Korzystam z Linuksa Mint 16. Podczas kopiowania danych na zewnętrzne urządzenia, tj. pendrive'a lub tablet system zaczyna odpowiadać dużo wolniej, kursor myszy rusza się skokowo, muzyka się przycina etc.
Udało mi się znaleźć informację, że jest to znany problem ze zbyt dużymi stronami pamięci (ktoś pisał, że można to poprawić tylko rekompilacją jądra).
Spróbowałem za jedną z rad zmodyfikować parametr vm.swappiness narzędziem sysctl. Niestety bez większego skutku (system wciąż się tnie podczas transmisji po USB.

Przychodzi Wam może do głowy jakiś sposób rozwiązania tego problemu, możliwie bez powtórnej kompilacji jądra?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
marcin_an



Dołączył: 26 Maj 2005
Posty: 18822

PostWysłany: Wto Kwi 01, 2014 9:20 pm      Temat postu: Odpowiedz z cytatem Pisownia

Czy problem występuje też przy kopiowaniu bezpośrednio poleceniem cp? Jeśli nie, to go używaj. Alternatywnie możesz spróbować wyłączyć (całkowicie) swapa na czas operacji, jeśli chce ci się bawić.

Problem masz prawdopodobnie z tego, że jakiś proces przed kopiowaniem nie wywołuje posix_fadvise z opcją POSIX_FADV_DONTNEED lub POSIX_FADV_NOREUSE, więc system wrzuca plik do cache, jednocześnie wyrzucając z niego dane innych aplikacji, które następnie są wczytywane spowrotem i tak w kółko.

Możesz też spróbować ustawić I/O schedulera na NOOPa (spytaj google o przykłady dla swojego systemu), bo domyślny CFQ jest znany z tego, że potrafi czasami przyciąć system przy bardzo intensywnym rzucaniu danymi między dyskiem a RAMem. Ale nie spodziewałbym się wielkiej poprawy, chociaż słyszałem, że niektórym to sporo pomogło. Pamiętaj tylko, że w ten sposób zdobywasz lepsze czasy reakcji kosztem ogólnej przepustowości I/O, bo NOOP to zwykła kolejka FIFO, która w żaden sposób nie optymalizuje kolejności operacji.

_________________
Nieaktywny od 2017-04-01
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Luke



Dołączył: 17 Cze 2007
Posty: 1893
Skąd: Szczecin

PostWysłany: Sro Kwi 02, 2014 9:47 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Problem występuje również przy stosowaniu cp, ale zacięcia są krótsze i rzadsze. Zawsze wygodniej przeciągnąć pliki, ale cóż, lesze to niż nic. Dzięki.

Czemu taki problem nie występuje na Windowsie? Czy jest szansa, że kiedyś ten błąd (w jądrze?) zostanie rozwiązany?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
marcin_an



Dołączył: 26 Maj 2005
Posty: 18822

PostWysłany: Sro Kwi 02, 2014 10:31 am      Temat postu: Odpowiedz z cytatem Pisownia

Zakładając, że faktycznie przyczyną jest rzucanie stronami pomiędzy swapem a RAMem, to raczej nie zostanie naprawione nigdy, bo nie ma czego naprawiać. System stara się zapewnić jak największą wydajność. Zadaniem aplikacji jest poinformowanie go, że plik jest odczytywany tylko raz, więc strony pamięci jego dotyczące nie powinny być przechowywane. Można to "naprawić" pogarszając wydajność, a to raczej nie przejdzie. To nie Windows, żeby psuć system dla kwestii wizerunkowych ;). Niemniej pod Windowsami NT widziałem identyczne zjawisko przy aplikacjach robiących dużo I/O. Nie wspominając już o linii 9x, w której operacje takie potrafiły przyblokować jądro.

Jeśli jednak cp nadal blokuje, to zastanawiałbym się, czy faktycznie przyczyną jest brak ustawienia odpowiednich flag przez aplikację. Trochę dziwnie wygląda też wystąpienie zależności od punktu docelowego operacji kopiowania (dla swapa nie ma on znaczenia). Próbowałeś wyłączyć swapa i zobaczyć, czy coś się zmieni? Albo zmienić sposób kolejkowania operacji z CFQ na NOOP. Możesz też obniżyć priorytet operacji kopiowania (polecenie ionice z opcją -c 3).

_________________
Nieaktywny od 2017-04-01
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Komputery Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.18963 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |