DKU-StarLab / leveldb-study

LevelDB Analysis, Backgrounds, Practice and Tuning
https://sslab.dankook.ac.kr/leveldb-wiki/
35 stars 15 forks source link

질문)uftrace record 오류 #27

Closed ha-seungwon closed 2 years ago

ha-seungwon commented 2 years ago

image

uftace 사용중에 record에서 오류가 발생해서 질문 드립니다!!

min-guk commented 2 years ago

제가 정확하지는 않은데, 종종 스토리지 용량이 부족하면 이러한 에러가 발생하는 것 같습니다. 저도 최근에 알았는데 uftrace record 데이터의 크기가 생각보다 많이 크더라고요.

그래서 사용 중인 용량을 확인하고 어느정도 용량을 확보한 다음 db_bench num을 작게 주고 실행해보시면 좋을 것 같습니다.

1) 용량 확인 $ du -h $ df -h $ ls -lh

2) 디렉토리 혹은 파일 삭제 $ rm -rf <your_file/directory>

아니면 record시 uftrace의 -F/-T 옵션를 사용해보시는 것도 좋을 것 같네요.

혹시 안되시면 또 답글 남겨주세요.

seehwan commented 2 years ago

하승원 학생- 혹시 용량이 얼마나 사용 중인가요? 아직 quota는 많이 남아있을거 같은데요. du는 디렉토리 별로 사용량을, df는 파티션 별 사용량을 알려주는 것이니 확인하고 얘기해 주세요. du . -sh df -h 해 보시고 알려주면 되겠네요. 낮은 확률이지만 디스크가 문제가 있을 수도 있어요. ^^;  확인하고 알려주세요

ha-seungwon commented 2 years ago

답변 감사드립니다!! 용량이랑 이런 건 다 체크를 해봤는데 문제가 없었습니다. 다만 db_bench num을 조금 줄여서 실행을 해보니 실행이 되더라고요. 아마 이 문제 같습니다. 감사합니다!!

min-guk commented 2 years ago

image

확인해보니 _./db_bench --benchmarks="readrandom" --use_existingdb=1 를 tracing하는 경우, 데이터가 40G 이상인 것 같네요.

DB를 Load하고 Read를 진행하는 경우에는, num이 크든 작던 Data Block Caching을 제외하곤 내부적으로 동일하게 작동합니다. 그러니 num을 1000정도로 주고 trace를 봐도 충분합니다.

하지만 Flush와 Compaction을 보기 위해서는 큰 num을 주어야 하는데요. 이러한 경우에는 uftrace의 -F/-T 옵션을 사용하하여, 해당 함수가 호출된 경우만 tracing하여 사용하시길 바랍니다.