drsnoop是一个内存工具,它追踪全系统内存的direct reclaim(直接回收)操作,并打印出各种详细信息。
- #!/usr/bin/env python
-
- from __future__ import print_function
- from bcc import ArgString, BPF
- import argparse
- from datetime import datetime, timedelta
- import os
- import math
- import sys
-
- #符号
- kallsyms = "/proc/kallsyms"
-
- #参数
- examples = """examples:
- ./drsnoop # trace all direct reclaim
- ./drsnoop -T # include timestamps
- ./drsnoop -U # include UID
- ./drsnoop -P 181 # only trace PID 181
- ./drsnoop -t 123 # only trace TID 123
- ./drsnoop -u 1000 # only trace UID 1000
- ./drsnoop -d 10 # trace for 10 seconds only
- ./drsnoop -n main # only print process names containing "main"
- """
- parser = argparse.ArgumentParser(
- description="Trace direct reclaim",
- formatter_class=argparse.RawDescriptionHelpFormatter,
- epi