Nowe posty

Autor Wątek: Powolny system  (Przeczytany 6705 razy)

rk0

  • Gość
Powolny system
« dnia: 2009-10-05, 11:00:31 »
Witam. Mam zainstalowanego Debiana 4.0 i w porównaniu do Windowsa strasznie powolnie mi działa - chodzi o operacje odczytu/zapisu na dysku.

Dysk SATA
# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   1084 MB in  2.00 seconds = 542.02 MB/sec
 Timing buffered disk reads:  102 MB in  3.05 seconds =  33.42 MB/sec
Procesor 2.0 Ghz 64 (system 32)
Pamięć 1GB
System plików na / ext3
Partycja SWAP 1GB

Pierwsze uruchomienie fireFox`a na świeżo uruchomionym systemie trwa 25 sekund (drugie 3sekundy)
OpenOffice Writer pierwsze 13 sekund, drugie 2 sekundy
Powyższe jeśli uruchamiam w czasie kopiowania plików to czasy uruchomienia wydłużają się kilkukrotnie.

Kopiowanie plików trwa dużo dłużej niż w systemie Windows.

ITP ITD

Jak mogę jakoś zoptymalizować system, aby był szybszy jeśli chodzi o szybkość odczytu/zapisu z dysku?

Offline mateo86

  • Users
  • Guru
  • *****
  • Wiadomości: 647
    • Zobacz profil
Powolny system
« Odpowiedź #1 dnia: 2009-10-05, 11:09:52 »
Pewnie trzeba dma włączyć...

rk0

  • Gość
Powolny system
« Odpowiedź #2 dnia: 2009-10-05, 11:21:27 »
Cytat: mateo86
Pewnie trzeba dma włączyć...
Jeśli tak, to jak?

# hdparm -d1 /dev/sda

/dev/sda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Inappropriate ioctl for device
 HDIO_GET_DMA failed: Inappropriate ioctl for device
////// edit

# dmesg
[    2.132432] libata version 3.00 loaded.
[    2.133432] sata_sil 0000:00:12.0: version 2.3
[    2.133473] sata_sil 0000:00:12.0: enabling device (0005 -> 0007)
[    2.133526] ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 22 (level, low) -> IRQ 22
[    2.133690] scsi0 : sata_sil
[    2.133815] scsi1 : sata_sil
[    2.134071] ata1: SATA max UDMA/100 mmio m512@0xd0004000 tf 0xd0004080 irq 22
[    2.134118] ata2: SATA max UDMA/100 mmio m512@0xd0004000 tf 0xd00040c0 irq 22
[    2.139413] usbcore: registered new interface driver usbfs
[    2.139485] usbcore: registered new interface driver hub
[    2.139578] usbcore: registered new device driver usb
[    2.140576] ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.310539] 8139too Fast Ethernet driver 0.9.28
[    2.366021] sdhci: Secure Digital Host Controller Interface driver
[    2.366069] sdhci: Copyright(c) Pierre Ossman
[    2.568081] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[    3.064481] ata1.00: ATA-7: TOSHIBA MK1234GSX, AH001J, max UDMA/100
[    3.064481] ata1.00: 234441648 sectors, multi 16: LBA48 NCQ (depth 0/32)
[    3.080757] ata1.00: configured for UDMA/100
[    3.400061] ata2: SATA link down (SStatus 0 SControl 310)
[    3.400201] scsi 0:0:0:0: Direct-Access     ATA      TOSHIBA MK1234GS AH00 PQ: 0 ANSI: 5

chmooreck

  • Gość
Powolny system
« Odpowiedź #3 dnia: 2009-10-05, 13:42:29 »
zacznij od
# hdparm -i /dev/sda

arctgx

  • Gość
Powolny system
« Odpowiedź #4 dnia: 2009-10-05, 16:07:28 »
Cytat: rk0
Pierwsze uruchomienie fireFox`a na świeżo uruchomionym systemie trwa 25 sekund (drugie 3sekundy)
OpenOffice Writer pierwsze 13 sekund, drugie 2 sekundy
To drugie nie ma już takiego znaczenia, bo część danych siedzi już w pamięci i, póki nie zostały wyparte przez coś bardziej potrzebnego, nie trzeba sięgać na dysk. Wykonaj sobie taki ciąg poleceń:
 $ sudo sysctl vm.drop_caches=3 # opróżnia wspomnianą pamięć
 $ time dpkg -S coś
 $ time dpkg -S coś # bez opróżniania
