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
91
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
Keskisarja loisti A-studiossa, vauhkoontunut Sofia Virta munasi itsensä
Keskisarja taas puhui 100% faktaa maahanmuuttoon liittyen. Kokoomuksen Kaumalta tuli pari hyvää puheenvuoroa, joskin muu4942452Janni Tikkanen ohjattiin miesten pukuhuoneeseen
Vai olisko sittenkin Janne Tikkanen? Jos siellä jalkojen välissä on miesten killukkeet, mieshän tämä Janni on. Ja kuuluu852439Sä olet epävakaa
tai ainakin yrität onnistuneesti vaikuttaa siltä. Ei sun kanssa uskalla ruveta yhtään mihinkään, menis hommat ojasta all211541Rakastan ja ikävöin sinua
Ei helpota tämä ikävä millään. Pelkäsin että tämä ajanjakso tulee olemaan juuri näin vaikea. Siksi halusin ennen tätä pä771502Tiedän ettet tehnyt tahallasi pahaa
Asiat tapahtuivat, ristiriidat ovat meitä vahvempia. Olemmeko me niin vahvoja, että selviämme tästäkin vielä? Aika paljo1101450- 671343
Mieti miten paljon yritin
Löytää yhteyttä kanssasi uudelleen sen väärinymmärryksen jälkeen. Koen etten tullut puoleltasi hyvin kohdelluksi mies😔381293- 271258
Teräväkielinen Virta jauhotti totaalisesti sössöttävän Keskisarjan
Harvoin on noin suvereenia jauhotusta A-studiossa nähty. Ja minä äänestän demareita, joita ei oltu paikalle edes kutsut2741145Haluatko tietää totuuden?
Olen kyllästynyt sinuun. Et herätä enää mielenkiintoa. Samat jutut x 100. Kuten narskuilla aina. Samalla tunnen myötätun871113