Maszyna z systemem Windows XP cierpi z powodu niskiej wydajności podczas utrzymywanego We / Wy, sieci lub dysku. Zużycie procesora i pamięci jest minimalne, użycie systemu + przerywa użycie <5%, zgodnie z Process Explorer. Zużycie pamięci <20% (z 4 GB). Utrzymanie IO dysku lub sieci na poziomie ~ 150 KB / s lub większym powoduje poważne spowolnienie. Najbardziej zauważalnie aplikacje ( wszystkie aplikacje) uruchamiają się bardzo wolno (mała aplikacja Hello World C skompilowana z MinGW zajęła 12 sekund, aby wyświetlić komunikat printf () i wyjść).
Czy to normalne? Jeśli nie, co się dzieje? Nie jest to też maksymalna możliwa liczba operacji we / wy ... Mogę z łatwością osiągnąć około 100 MB / s dla dysku twardego i 5 MB / s w sieci, ale wszystko powyżej ~ 150 KB / s powoduje takie zachowanie.
Dell Inspiron 1545, Intel P8600 Core2 Duo @ 2.4GHz, 4 GB RAM, 500 GB HDD
Odpowiedzi:
Podejrzewam, że to, co widzisz, jest normalnym zachowaniem komputera z systemem Windows w odniesieniu do operacji we / wy dysku. W celu ewentualnego potwierdzenia mogłem porównać dwa komputery z systemem Windows 7, które mają bardzo podobne wskaźniki wydajności systemu Windows (wskazuje?). Pierwszy komputer to laptop Thinkpad podobny do twojego z P8600 @ 2,4 GHz i dyskiem 2,5 "SATA II 5400 obr./min. Drugi komputer to komputer stacjonarny z dwurdzeniowym procesorem Athlon 64 X2 3800+ i 3,5" SATA 7200 obr./min. Uruchomiłbym lokalną kopię dysku na dysk dużego (kilka gigabajtów) pliku; podczas gdy ta kopia pliku była w toku, spróbowałbym uruchomić aplikację. Typowe opóźnienie dla obu komputerów było rzędu 10 do 20 sekund (opóźnienie prawdopodobnie można skorelować z rozmiarem aplikacji).
Ponieważ komputer stacjonarny ma dwa dyski twarde, mogłem również wykonać kopię pliku na jednym dysku, a następnie załadować aplikację z drugiego dysku twardego; Dzięki dwóm niezależnym napędom dyskowym aplikacje uruchomiły się w około 2–5 sekund.
Wspominasz, że ten problem występuje również w przypadku „sieciowych operacji we / wy”. O ile nie wykonasz jednorazowego transferu danych (np. Danych sieciowych do segmentu bitów, takiego jak / dev / null w * nix), prawdopodobnie użyłeś pliku dyskowego jako źródła lub miejsca docelowego do wygenerowania „sieciowego we / wy” . Tak więc dyskowe operacje we / wy ujawniają się jako wspólne działanie „dyskowych operacji we / wy”, „sieciowych operacji we / wy” i powolnego uruchamiania aplikacji.
Może to być dziwactwo planowania w systemie Windows: zadanie intensywnie korzystające z operacji we / wy (np. Kopia pliku) może uzyskać priorytet planowania po zakończeniu każdej pojedynczej operacji odczytu lub zapisu (aby w pewnym stopniu zrekompensować czas bezczynności procesu zmuszony do oczekiwania i utrzymania przepustowości we / wy). Inne zadanie / proces rozpoczęty, gdy aktywne jest to zadanie intensywnie we / wy, może mieć niekorzystną sytuację w zakresie planowania we / wy. Podobne dziwactwo widziałem w innym systemie operacyjnym: opracowywałem narzędzie do kopiowania bazy danych w systemie dla wielu użytkowników (nie w Uniksie). Narzędzie spowolniło system dla wszystkich innych użytkowników podczas jego wykonywania, więc zostałem oskarżony o ustawienie harmonogramu lub priorytetów zadań na moją korzyść, ale nie zrobiłem tego.
źródło
Przepustowość to tylko połowa sukcesu. Jeśli jest to przypadkowe we / wy, może spowolnić wszystko do punktu, w którym operacje we / wy zaczynają się kolejkować.
Powinieneś uruchomić Perfmon.exe i sprawdzić średnią długość kolejki dyskowej i średnią liczbę sekund na liczniki transferu .
źródło