Kirjoittaja Aihe: Rsync taustalle  (Luettu 4663 kertaa)

Ganymedes

  • Käyttäjä
  • Viestejä: 3915
    • Profiili
Rsync taustalle
« : 20.02.10 - klo:22.06 »
No, en tiedä miten edistyksellistä käyttöä tämä on, mutta sellainen olisi tavoitteena joka tapauksessa.

Ongelmana on se, että rsync -komennon käyttö samba-levyltä tuntuu vievän kaikki resurssit uudessa koneessa. En tiedä miksi se niin tukkii tätä uutta konetta, koska olen käyttänyt suunnilleen samanlaisessa ympäristössä rsync:iä aiemminkin, säännöllisesti ja monesti kohtalaisen suurilla datamäärillä. Nyt olen uudella koneella kopioimassa joitakin satoja gigatavuja yhdellä kertaa ja sitä ei tietysti ole jatkuvasti tehty.

Tällä "samanlaisella ympäristöllä" tarkoitan: uudehko ASUS-emo, AMD Athlon/Phenium-multicore prosessori, serverinä Ubuntu (tai joskus Windows XP), SATA-II -levy, 100 Mb/1 Gb Mb LAN, client-koneessa Ubuntu 9.04 64-bit (= se kone mihin ollaan kopioimassa).

Ongelma ilmenee siten, että kun antaa komennon "rsync -aturv ..." niin koneella ei oikein pysty tekemään mitään muuta. Esimerkiksi tämän kirjoittelun taustalla sitä ei voi ajaa, koska tämä Firefoxin käynnistys kestäisi todella kauan. Kyse ei ole pelkästään Firefoxista, koska esim. System Monitorin käynnistys kestää myös todella kauan, niin kuin kaikki muukin. Otin jo Firefoxista pois "Ubuntu extras" ja otit nVidian ohjaimelta effektit pois - mutta eivät ne mitään auttaneet.

rsync:ssä olen yrittänyt myös antaa "nice -15 rsync -aturv...", mutta ei sekään mitään auta. System Monitorin mukaan komento menee läpi, mutta en tiedä onko tämä nice-arvo oikeasti edes Ubuntun juttuja (old-skool AT&T Unixin käyttäjänä tällaista tulee yritettyä - siellä se vaikutti) ?

Tällä on sikäli merkitystä, että periaatteessa tällainen "backup-luokan" kopiointi saisi pyöriä kiltisti taustalla ja saisi olla häiritsemättä normaalia työskentelyä. Jos tätä ei rsync:llä ja nice:llä pysty tekemään, niin miten tällaiset asiat sitten oikein pitäisi tehdä?

Joo, myönnetään, että koneessa on vain yksi (uusi) Sata-II levy, mutta ei kai se nyt näin huono voi olla?

Silloin kun Ubuntu-kone on serverinä, niin sen hakemistojako on mountattu Samballa (smbfs) eli tässä ongelmatapauksessa on juuri näin.

L.öytyykö tähän jotain vinkkejä?

Ville Pöntinen

  • Käyttäjä
  • Viestejä: 2078
    • Profiili
Vs: Rsync taustalle
« Vastaus #1 : 20.02.10 - klo:22.40 »
En osaa neuvoa, mutta:

Ensimmäinen kopiointi ottaa tietysti paljon aikaa ja siirtää paljon tietoa. (Miksi niin on, en tiedä.) Myöhemmin rsync kopioi tietty vaan muuttuneet ja uudet tiedostot, jolloin operaatio on kevyempi.

Palvelimella tuollaiset kopioinnit kannattaa asettaa tapahtumaan yöllä, jolloin muu toiminta ei häiriinny. Ellei ole jotain syytä tehdä niitä päivällä tai pitkin päivää tietysti.

Ganymedes

  • Käyttäjä
  • Viestejä: 3915
    • Profiili
Vs: Rsync taustalle
« Vastaus #2 : 20.02.10 - klo:23.19 »
Kyllä, kyllä, ihan totta kaikki.

Mutta varsinainen kysymys on tässä se, että ei tällainen yksinkertainen kopiointi saisi halvauttaa koko systeemiä. Kun asiaa ajattelee vähän pidemmälle, niin eihän tällaisella, ehkäpä scriptillä ajettavalla komennolla, voi KOSKAAN olla sen kiireempi kuin interaktiivisella käyttäjällä.

Eh, ... en haluaisi oikeasti vertailla, mutta selvyyden vuoksi mainittakoon, että wintoosan robocopy toimii vallan mainiosti taustalla eikä halvauta yhtään mitään ( = robocopy /e /v /mir - lähin vastine, tai oikeastaan tämä on se mitä haluaisin rsync:in tekevän).
« Viimeksi muokattu: 20.02.10 - klo:23.25 kirjoittanut Ganymedes »

Ville Pöntinen

  • Käyttäjä
  • Viestejä: 2078
    • Profiili
Vs: Rsync taustalle
« Vastaus #3 : 20.02.10 - klo:23.53 »
Niin piti muuten kirjoittaa etten tiedä miksi kopiointi halvaannuttaa systeemin, eikä miksi ensimmäinen kerta on isompi... Joku täällä foorumilla suri tuota uutta "ominaisuutta" eli levytoimintojen koneen halvautusta, liekö asia pahentunut jonkin version myötä. En tässä ja nyt löydä ko ketjua, mutta ei sielläkään muistaakseni ollut ratkaisua tai apua asiaan.

igor_2

  • Käyttäjä
  • Viestejä: 768
    • Profiili
Vs: Rsync taustalle
« Vastaus #4 : 21.02.10 - klo:08.11 »
Mutta varsinainen kysymys on tässä se, että ei tällainen yksinkertainen kopiointi saisi halvauttaa koko systeemiä.

Oletko yrittänyt ajaa sitä matalammalla prioriteetilla? Prioriteettia voi ymmärtääkseni säätää ajamalla ohjelma nicellä (henk. koht. komemusta ei ole, mutta näin isot pojat väittävät): http://linux.fi/wiki/Nice

Ganymedes

  • Käyttäjä
  • Viestejä: 3915
    • Profiili
Vs: Rsync taustalle
« Vastaus #5 : 21.02.10 - klo:11.13 »
Niin tästä rsyncin ideasta, koskapa sillä saattaa olla yleisempääkin mielenkiintoa:

Rsync:llä ensimmäinen ajokerta kestää kauemmin yksinkertaisesti sen vuoksi, että se silloin kopioi ensimmäisen kerran kaiken. Seuraavalla ajokerralla rsync vertaa lähdettä ja kohdetta toisiinsa ja kopioi ainoastaan muuttuneet tiedostot - tyypillisestihän isossakin massassa tiedostoja muuttuu vain vähän, joten seuraavat ajokerrat ovat suhteellisesti ottaen erittäin nopeita. Tällaisella tavalla siis voidaan isokin tiedostomassa pitää ajantasalla, jossakin toisessa paikassa erittäin nopeasti kunhan tiedostot on ensin kertaalleen kopioitu. Tästä on myös se etu, että ei tarvitse manuaalisesti ollenkaan huolehtia siitä, että mitä kohteeseen kopioidaan vaan komento huolehtii siitä. Noin periaatteessa tavallisella "copy" toiminnalla, esim. hiirellä raahaamalla, ei tee mitään tämäntyyppisessä työssä.

Rsync:ssä (kuten sen vastineissa, vaikkapa robocopy:ssä) on suuri joukko vipusia, joilla ohjaillaan käytöstä - edelliset olivat vain pääperiaatteita, mutta käytännön vaatimukset ovat monimutkaisempia. Esimerkkejä näillä vipusilla tehtävistä asioista:
- sen määrittäminen miten oikeasti lähdettä ja kohdetta verrataan
- mitä tehdään kohteessa oleville vanhoille tiedostoille, joita lähteessä ei enää ole
- mitä tehdään kohteessa oleville uudemmille tiedostoille kuin mitä lähteessä on
- mitä tehdään tyhjille hakemistoille kopioitaessa (halutaanko mukaan vai ei)
- itse asiassa kopioidaanko mitään, vai annetaanko vain vertailu siitä mitä tapahtuisi jos kopioitaisiin


Tästä nice-arvosta:

Itse asiassa sitähän yritin jo yllä käyttää, tosin ei vaikuttanut mitään. Tässä on jotain hämärää tai sitten antamasi linkki johtaa Wikiin joka on ristiriitaisesti kirjoitettu tai ei ainakaan sovellu Ubuntuun - en tiedä varmasti mistä on kyse, mutta ...

Komentoni "nice -15" on oikein Ubuntun man-sivujen mukaan (ja näin se oli AT&T:n Unixissa  ;D). Tällä lisätään 15 prosessin kiltteyttä, eli se menee taustalle 15 pykälän verran. Ubuntun System Monitor näyttää myös tämän jälkeen sen, että prosessilla nicearvo=15, eli siis on 15 pykälää kiltimpi kuin kaikki muut (koska ne ovat oletuksena nollassa). Joten luulisin, että tein oikein.

