Jak mogę ograniczyć pamięć podręczną używaną przez kopiowanie, aby nadal była dostępna pamięć dla innej pamięci podręcznej?

Sytuacja podstawowa:

Kopiuję niektóre dyski NTFS w openSuSE. Każdy z nich to 2 TB. Gdy to zrobię, system działa powoli.

Moje przypuszczenia:

Uważam, że jest to prawdopodobnie spowodowane buforowaniem. Linux postanawia odrzucić użyteczną pamięć podręczną (np. Kde4 bloat, dyski maszyn wirtualnych, binaria LibreOffice, pliki binarne Thunderbird itp.) I zamiast tego zapełnić całą dostępną pamięć (łącznie 24 GB) materiałami z dysków do kopiowania, które zostaną odczytane tylko raz, następnie napisany i nigdy więcej nie używany. Więc za każdym razem, gdy korzystam z tych aplikacji (lub kde4), dysk musi być ponownie odczytany, a odczytanie wznowienia z dysku ponownie powoduje zamrożenie / czknięcie.

Z powodu zaniku pamięci podręcznej i faktu, że te nadęte aplikacje wymagają dużo pamięci podręcznej, powoduje to straszne spowolnienie systemu.

Ponieważ jest to USB, dysk i kontroler dysku nie są wąskim gardłem, więc korzystanie z ionice nie czyni tego szybciej.

Sądzę, że to raczej pamięć podręczna, a nie płyta główna zbyt wolno, bo jeśli przestanę kopiować wszystko, nadal będzie się przez jakiś czas poruszać, aż wszystko odzyska. A jeśli ponownie uruchomię kopiowanie, zajmie to minutę, zanim ponownie się przerwie. Ale mogę też ograniczyć go do około 40 MB / s, i działa szybciej (nie dlatego, że ma odpowiednie rzeczy buforowane, ale ponieważ magistrale płyt głównych mają dużo dodatkowej przepustowości dla dysków systemowych). Mogę w pełni zaakceptować utratę wydajności wynikającą z całkowitego wykorzystania możliwości IO płyty głównej (która jest w 100% wykorzystywana, co oznacza marnotrawstwo 0% mocy, co mnie cieszy), ale nie mogę zaakceptować, że ten mechanizm buforowania działa tak strasznie w tym konkretnym zastosowaniu walizka.

<code># free
             total       used       free     shared    buffers     cached
Mem:      24731556   24531876     199680          0    8834056   12998916
-/+ buffers/cache:    2698904   22032652
Swap:      4194300      24764    4169536
</code>

Próbowałem też tego samego w Ubuntu, co powoduje całkowite zawieszenie systemu. ;)

Aby wyjaśnić, nie pytam, jak zostawić pamięć wolną dla „systemu”, ale dla „pamięci podręcznej”. Wiem, że pamięć podręczna jest automatycznie zwracana do systemu w razie potrzeby, ale mój problem polega na tym, że nie jest on zarezerwowany na buforowanie określonych rzeczy.

Pytanie:

Czy jest jakiś sposób, aby powiedzieć tym operacjom kopiowania, aby ograniczyły wykorzystanie pamięci, więc niektóre ważne rzeczy pozostają w pamięci podręcznej, a zatem wszelkie spowolnienia są wynikiem normalnego użycia dysku, a nie ponownego czytania tych samych często używanych plików? Na przykład, czy istnieje ustawienie maksymalnej pamięci na proces / użytkownika / system plików, które mogą być używane jako pamięć podręczna / bufory?

questionAnswers(7)

yourAnswerToTheQuestion