Käytössä on palvelin, jossa on vanha CentOS 4.6. Palvelimella käsitellään suuria ascii-tiedostoja, jotka ovat kooltaan noin 20-100Mb. Tiedostoja käsitellään skriptillä, joka avaa tiedoston cat-komennolla ja komentoon on putkitettu grep, jolla poimitaan tiedoston dataa. Poimittu data otetaan talteen jatkokäsittelyyn, mutta se ei nyt liity tähän. Komento menee esim. seuraavasti:
cat tiedosto | grep -i -E -o 'poimittava data'
Ongelmana on nyt se, että tuo komennon suoritus ts. tiedoston avaus ja greppaus kestää tiedoston koosta riippuen kauan. Epäilen, että tuokomento nyt hidastaa lukua, joten miten sitä voisi tehostaa, jotta tiedoston käsittely nopeutuisi?
Cat ja grep-komennot hidastelee
14
74
Vastaukset
- einopeudu
tiedostojen koko on niin suuri että vaatii aikaa.
"Käytössä on palvelin, jossa on vanha CentOS 4.6."
Toivottavasti ei ole verkossa kun tämän turvapäivitykset loppuivat 4,5v sitten. CentOS 5:n päivitykset loppuu myös maaliskuussa 2017.
Epäilen että kone on niin vanha, että siinä siksi kestää.- nörddi
Tiedostot ovat tosiaankin suuria, ja niiden koko yllätti itsenikin. Mikäli komentoa ei saa nopeammaksi tai tehokkaammaksi, niin sitten ei voi mitään.
Niin ja kone on tosiaankin verkossa, ainakin vielä hetken aikaa :)Se kone voi olla vaikka korkattu ja häärätä ihan muita asioita taustalla lisäksi.
Helpointa hävittää se kone heti. Kympin kuussa hinnalla saa vaikka SSD:llä sen koneen.
- fgrep
Kone siis hidas, ja vanha kone hidas kiintolevy :( Ikävä yhdistelmä.
Lisäksi voit jättää tuon cat -komennon kokonaan. grep/fgrep/egrep on monipuolinen ohjelma. man grep on mielenkiintoista luettavaa.- fgrep
Lisäksi voisi harkita ram-levyä, jolla tuo käsiteltävä tiedosto on. Voisi kummasti nopeuttaa tiedoston käsittelyä, jos koneessa riittää RAM-muistia.
- A-pu-va-ja
Toinen (uusi) kone auttaa. Ja uusi käyttis ja ssd-levy vaikka m.2-liitännällä.
- jotain_parannuksia
Tarkista hdparm-ohjelmalla että levyn lukeminen tapahtuu dma:lla, niin ainakin yksi kohta grep-ongelmasta on selätetty. Onko koneen bios-asetukset tarkistettu koska viimeksi? Joskus sain lähes 20% lisää tehoa vain tekemällä asetukset oikein. Myös tulostiedostojen kirjoittaminen vie aikaa, joten jos mahdollista, kirjoita eri osiolle.
- nörddi
Kiitos vastauksista ja neuvoista!
Tosiaan tuo serveri on jo ainakin 8-vuotta vanha rauta, joten sille ei enää tehdä mitään suurempia huoltotoimenpiteitä, koska se ollaan ajamassa alas piakoin. Se on tiedostettu, että siinä on hidas levyjärjestelmä ja levyt, jotka ovat pullonkaulana lukuisia pieniä tiedostoja käsiteltäessä. Uusi virtuaaliympäristö komeilee uutuuttaan vieressä, mutta tällä on siis vielä pärjättävä tovi. Syy miksi kyselin tuon komennon tehostamisesta on se, että nämä suuret filut tulivat vastikään käsiteltäviksi ja tuo hitaus vähän yllätti.Täytyy olla vanhempi. CentOS 4 on vuodelta 2005 ja CentOS 5 joka vanhenee myös keväällä, tuli korvaamaan sitä vuonna 2007.
Koneen ikä on arviolta 9.5 - 11.5 vuotta. 12v on sellainen aikajänne, että saa samaan hintaan 100x nopeamman pelkästään raudan osalta. Softakin toki nopeutuu ja nythän mennään CentOS 7:ssa jo.Itseasiassa en edes pidä jotain 100 megan tiedostoja isoina. Noitahan käsitellään vaikka tällä: https://www.verkkokauppa.com/fi/product/26573/gsgrv/Raspberry-Pi-3-model-B-yhden-piirilevyn-tietokone
Vertailun vuoksi tuo kone pyörittää varmaan 250000.. 1000000 tietueen LDAP:ia köykäisesti. Sen vanhan koneen sähkölasku varmaan sama muutamalta kuukaudelta sama mitä tuon.- ongelmien_tuottaminen
M-Kar kirjoitti:
Täytyy olla vanhempi. CentOS 4 on vuodelta 2005 ja CentOS 5 joka vanhenee myös keväällä, tuli korvaamaan sitä vuonna 2007.
Koneen ikä on arviolta 9.5 - 11.5 vuotta. 12v on sellainen aikajänne, että saa samaan hintaan 100x nopeamman pelkästään raudan osalta. Softakin toki nopeutuu ja nythän mennään CentOS 7:ssa jo.Ei ole ihan näin yksioikoista: Olen jo pidempään seurannut ilmiötä siitä miten uudet koneet pakottavat vanhojen koneiden tehoja alaspäin. Tämä käy siten, että se vanha cpu on optimoitu käyttämään tiettyä määrää säikeitä ja tietylle cache:n määrälle. Uusi käyttöjärjestelmä usein kuitenkin lisää molempien käyttöastetta ja määrää: Prosesseja pitää vaihtaa useammin ja esim. yhdellä corella se tarkoittaa hidastumista. Cache kuormittuu enemmän eli käytännössä aiemmin cachessa pyörinyt softa alkaa pyöriä ram-muistin nopeudella. Samaan aikaan uusi arkkitehtuuri luo painetta muuntaa ohjelmia sen mukaiseksi, jotta ohjelmat saataisiin vieläkin nopeammiksi. Seurauksena on se, että ennen hyvin pyörineen ohjelman suorituskyky romahtaa vanhemmassa ympäristössä. Ne on ne yhteisvaikutukset, mitkä aiheuttavat ongelman.
Eli varmemmin todistellen: Kanattaa kokeilla cat/grep suoritusaikoja eri kernelin versioilla 2.2, 2.4, 2.6 jne. Lisäksi kannattaa valita kerneli joka on käännetty omalle arkkitehtuurille optimoiden. Geneerinen koodi kun ei oikein toimi jos vaaditaan optimoitua toimintaa. ongelmien_tuottaminen kirjoitti:
Ei ole ihan näin yksioikoista: Olen jo pidempään seurannut ilmiötä siitä miten uudet koneet pakottavat vanhojen koneiden tehoja alaspäin. Tämä käy siten, että se vanha cpu on optimoitu käyttämään tiettyä määrää säikeitä ja tietylle cache:n määrälle. Uusi käyttöjärjestelmä usein kuitenkin lisää molempien käyttöastetta ja määrää: Prosesseja pitää vaihtaa useammin ja esim. yhdellä corella se tarkoittaa hidastumista. Cache kuormittuu enemmän eli käytännössä aiemmin cachessa pyörinyt softa alkaa pyöriä ram-muistin nopeudella. Samaan aikaan uusi arkkitehtuuri luo painetta muuntaa ohjelmia sen mukaiseksi, jotta ohjelmat saataisiin vieläkin nopeammiksi. Seurauksena on se, että ennen hyvin pyörineen ohjelman suorituskyky romahtaa vanhemmassa ympäristössä. Ne on ne yhteisvaikutukset, mitkä aiheuttavat ongelman.
Eli varmemmin todistellen: Kanattaa kokeilla cat/grep suoritusaikoja eri kernelin versioilla 2.2, 2.4, 2.6 jne. Lisäksi kannattaa valita kerneli joka on käännetty omalle arkkitehtuurille optimoiden. Geneerinen koodi kun ei oikein toimi jos vaaditaan optimoitua toimintaa.Juu onhan niissä optimointeja uudemmalle raudalle. Käyttöjärjestelmävalmistajat ovat menneet sen mukaan, että rautaa uusitaan n. 6v välein kun silloin saa sen 10x parannuksen. Eli käytännössä jos on vanha kone niin voi olla järkevää ajella vanhemmalla käyttöjärjestelmäversiolla.
Käytännössä valitaan uusin käyttöjärjestelmä mikä sopii kyseisen laitteen muistiavaruudelle ja CPU ytimille ja arkkitehtuurille.
Esimerkiksi,
CentOS 7 on tarkoitettu tuplaydin 64-bit koneille, muistia 2Gt tai enemmän.
CentOS 6 on tarkoitettu koneille joissa on 1Gt tai enemmän muistia.
CentOS 5 on tarkoitettu koneille joissa 512Mt tai enemmän muistia.
Tuon mukaan kun valikoi niin saa aika optimaalisen. jos on alle 512Mt muistia niin varmaan kannattaa käyttää jotain siihen sopivampaa käyttöjärjestelmämerkkiä.
Pitääkö putkittaa? Miksei grep "jotain" tiedosto.txt. Jos noita on paljon Python tai joku muu kieli voi olla tehokkaampi.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Nurmossa kuoli 2 Lasta..
Autokolarissa. Näin kertovat iltapäivälehdet juuri nyt. 22.11. Ja aina ennen Joulua näitä tulee. . .1064928Maisa on SALAKUVATTU huumepoliisinsa kanssa!
https://www.seiska.fi/vain-seiskassa/ensimmainen-yhteiskuva-maisa-torpan-ja-poliisikullan-lahiorakkaus-roihuaa/15256631413259Vanhalle ukon rähjälle
Satutit mua niin paljon kun erottiin. Oletko todella niin itsekäs että kuvittelet että huolisin sut kaiken tapahtuneen503165Mikko Koivu yrittää pestä mustan valkoiseksi
Ilmeisesti huomannut, että Helenan tukijoukot kasvaa kasvamistaan. Riistakamera paljasti hiljattain kylmän totuuden Mi4192306Purra hermostui A-studiossa
Purra huusi ja tärisi A-studiossa 21.11.-24. Ei kykene asialliseen keskusteluun.2371422Ensitreffit Hai rehellisenä - Tämä intiimiyden muoto puuttui suhteesta Annan kanssa: "Meillä ei..."
Hai ja Anna eivät jatkaneet avioliittoaan Ensitreffit-sarjassa. Olisiko mielestäsi tällä parilla ollut mahdollisuus aito121251- 761217
- 731180
Joel Harkimo seuraa Martina Aitolehden jalanjälkiä!
Oho, aikamoinen yllätys, että Joel Jolle Harkimo on lähtenyt Iholla-ohjelmaan. Tässähän hän seuraa mm. Martina Aitolehde311148Miksi pankkitunnuksilla kaikkialle
Miksi rahaliikenteen palveluiden tunnukset vaaditaan miltei kaikkeen yleiseen asiointiin Suomessa? Kenen etu on se, että1221059