본문 바로가기
IT/LINUX

대용량파일 문자열검색 리눅스 명령어 fgrep

by SidePower 2020. 8. 28.

TPS 높거나 데이타 사이즈가 큰 업무를
처리하는 프로세스를 운영하다보면 
로그파일 한개 사이즈가 수십 기가바이트 또는 
많게는 2~3백 기가바이트까지 사용하는 경우가 생기기도 해요.

이렇게 용량이 큰 파일에서 문자열을 검색하게 되면
서버에 부하를 가중하게 되면서 프로세스가 느려지거나
처리를 못하고 에러가 발생하는 상황이 종종 생기게 되더라구요.

아..ㅋ 당연히 로그파일을 작게 생기게끔
로그 파일 생성 스케줄링을 잘하면 될거에요.

하지만 일 하다보면 관리가 안되는 케이스도 본의아니게 생기조.ㅋㅋ

테스트용으로 일시적이라던가 또는 이벤트용 업무들은 정규 프러세스 규칙에서 
예외처리 해야 되는 경우도 있고 등등...

시키는데로 해야 되는 입장이라 ㅋ


암튼 보통 문자열 검색시 grep 인데요.
grep 명령어는 내부적으로 [정규식 표현]까지
검사하게 작동됩니다.

그러니 문자열 한개 찾는데도 내부적으로 정규식 체크 로직까지
수행되다보니 느리거나 부하가 많이 생기게 됩니다.

 


작은 사이즈 파일이야 문제 없지만 수십 기가바이트 이상이면
큰영향을 받게 됩니다.

이럴때 [정규식 표현] 수행을 배제한 검색이 바로 fgrep 입니다.
50~60GB 일때 grep는 1분 정도 걸리는데
fgrep 는 15~20초안에 끝나더라구요.

엄청나조.!!!

사용법은 grep과 동일합니다.

fgrep 문자열 파일

그리고 grep 에 -F 옵션과 동일한 기능이에요.

리눅스 명령어마다 옵션이 많다보니 기본적인 사용법 외에는
잘 사용하지 않게되는걸 알고
아예 명령어를 따로 만든거 같아요.

잊지말고 용량 큰 파일은 fgrep 사용하세요.

상용 서버에서 특히요. 명심.

여기까지입니다.

오늘도 무사히 일 끝나길...ㅋ

 

반응형

댓글