(patrz Documentation/sysctl/vm.txt w źródłach jądra).

Hdparm na sterownikach libata i na starych IDE działa nieco inaczej.

Cytat: rk0
Jak mogę jakoś zoptymalizować system, aby był szybszy jeśli chodzi o szybkość odczytu/zapisu z dysku?
Z braku czasu podsunę Ci tylko hasła do szukania, lektury i eksperymentowania z głową:
prelink, "io scheduler", cfq, btrfs, ext4, iotop, readahead.

rk0

  • Gość
Powolny system
« Odpowiedź #5 dnia: 2009-11-15, 15:39:28 »
Witam ponownie. Co nie co kombinowałem z io schedulerem ale wiele to nie dało.
Może inaczej opisze problem:

Robiłem ostatnio kopie danych. 7z + tar (żeby podzielić na woluminy po 256m i nagrać na płyty)
Teraz je rozpakowuję ale w trakcie rozpakowywania praktycznie nie da się korzystać z systemu :/
Na przykładzie przeglądarki www: zacina się (głównie przy kliknięciu w link lub otwarciu nowej karty) na czas od kilku do kilkudziesięciu sekund.
Mam co prawda  tylko 1GB RAM ale w tej chwili gkrellm pokazuje 544M wolne.
WTF? :/


Edit:
Dodam, że przed, podczas ani po "zacięciu" nie są przenoszone żadne strony z pamięci do/z swapa (tak wynika z wykresu gkrellm)
Zatrzymanie rozpakowywania (ctrl-z) po kilku sekundach (w tym czasie jest zapisywanych/odczytywanych kilkanaście MB danych) "zacinanie" zanika.

Pozdrawiam wszystkich.
Mimo wszystko Linux!

arctgx

  • Gość
Powolny system
« Odpowiedź #6 dnia: 2009-11-15, 22:20:20 »
Korzystałeś ze wspomnianego iotop?

rk0

  • Gość
Powolny system
« Odpowiedź #7 dnia: 2009-11-16, 23:51:53 »
Tak, mam go i korzysta(łe)m z niego, ale iotop pokazuje mi tylko, które wątki/procesy w danej chwili czytają/piszą i nic podejrzanego na liście nie widzę. Jak może mi pomóc?

Włączona przeglądarka www, kadu, smplayer:
Total DISK READ: 125.47 K/s | Total DISK WRITE: 0 B/s
  PID USER      DISK READ  DISK WRITE   SWAPIN    IO>    COMMAND                                                                            
32023 riko      125.47 K/s       0 B/s  0.00 %  3.20 % mplayer -noquiet -nofs -sub-fuzziness 1 -identify -slave -vo xv -ao alsa -zoom -nokee
Podczas rozpakowywania:
Total DISK READ: 5.42 M/s | Total DISK WRITE: 11.12 M/s
  PID USER      DISK READ  DISK WRITE   SWAPIN    IO>    COMMAND                                                                            
32172 root      291.79 K/s   11.12 M/s  0.00 % 51.25 % tar vxzf /home/riko/ASD/var_20091020.tar.gz
32173 root        5.02 M/s       0 B/s  0.00 % 19.41 % gzip -d
32023 riko      116.72 K/s       0 B/s  0.00 %  0.00 % mplayer -noquiet -nofs -sub-fuzziness 1 -identify -slave -vo xv -ao alsa -zoom -nokee
Total DISK READ: 2.97 M/s | Total DISK WRITE: 2.82 M/s
  PID USER      DISK READ  DISK WRITE   SWAPIN    IO>    COMMAND                                                                            
 1026 root           0 B/s       0 B/s  0.00 % 99.99 % [kjournald]
  184 root           0 B/s       0 B/s  0.00 % 99.99 % [kswapd0]
32173 root        2.70 M/s       0 B/s  0.00 % 76.27 % gzip -d
 3078 riko           0 B/s       0 B/s  0.00 % 74.68 % multiload-applet-2 --oaf-activate-iid=OAFIID:GNOME_MultiLoadApplet_Factory --oaf-ior-
32023 riko      224.14 K/s       0 B/s  0.00 % 24.28 % mplayer -noquiet -nofs -sub-fuzziness 1 -identify -slave -vo xv -ao alsa -zoom -nokee
32172 root        3.45 K/s    2.82 M/s  0.00 %  6.18 % tar vxzf /home/riko/ASD/var_20091020.tar.gz
 2986 riko       27.59 K/s       0 B/s  0.00 %  0.00 % gnome-panel --sm-client-id default1
