Kirjoittaja Aihe: Miksi muistikortille kopiointi tapahtuu hitaasti?  (Luettu 4373 kertaa)

Illu

  • Käyttäjä
  • Viestejä: 1061
    • Profiili
Mikähän aiheuttaa koneelta muistikortille (64G tai muukin koko) hitaan kopioinnin? Sama ilmiö esiintyy myös USB-tikulle. Eikä pelkästään yhdellä koneella. esimerkkinä Lenovo T410, muistia 4G, samoin swappiä (miten swappi taivutetaan?) Ubuntu 14.04.

Kopioidessa esim. Audacityn noin gigan kokoista datakansiota alkaa kopiointi ihan kelvollisella nopeudella 350 megaan asti, hidastuen lopulta lähes sietämättömän hitaaksi. Sama ilmiö vaikkapa gigan kokoisella videopätkällä. Toki pienemmilläkin tiedostoilla ongelma ilmenee.

nm

  • Käyttäjä
  • Viestejä: 16242
    • Profiili
Vs: Miksi muistikortille kopiointi tapahtuu hitaasti?
« Vastaus #1 : 11.04.17 - klo:22.25 »
Mikähän aiheuttaa koneelta muistikortille (64G tai muukin koko) hitaan kopioinnin? Sama ilmiö esiintyy myös USB-tikulle. Eikä pelkästään yhdellä koneella. esimerkkinä Lenovo T410, muistia 4G, samoin swappiä (miten swappi taivutetaan?) Ubuntu 14.04.

Muistikortit ja useimmat USB-muistitikut ovat hitaita. SDHC class 10 tai SDXC UHS-I -korttien kirjoitusnopeus on luokkaa 10 MB/s, eli ne ovat 10 kertaa hitaampia kuin tavalliset kovalevyt, tai 30-50 kertaa hitaampia kuin SSD-levyt.


Kopioidessa esim. Audacityn noin gigan kokoista datakansiota alkaa kopiointi ihan kelvollisella nopeudella 350 megaan asti, hidastuen lopulta lähes sietämättömän hitaaksi. Sama ilmiö vaikkapa gigan kokoisella videopätkällä. Toki pienemmilläkin tiedostoilla ongelma ilmenee.

Suurempi nopeus siirron alussa johtunee kernelin levyvälimuistista. Kuinka hidas on sietämättömän hidas, eli kaunko gigatavun kopiointi kestää? Alle 5 minuuttia olisi normaali nopeus, mutta jos siinä menee kymmeniä minutteja, jossain taitaa olla pullonkaula.

Illu

  • Käyttäjä
  • Viestejä: 1061
    • Profiili
Vs: Miksi muistikortille kopiointi tapahtuu hitaasti?
« Vastaus #2 : 12.04.17 - klo:08.20 »
Alussahan kopiointi menee aivan hetkessä noin 350 megaan, kun kopioinnin nopeus tulee näkyville, se on n.20 Mt/s. Siitä sitten nopeus laskee aika pian 2 Mt/s., ja siitä loppua kohden hidastuen alle Mt/s.

Ja kesto koko siirrolle on 17 minuuttia.

Pitänee tutkia, olisi komennolla dd vipuineen jotain apua harmiin.

nm

  • Käyttäjä
  • Viestejä: 16242
    • Profiili
Vs: Miksi muistikortille kopiointi tapahtuu hitaasti?
« Vastaus #3 : 12.04.17 - klo:10.46 »
Alussahan kopiointi menee aivan hetkessä noin 350 megaan, kun kopioinnin nopeus tulee näkyville, se on n.20 Mt/s. Siitä sitten nopeus laskee aika pian 2 Mt/s., ja siitä loppua kohden hidastuen alle Mt/s.

Niin, tuo alun näennäinen suuri nopeus on mitä ilmeisimmin keskusmuistissa sijaitsevan cachen vaikutusta ja hidastuminen johtuu käyttämäsi ohjelman siirtonopeuslaskurin toteutuksesta. Todellinen siirtonopeus on alusta lähtien sama alle 1 Mt/s.

Mitä nopeusluokkamerkintöjä muistikortissa on, ja millä kortinlukijoilla olet kokeillut? (Katso lukijan tiedot komennolla lsusb ja lspci -nn)
« Viimeksi muokattu: 12.04.17 - klo:10.48 kirjoittanut nm »

Illu

  • Käyttäjä
  • Viestejä: 1061
    • Profiili
