Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add repair server dynamometer #1618

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

jmpesp
Copy link
Contributor

@jmpesp jmpesp commented Jan 29, 2025

Here's an example usage on dogfood, measuring a region snapshot's downstairs on another sled:

# /tmp/jwm-downstairs repair-dynamometer \
    --clone-source '[fd00:1122:3344:107::c]:23009'

using http://[fd00:1122:3344:107::c]:23009
The source RegionDefinition is: RegionDefinition { block_size: 512,
extent_size: Block { value: 131072, shift: 9 }, extent_count: 16, uuid:
31fb7fa7-0432-409e-8bec-571b6613b188, encrypted: true,
database_read_version: 1, database_write_version: 1 }
The source mode is: true
Repair extent 0
eid:0 Found repair files: ["000", "000.db", "000.db-shm", "000.db-wal"]
Repair extent 1
eid:1 Found repair files: ["001", "001.db", "001.db-shm", "001.db-wal"]
Repair extent 2
eid:2 Found repair files: ["002", "002.db", "002.db-shm", "002.db-wal"]
Repair extent 3
eid:3 Found repair files: ["003", "003.db", "003.db-shm", "003.db-wal"]
bytes per second: 222755540
Repair extent 4
eid:4 Found repair files: ["004", "004.db", "004.db-shm", "004.db-wal"]
Repair extent 5
eid:5 Found repair files: ["005", "005.db", "005.db-shm", "005.db-wal"]
Repair extent 6
eid:6 Found repair files: ["006", "006.db", "006.db-shm", "006.db-wal"]
bytes per second: 224481150
Repair extent 7
eid:7 Found repair files: ["007", "007.db", "007.db-shm", "007.db-wal"]
Repair extent 8
eid:8 Found repair files: ["008", "008.db", "008.db-shm", "008.db-wal"]
Repair extent 9
eid:9 Found repair files: ["009", "009.db", "009.db-shm", "009.db-wal"]
Repair extent 10
eid:10 Found repair files: ["00A", "00A.db", "00A.db-shm", "00A.db-wal"]
bytes per second: 227660750
Repair extent 11
eid:11 Found repair files: ["00B", "00B.db", "00B.db-shm", "00B.db-wal"]
Repair extent 12
eid:12 Found repair files: ["00C", "00C.db", "00C.db-shm", "00C.db-wal"]
Repair extent 13
eid:13 Found repair files: ["00D", "00D.db", "00D.db-shm", "00D.db-wal"]
bytes per second: 228354910
Repair extent 14
eid:14 Found repair files: ["00E", "00E.db", "00E.db-shm", "00E.db-wal"]
Repair extent 15
eid:15 Found repair files: ["00F", "00F.db", "00F.db-shm", "00F.db-wal"]
B/s: [222755540.0, 224481150.0, 227660750.0, 228354910.0]
B/S mean 225813090 stddev 2645588
B/s min 222755540 max 228354910

Bytes per second looks like about 215.4 MiB/s here.

Here's an example usage on dogfood, measuring a region snapshot's
downstairs on another sled:

    # /tmp/jwm-downstairs repair-dynamometer \
        --clone-source '[fd00:1122:3344:107::c]:23009'

    using http://[fd00:1122:3344:107::c]:23009
    The source RegionDefinition is: RegionDefinition { block_size: 512,
    extent_size: Block { value: 131072, shift: 9 }, extent_count: 16, uuid:
    31fb7fa7-0432-409e-8bec-571b6613b188, encrypted: true,
    database_read_version: 1, database_write_version: 1 }
    The source mode is: true
    Repair extent 0
    eid:0 Found repair files: ["000", "000.db", "000.db-shm", "000.db-wal"]
    Repair extent 1
    eid:1 Found repair files: ["001", "001.db", "001.db-shm", "001.db-wal"]
    Repair extent 2
    eid:2 Found repair files: ["002", "002.db", "002.db-shm", "002.db-wal"]
    Repair extent 3
    eid:3 Found repair files: ["003", "003.db", "003.db-shm", "003.db-wal"]
    bytes per second: 222755540
    Repair extent 4
    eid:4 Found repair files: ["004", "004.db", "004.db-shm", "004.db-wal"]
    Repair extent 5
    eid:5 Found repair files: ["005", "005.db", "005.db-shm", "005.db-wal"]
    Repair extent 6
    eid:6 Found repair files: ["006", "006.db", "006.db-shm", "006.db-wal"]
    bytes per second: 224481150
    Repair extent 7
    eid:7 Found repair files: ["007", "007.db", "007.db-shm", "007.db-wal"]
    Repair extent 8
    eid:8 Found repair files: ["008", "008.db", "008.db-shm", "008.db-wal"]
    Repair extent 9
    eid:9 Found repair files: ["009", "009.db", "009.db-shm", "009.db-wal"]
    Repair extent 10
    eid:10 Found repair files: ["00A", "00A.db", "00A.db-shm", "00A.db-wal"]
    bytes per second: 227660750
    Repair extent 11
    eid:11 Found repair files: ["00B", "00B.db", "00B.db-shm", "00B.db-wal"]
    Repair extent 12
    eid:12 Found repair files: ["00C", "00C.db", "00C.db-shm", "00C.db-wal"]
    Repair extent 13
    eid:13 Found repair files: ["00D", "00D.db", "00D.db-shm", "00D.db-wal"]
    bytes per second: 228354910
    Repair extent 14
    eid:14 Found repair files: ["00E", "00E.db", "00E.db-shm", "00E.db-wal"]
    Repair extent 15
    eid:15 Found repair files: ["00F", "00F.db", "00F.db-shm", "00F.db-wal"]
    B/s: [222755540.0, 224481150.0, 227660750.0, 228354910.0]
    B/S mean 225813090 stddev 2645588
    B/s min 222755540 max 228354910

Bytes per second looks like about 215.4 MiB/s here.
Copy link
Contributor

@leftwo leftwo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will stream the contents from a running (read-only) downstairs to.. where exactly?
Just into internal buffers which we then discard, right?

@jmpesp
Copy link
Contributor Author

jmpesp commented Feb 7, 2025

Yeah, this doesn't do anything with the bytes except count them.

@leftwo leftwo self-requested a review February 7, 2025 23:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants