나는 종종 매우 큰 로그 파일 (> 3GB)을 다루고 있습니다. 나는이 파일들에서 성능 저하가 끔찍하다는 것을 알았습니다. 종종 파일 중간을 뛰어 넘고 싶지만 15M 줄 앞으로 줄이려고하면 몇 분이 걸립니다.
내가 생각하는 문제는 파일에서 ‘\ n’문자를 스캔 할 필요가 적지 만 너무 오래 걸린다는 것입니다.
명시 적 오프셋을 찾는 방법이 있습니까? 예를 들어 파일에서 15 억 바이트 오프셋을 찾으십시오. 이 작업은 몇 배 더 빠릅니다. 그러한 능력을 제공하지 못하는 다른 도구가 있습니까?
답변
이처럼 줄을 세지 않아도됩니다. less -n
50 %와 같은 특정 장소로 이동하려면 less -n +50p /some/log
1.5GB 로그 파일을 사용하는 것이 좋습니다.
편집 : 특정 바이트 오프셋의 경우 : less -n +500000000P ./blah.log
답변
덜 페이저 인 것은 본질적으로 선 지향적입니다. 시작할 때 파일이 크면 “counting line number”라고 말하고 ESC 키를 눌러 중지하지만 그렇지 않으면 행을 수행합니다. 그것이하는 일입니다.
파일의 한가운데로 똑바로 건너 뛰고 시작을 건너 뛰려면 항상 시작을 지나갈 수 있습니다. 나는 같은 것을 할 것이다 tail -c +15000000 /some/log | less
.
답변
less
로케일 설정에서 약간의 오버 헤드가있는 것 같습니다.
ASCII 전용 문자를 사용하는 경우 다음을 사용하여 비트 속도를 높일 수 있습니다.
LC_ALL=C less big-log-file.log
필자의 경우 처리량이 ~ 30M ib / s에서 ~ 50 Mib / s로 증가했습니다 (속도는 CPU 바운드 임)