32078 riko       24.14 K/s       0 B/s  8.66 %  0.00 % python /usr/bin/iotop

arctgx

  • Gość
Powolny system
« Odpowiedź #8 dnia: 2009-11-17, 00:53:09 »
Miałem na myśli pokazanie na górze najbardziej "I/O-żrącego" procesu. Co dalej, na razie dokładnie nie potrafię powiedzieć, choć interesuje mnie to jakoś od półtora roku. Jest kilka niskopoziomowych narzędzi jak blktrace lub chyba jeszcze coś z zestawu systemtap. Z pierwszym nie poradziłem jeszcze sobie, choć autorzy dokumentacji wyciągali imponujące (dla mnie) wnioski, takie jak konflikt dwóch konkretnych procesów o miejsce w kolejce planisty wejścia-wyjścia. Drugiego jeszcze nie tykałem. Jest jeszcze narzędzie strace. Być może ono pozwoliłoby łatwo podejrzeć, jakie wywołanie jest tak żrące. Próba odpalenia go na takim kolosie jak firefox kończyła się obciążeniem systemu trudnym do opanowania. Możliwe, że selekcja monitorowanych wywołań (-e trace=coś,coś2) zmniejszyłaby to obciążenie. Trzeba jednak wiedzieć, co jest kandydatem do selekcji lub deselekcji.

Od praktycznej strony można ugryźć problem. Ostatnio miałem okazję kilka dni pracować na Ubuntu 9.04 odpalonego jako live. Praca na Firefoksie z ustawieniami domyślnymi, nieznacznie zmodyfikowanymi, była płynna. Kiedy jednak do katalogu domowego zaimportowałem własny, codziennie używany katalog Firefoksa z Debiana, co jakiś czas przeglądarka zamrażała się, a iotop wskazywał, że marnuje sporo czasu CPU na nie wiadomo jakie operacje wejścia-wyjścia.

Może zrób tak, że załóż nowego użytkownika i zaczynaj od czystych ustawień, byś mógł wyłapać, w którym momencie pojawia się problem.

rk0

  • Gość
Powolny system
« Odpowiedź #9 dnia: 2009-11-17, 02:15:17 »
Na koncie nowego użytkownika wszystko działa wyśmienicie. Przerost ustawień?
Usunę chyba wszystkie .ukryte katalogi z /home z ustawieniami i skonfiguruję wszystko od nowa (zacznę od firefoksa)
Jedno jeszcze mi się nie podoba - system zaczynał korzystać ze swapa mimo, że było jeszcze ok 400M wolnej pamięci.. przyjrzę się temu.

Dzięki arctgx i pozostali.

arctgx

  • Gość
Powolny system
« Odpowiedź #10 dnia: 2009-11-17, 16:12:58 »
Apetyt na pamięć wymiany można regulować liczbą od 0 do 100 w pliku /proc/sys/vm/swappiness, np.
echo 10 > /proc/sys/vm/swappiness
czy równoważnie
sysctl vm.swappiness=10
(w Debianie TAB uzupełnia) Można zapisać linijkę postaci vm.swappiness=wartość /etc/sysctl.d/moje_ustawienia.conf

Dokumentacja online: http://www.mjmwired.net/kernel/Documentation/sysctl/

Można całkiem wyłączyć pamięć wymiany i włączać w razie potrzeby:
swapoff /plik/lub/urządzenie/wymiany
(podobnie swapon).

rk0

  • Gość
Powolny system
« Odpowiedź #11 dnia: 2009-11-17, 20:29:43 »
Dzięki. Zmieniłem swappiness na 10. Mam nadzieje, że nie będzie za mało ;p

arctgx

  • Gość
Powolny system
« Odpowiedź #12 dnia: 2009-11-18, 19:35:13 »
To 10 było tylko przykładowe. Zamiast mieć nadzieję, obserwuj i eksperymentuj z innymi wartościami ;)

adamziaja

  • Gość
Powolny system
« Odpowiedź #13 dnia: 2009-11-22, 21:47:52 »
Cytuj
2009-10-05 11:00:31 [...] Mam zainstalowanego Debiana 4.0 [...]
czemu takiego suchara? w domu mozesz spokojnie korzystac z wersji 6stej (squeeze/sid)