Wikin mukaan tapahtuisi jotakin muuta ja positiivisen nice-arvon antoa ei ole siinä kerrottu (enkä saanut toimimaan kokeilemalla). Renice on kerrottu, mutta sitä en kokeillut, koska se on eri juttu.

Kokeilin myös vertailun vuoksi sitä, että kopioin ihan normaalisti Nautiluksen ikkunoissa suurta tiedostomassaa. Kyllähän sekin tämän järjestelmän saa tukehtumaan - ei ehkä heti, mutta muutamassa minuutissa kuitenkin. Ehkä varsinainen ongelma on rauta-arkkitehtuurissa, mutta tietysti jos rsync:in olisi saanut käyttäytymään kiltisti ...

Onko joku huomannut, että levyn partitiointi vaikuttaisi suorityskykyyn? Nyt minulla on 1 TB:n levy, joka on annettu mennä Ubuntu 9.04:n oletusten mukaan. En ainakaan heti olettaisi, että Ubuntulle on väliä pyöriikö systeemi eri partitiossa vai samassa kuin data - jos siis fyysinen levy on kuitenkin sama.

Oikeasti järjestelmissä missä haluan suorituskykyä, käytän systeemille ja datalle AINA eri levyjä, mutta olisihan se hyvä, että näinkin saisi systeemin toimimaan parhaalla mahdollisella tavalla.

Kuten aina - kaikki kommentit ovat tervetulleita  ;D
« Viimeksi muokattu: 21.02.10 - klo:11.17 kirjoittanut Ganymedes »

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: Rsync taustalle
« Vastaus #6 : 21.02.10 - klo:12.09 »
Komentoni "nice -15" on oikein Ubuntun man-sivujen mukaan (ja näin se oli AT&T:n Unixissa  ;D). Tällä lisätään 15 prosessin kiltteyttä, eli se menee taustalle 15 pykälän verran. Ubuntun System Monitor näyttää myös tämän jälkeen sen, että prosessilla nicearvo=15, eli siis on 15 pykälää kiltimpi kuin kaikki muut (koska ne ovat oletuksena nollassa). Joten luulisin, että tein oikein.


siis negatiivinen nicen arvo lisää prosessin prioriteettia eli antaa sille skeduloinnissa enemmän prosessoriaikaa. positiivinen puolestaan vähentää prioriteettia ja on sitä mitä tässä  haet.
Janne

Ganymedes

  • Käyttäjä
  • Viestejä: 3915
    • Profiili
Vs: Rsync taustalle
« Vastaus #7 : 21.02.10 - klo:12.44 »
Komentoni "nice -15" on oikein Ubuntun man-sivujen mukaan (ja näin se oli AT&T:n Unixissa  ;D). Tällä lisätään 15 prosessin kiltteyttä, eli se menee taustalle 15 pykälän verran. Ubuntun System Monitor näyttää myös tämän jälkeen sen, että prosessilla nicearvo=15, eli siis on 15 pykälää kiltimpi kuin kaikki muut (koska ne ovat oletuksena nollassa). Joten luulisin, että tein oikein.


siis negatiivinen nicen arvo lisää prosessin prioriteettia eli antaa sille skeduloinnissa enemmän prosessoriaikaa. positiivinen puolestaan vähentää prioriteettia ja on sitä mitä tässä  haet.

Kyllä, näin on mielestäni aina ollut ja näin olen mielestäni onnistunut tekemäänkin.

Mutta Wikissä on annettu täysin ristiriitainen merkitys sille mitä tein. Sinänsä tästä on aika vaikeata päätellä mitään, koska komento:

"nice -15" voi hyvin antaa kumpaa hyvänsä positiivista tai negatiivista, riippuen siitä onko "-" vipusen merkki vai negatiivisen luvun etumerkki, siinäkin mielessä Wiki on hyvin laiskasti kirjoitettu. (Eihän Unixin kommennoissa koskaan mitään universaalia yhtenäisyyttä ole ollut, joten päättelyt menevät usein metsään).

