Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-12-29 06:17:30

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

[SOLVED] WIeszanie się systemu przy czytaniu z /dev/zero

Orientuje się ktoś z jakiego powodu może się powiesić system przy tworzeniu pliku z /dev/zero ? Kernel odpowiada bo można zresetować pc przez sysrq ale po wydaniu

Kod:

dd if=/dev/zero of=./plik bs=1M count=1000

system w pewnych warunkach pada martwy i nie idzie go dobudzić w żaden sposób.

Ostatnio edytowany przez morfik (2014-01-03 20:36:47)

Offline

 

#2  2013-12-29 12:00:15

  Pavlo950 - człowiek pasjonat :D

Pavlo950
człowiek pasjonat :D
Zarejestrowany: 2012-02-20
Serwis

Re: [SOLVED] WIeszanie się systemu przy czytaniu z /dev/zero

Ja nie wiem, ale chciałem się spytać, po co Ci taki plik?

Ostatnio edytowany przez Pavlo950 (2013-12-29 12:00:39)

Offline

 

#3  2013-12-29 12:17:29

  mati75 - Psuj

mati75
Psuj
Skąd: masz ten towar?
Zarejestrowany: 2010-03-14

Re: [SOLVED] WIeszanie się systemu przy czytaniu z /dev/zero

Próbuje zapełnić nieskończony dysk twardy.


https://l0calh0st.pl/obrazki/userbar.png

Offline

 

#4  2013-12-29 12:20:54

  Pavlo950 - człowiek pasjonat :D

Pavlo950
człowiek pasjonat :D
Zarejestrowany: 2012-02-20
Serwis

Re: [SOLVED] WIeszanie się systemu przy czytaniu z /dev/zero

Myślałem, że count ogranicza rozmiar tego pliku.

A może sfill? Generalnie robi coś bardzo podobnego.

Offline

 

#5  2013-12-29 12:49:01

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] WIeszanie się systemu przy czytaniu z /dev/zero

To tylko przykładowe wywołanie. A pliki potrzebne do robienia obrazów, głównie.

Offline

 

#6  2013-12-29 13:39:03

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] WIeszanie się systemu przy czytaniu z /dev/zero

Inne jajo.

System może sobie w ten sposób zapchać dyzia, ale nie powinien się zamrażać.
Chyba, że zamarzanie ma swój powód w 100% obciążeniu procka (pomocne mogą być cpulimit, cgroup_cpu), albo zablokowania dyzia przez wyczerpanie limitu operacji IO.
W takim przypadku można pobawić się programikiem ionice albo cgroup_blkio.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#7  2013-12-30 10:21:38

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] WIeszanie się systemu przy czytaniu z /dev/zero

To chyba jednak nie jest problem wykorzystania zasobów.

Zrobiłem sobie taką regułkę:

Kod:

group users/dd {
    perm {
        task {
            uid = root;
            gid = root;
        }
        admin {
            uid = root;
            gid = root;
        }
    }
    blkio {
        blkio.throttle.write_bps_device = "8:0 5242880";
        blkio.throttle.read_bps_device = "8:0 5242880";

    }
}

8:0 to jest mój główny dysk, a ten 5242880 to 5M zapisu/odczytu max. Podpiąłem to pod dd

Kod:

*:dd                        blkio                    users/dd/
*:dd*                        blkio                    users/dd/

i w logu cgrulesengd można przeczytać:

Kod:

Found matching rule * for PID: 28946, UID: 1000, GID: 1000
Executing rule * for PID 28946... Will move pid 28946 to cgroup 'users/dd/'
Adding controller blkio
OK!
Cgroup change for PID: 28946, UID: 1000, GID: 1000, PROCNAME: /bin/dd OK

A pid widnieje w /cgroup/blkio/users/dd/tasks -- także chyba to działa dobrze. Problem w tym, że to wcale nie ogranicza niczego. :]

Kod:

$ dd if=/dev/zero of=./zero bs=1M                                                                                                  
^C3502+0 records in
3502+0 records out
3672113152 bytes (3.7 GB) copied, 40.466 s, 90.7 MB/s

$ dd if=/dev/zero of=./zero bs=1M
^C601+0 records in
601+0 records out
630194176 bytes (630 MB) copied, 8.5338 s, 73.8 MB/s

Znów coś ff jest zamieszany, bo to wieszanie się systemu przy używaniu dd, występuje najczęściej gdy ff jest odpalony.

Offline

 

#8  2013-12-30 15:15:19

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] WIeszanie się systemu przy czytaniu z /dev/zero

Cgroup nie zakłada sztywnych ograniczeń na procek i dysk (tylko w memory można nakładać sztywne limity), zapewnia natomiast, że w czasie maksymalnego obciążenia dany proces będzie trzymany w danym limicie, wylicznym średnią ważoną.

Np w cpu:
Proces 1 - 500
proces 2 - 1000

Przy niskim obciążeniu każdy proces może zająć praktycznie cały procek, ale przy pełnym wykorzystaniu procka dostaną te procesy 1 - 33%, 2 - 66% mocy procka.

To jest dynamiczny podział.

U Ciebie wyraźnie dyzio się nie wyrabia.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2013-12-31 01:41:43

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] WIeszanie się systemu przy czytaniu z /dev/zero

Z czym nie wyrabia? Z kopiowaniem pliku?

To co powyżej było ten 90.7 MB/s przeszedł swobodnie, natomiast pc się przyciął przy 2-5MB/s udało mi się to zobaczyć po paru minutach wciskania ctrl+c. W końcu ubiło proces i wyrzuciło staty dd. Także tutaj coś innego ma znaczenie. Nie wiem co ale jak to dorwę to pewnie rozwiąże wszystkie problemy.

Narazie spróbuję zrobić sobie kopię systemu i wrzucić ja do pliku img i wypalić na drugim dysku, niezaszyfrowanym. Być może tutaj coś jest nie tak z szyfrowaniem.

Offline

 

#10  2014-01-03 20:36:28

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] WIeszanie się systemu przy czytaniu z /dev/zero

Ten problem również został rozwiązany przez dodanie:

Kod:

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

Więcej info na http://lwn.net/Articles/572911/

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)