Vs: Miksi muistikortille kopiointi tapahtuu hitaasti?
« Vastaus #4 : 12.04.17 - klo:17.42 »
Tässä ei nyt ole niiden "aikojen alusta" käytössä olleiden korttien tai tikkujen tietoja saatavilla ja se ei liene kuitenkaan perussyy. Usbit tökkipaikoissa tai kortti koneen kiinteässä paikassa tai lukijapalikalla. Kyse on kai sitten vaan raudan ominaisuuksista, joka ei nyt sentään aivan onneton ole. Lähdetään sitten siitä, että siirto on vaan niin hidas ja laskurikin näyttää hetkellistä tietoa kokonaisnopeuden ollessa jotain muuta.

Oletus on, että siirtoa voisi jotenkin verrata koneen kahden sisäisen levyn väliseen siirtonopeuteen.

Kahvin keittoon siirron aikana. Kiitos neuvoista.

nm

  • Käyttäjä
  • Viestejä: 16242
    • Profiili
Vs: Miksi muistikortille kopiointi tapahtuu hitaasti?
« Vastaus #5 : 12.04.17 - klo:18.24 »
Tässä ei nyt ole niiden "aikojen alusta" käytössä olleiden korttien tai tikkujen tietoja saatavilla ja se ei liene kuitenkaan perussyy.

Yleisimmät pullonkaulat ovat nämä:

- Kortin oma nopeus: SD-kortin luokka (class) kertoo periaatteessa minimisiirtonopeuden megatavuina sekunnissa, mutta halpiskorteissa nopeus voi olla huomattavasti heikompi.
- Kortinlukijan käyttämä väylä: USB 1.1 rajaa nopeuden n. megatavuun sekunnissa, kun USB 2.0 voi siirtää n. 40 MB/s nopeudella.
- Kortinlukijan nopeus: Jotkut lukijat voivat olla itsessään hitaita.

USB-tikkuihin pätee samat väylärajoitteet sekä sisäisen flash-ohjaimen ja -muistin suorituskyky, joka on useimmiten heikko.

Jos kortinlukija on USB-väylässä (kuten todennäköisesti on), lsusb:tä kannattaisi sen verran lämmitellä, että tarkistat, onko lukija kiinni USB 2.0 -väylässä vai USB 1.1:ssä. USB 1.1 selittäisi havaitun 1 MB/s siirtonopeuden.

Lepotila zZ

  • Käyttäjä
  • Viestejä: 346
    • Profiili
Vs: Miksi muistikortille kopiointi tapahtuu hitaasti?
« Vastaus #6 : 12.04.17 - klo:19.17 »
dd:tä käytettäessä bs-operandin (block size) muuttaminen suuremmaksi saattaa lisätä kirjoituksen nopeutta jonkin verran. Oletus on 512 tavua, mutta voit kokeilla esim. 64 kilotavun kokoa nopeuttamaan kirjoitusta

Illu

  • Käyttäjä
  • Viestejä: 1061
    • Profiili
Vs: Miksi muistikortille kopiointi tapahtuu hitaasti?
« Vastaus #7 : 12.04.17 - klo:21.46 »
Tässä nyt olen kirjoittanut siirtonopeudesta, ehkä parempi olisi ollut siirtotavasta kirjoittaminen. Kai tuo siirron alun nopeus johtuu jostain tiedoston(-jen) käsittelytavasta ja se antaa väärän käsityksen nopeammasta siirrosta, joka vain hidastuisi loppua kohti.

Onko dd:llä rajoitteita usean sadan tiedoston sisältämän kansion siirrossa?

Lepotila zZ

  • Käyttäjä
  • Viestejä: 346
    • Profiili
Vs: Miksi muistikortille kopiointi tapahtuu hitaasti?
« Vastaus #8 : 12.04.17 - klo:22.15 »
dd ei tiedä mitään tiedostoista. Se ei toimi tiedostojen tasolla vaan luku- ja kirjoitusmedioiden "blokkien" tasolla. (Et voi kopioida kansiota dd:llä, vaan levykuvia tai muuta blokki-tason dataa.) En siis usko, että tiedostojen määrällä pitäisi olla mitään merkitystä. Kokeile muuttaa kirjoitettavien (ja luettavien) blokkien kokoa kun kirjoitat levykuvaa tikulle tai kortille. Joidenkin kertomusten mukaan blokin koon vaihtaminen 512 tavusta 64 kilotavuun on tuplannut kirjoitusnopeuden.