Bisakah menggunakan SSD mempercepat "grep"?


1

Saya perlu menggunakan grepuntuk mem-parsing file 50GB, dan itu sangat sangat lambat di server saya.

Saya ingin tahu apakah akan lebih cepat jika saya mengganti disk server saya dengan SSD? Apakah layak untuk ditingkatkan?

Terima kasih.

Diedit:

Ini yang saya dapat iostat, bagaimana cara melihat kecepatan I / O?

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop7             0,00         0,00         0,00          0          0
loop6             0,00         0,00         0,00          0          0
loop5             0,00         0,00         0,00          0          0
loop4             0,00         0,00         0,00          0          0
loop3             0,00         0,00         0,00          0          0
loop2             0,00         0,00         0,00          0          0
loop1             0,00         0,00         0,00          0          0
loop0             0,00         0,00         0,00          0          0
cciss!c0d0      652,87       399,77      3568,25  120296073 1073741823

Jawaban:


3

Ya, dan jika Anda ingin grep BENAR-BENAR cepat Anda dapat membuat RAMdisk besar. Tetapi Anda juga dapat melakukan grep dengan lebih efisien:

1) Jika Anda mencari string tetap, gunakan 'fgrep' alih-alih 'grep'.

2) mulai perintah Anda seperti ini kecuali itu file UTF8:

LC_ALL = C fgrep 'somestring' hugefile.log

https://stackoverflow.com/questions/13913014/grepping-a-huge-file-80gb-any-way-to-speed-it-up

Sungguh luar biasa seberapa cepat itu.

Jika itu tidak membantu dan Anda memiliki cukup utas gratis coba ini:

Salin file Anda di direktori terpisah sehingga itu satu-satunya file di folder itu dan jalankan perintah ini di direktori itu:

temukan. -type f -print0 | xargs -0 -P 4 grep 'somestring'> output.txt

'-P 4' berarti akan memulai 4 proses. Jika Anda benar-benar terbatas IO ini tidak akan membantu tetapi Anda yakin SSD akan membantu.


Terima kasih, saya sudah menggunakan LC_ALL = C dan juga fgrep :) Masih butuh tiga hari untuk menyelesaikan parsing.
brest1007

Karena penasaran, kinerja apa yang Anda lihat dengan "iostat" ketika grep Anda berjalan?
HoD

Saya menambahkan iostat, bagaimana cara mengetahui kecepatan dari output ini?
brest1007

Aduh, itu "iostat -m" untuk menampilkan rMB & wMB yang dibaca dan ditulis spead dalam MB per detik
HoD

ok saya sudah melakukan itu
brest1007
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.