Joka tapauksessa, kuten jo yllä kirjoitin, komento "nice -15" näyttää POSITIIVISELTA nice arvolta kun katsoo System Monitorissa, Jos tähän voi luottaa, niin prosessi on kiltti ja komento on täysin linjassa tavoitteen kanssa. Jos tähän ei voi luottaa niin kommentoi toki ja kerro miten sitten tarkalleen pitäisi toimia. Joka tapauksessa komento "nice 15" antaa vain virheen, josta päätellen se ei ainakaan ole oikein. Wikissä ei tähänkään oteta kantaa, mutta puhutaan "renice" komennosta jossa Wikin mukaan tämä positiivinen olisi sallittu - siitä voi tietysti päätellä jotakin, esim. että vastaavasti positiivinen arvo toimisi nice-komennossakin, ehkä, mutta lähinnä tulee mieleen, että Wiki ei pidä paikkansa Ubuntun tapauksessa (eihän se Ubuntun Wiki olekaan, vaan Linuxin Wiki).

Jospa tämä selvensi  ;D ... luulisin, että ongelma ei ole tässä.

K-Veikko

  • Käyttäjä
  • Viestejä: 309
    • Profiili
Vs: Rsync taustalle
« Vastaus #8 : 21.02.10 - klo:13.18 »
Arvelisin että kyse ei ole prosessoritehon jakamisesta vaan siitä miten eri ohjelmille on priorisoitu kiintolevylle kirjoittaminen ja sieltä lukeminen. - Montako lukupäätä kiintolevyssäsi on?

BackUpissa rsync lukee (tai kirjoittaa) kiintolevyltä "koko ajan".

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: Rsync taustalle
« Vastaus #9 : 21.02.10 - klo:13.22 »
"nice -15" voi hyvin antaa kumpaa hyvänsä positiivista tai negatiivista, riippuen siitä onko "-" vipusen merkki vai negatiivisen luvun etumerkki, siinäkin mielessä Wiki on hyvin laiskasti kirjoitettu. (Eihän Unixin kommennoissa koskaan mitään universaalia yhtenäisyyttä ole ollut, joten päättelyt menevät usein metsään).

joo, itse ajattelin vaan renice-komentoa. niceä olen käyttänyt aina syntaksilla "nice -n 15"

Joka tapauksessa, kuten jo yllä kirjoitin, komento "nice -15" näyttää POSITIIVISELTA nice arvolta kun katsoo System Monitorissa, Jos tähän voi luottaa, niin prosessi on kiltti ja komento on täysin linjassa tavoitteen kanssa.

siltä se näyttää muuallakin, eli eiköhän se sitten ole oikein. itse asiassa prosessin prioriteetin kasvattaminen ei edes taida onnistua ilman pääkäyttäjän oikeuksia.

Jospa tämä selvensi  ;D ... luulisin, että ongelma ei ole tässä.

kun komennon prioriteettia on kerran alennettu ja skedulerin pitäisi antaa muille prosesseille helpommin prosessoriaikaa, niin ehkä ongelma ei ole prosessorinkäytössä rsyncin puolesta? jossain tilanteissa levy i/o saattaa saada koneen turvalleen...

ai juu ja rsyncin parametri -a vastaa samaa kuin -rlptgoD mikä lienee tarkoittaa, että voit hyvin tiputtaa omasta parametrilistastasi pari ylimääräistä kirjainta ;)
Janne

Ganymedes

  • Käyttäjä
  • Viestejä: 3915
    • Profiili
Vs: Rsync taustalle
« Vastaus #10 : 21.02.10 - klo:14.17 »
Kiitokset vinkeistä, niitä oli yllä useampia, kuten nice-komennon parempi syntaksi. Joo, rsync:in parametrit ovat vielä vähän hakusessa vaikka sinänsä olen saanut sen kohtalaisesti tottelemaankin - mutta tämä on hieman eri keskustelu, ellei sieltä löydy jotakin jolla esim. voisi vähentää rsyncin käyttämien prosessien määrää tai tällaista - en ole kylläkään huomannut.

Kovalevy on uusi tällainen: Western Digital, WD10EARS, 1 TB, 64 Mb, SATA-II. Kovalevy on lähinnä "hiljainen" eikä niinkään nopea, puhumattakaan että olisi "serveri kovalevy", jos SATA sellainen oikeasti koskaan on, makuasia. Jostain syystä sen spekkisivuiltakaan ei löydy luku/kirjoituspäiden lukumäärää
(http://www.wdc.com/en/products/products.asp?DriveID=763) .

Systeemi ei mene jumiin välittömästi kun kopiointi alkaa vaan vasta pikkuhiljaa. Sama tapahtuu ihan tavallisessa Nautilus kopioinnissakin - kuten yllä huomasin myöhemmin.