Skip to content

[rails] Add crud#780

Merged
MDA2AV merged 2 commits into
MDA2AV:mainfrom
p8:rails/crud
Jun 3, 2026
Merged

[rails] Add crud#780
MDA2AV merged 2 commits into
MDA2AV:mainfrom
p8:rails/crud

Conversation

@p8
Copy link
Copy Markdown
Contributor

@p8 p8 commented Jun 2, 2026

No description provided.

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented Jun 2, 2026

/benchmark -f rails -t crud

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

👋 /benchmark request received. A collaborator will review and approve the run.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

Benchmark Results

Framework: rails | Test: crud

Test Conn RPS CPU Mem Δ RPS Δ Mem
crud 4096 60,758 4379.0% 4.3GiB NEW NEW
Full log
[info] crud experiment CPU layout: redis=0,64 | server=1-31,65-95 | gcannon=32-63,96-127 | postgres=unpinned
[info] available CPUs: 128
[info] framework: rails (rails, Ruby)
[info] subscribed tests: baseline,pipelined,limited-conn,json,json-comp,json-tls,upload,api-4,api-16,async-db,crud,static
[info] building image: httparena-rails
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 605B done
#1 DONE 0.0s

#2 [internal] load metadata for docker.io/library/ruby:4.0-slim
#2 DONE 0.9s

#3 [internal] load .dockerignore
#3 transferring context: 2B done
#3 DONE 0.0s

#4 [internal] load build context
#4 transferring context: 20.28kB done
#4 DONE 0.0s

#5 [1/7] FROM docker.io/library/ruby:4.0-slim@sha256:86a2ff44ce474c1c9bd11dfb2fd7fe5408a5bfe8236b9bc6013e2c6ef4c02d39
#5 resolve docker.io/library/ruby:4.0-slim@sha256:86a2ff44ce474c1c9bd11dfb2fd7fe5408a5bfe8236b9bc6013e2c6ef4c02d39 0.1s done
#5 DONE 0.1s

#6 [2/7] RUN apt-get update &&     apt-get install -y --no-install-recommends build-essential libpq-dev libyaml-dev libjemalloc2 libpq5 &&     rm -rf /var/lib/apt/lists/*
#6 CACHED

#7 [4/7] COPY Gemfile* .
#7 CACHED

#8 [5/7] RUN bundle config set deployment 'true'
#8 CACHED

#9 [6/7] RUN bundle install --jobs=$(nproc)
#9 CACHED

#10 [3/7] WORKDIR /app
#10 CACHED

#11 [7/7] COPY . .
#11 CACHED

#12 exporting to image
#12 exporting layers done
#12 exporting manifest sha256:6aa10acbbd1bcf86b333c2234f50f4b2d264cb822e1037fb9343e7706366f468 done
#12 exporting config sha256:9c985cb624523aa9389202e0c646bc5cbf729e7110e0002185e05bbe9c72ee5b done
#12 exporting attestation manifest sha256:89b1b0516ab17762fd930fc279cc1a7f824109e09feb9a9cb1f70f240623798d 0.0s done
#12 exporting manifest list sha256:feec1f631b0ab380bb4b0a2ccddc37b7371a879dcc0bd6335713e9f66b1cd33e 0.0s done
#12 naming to docker.io/library/httparena-rails:latest
#12 naming to docker.io/library/httparena-rails:latest done
#12 unpacking to docker.io/library/httparena-rails:latest done
#12 DONE 0.2s
[info] tuning host for benchmark runs
[info] CPU governor → performance
[info] setting kernel socket limits
[info] setting UDP buffer sizes for QUIC
[info] setting loopback MTU to 1500 (realistic Ethernet)
[info] restarting docker daemon
[info] dropping kernel caches
[info] starting postgres sidecar
[info] postgres ready (seeded)
[info] starting redis sidecar (cpuset=0,64)
[info] redis ready

==============================================
=== rails / crud / 4096c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   68.60ms   67.40ms   77.70ms   101.60ms   360.60ms

  857379 requests in 15.00s, 854859 responses
  Throughput: 56.98K req/s
  Bandwidth:  25.47MB/s
  Status codes: 2xx=854859, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 854859 / 854859 responses (100.0%)
  Reconnects: 2847
  Per-template: 43006,42817,42911,42682,42528,42656,42757,42429,42557,42670,42610,42806,42952,42659,43021,42471,42193,43761,42730,42643
  Per-template-ok: 43006,42817,42911,42682,42528,42656,42757,42429,42557,42670,42610,42806,42952,42659,43021,42471,42193,43761,42730,42643
[info] CPU 4543.3% | Mem 4.2GiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   66.82ms   68.80ms   75.40ms   91.10ms   274.60ms

  886909 requests in 15.00s, 884751 responses
  Throughput: 58.97K req/s
  Bandwidth:  26.36MB/s
  Status codes: 2xx=884751, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 884746 / 884751 responses (100.0%)
  Reconnects: 3046
  Per-template: 44113,44497,44190,44302,43873,44281,44325,44154,43985,44486,44116,43860,44117,44341,44286,44207,43939,45515,44189,43970
  Per-template-ok: 44113,44497,44190,44302,43873,44281,44325,44154,43985,44486,44116,43860,44117,44341,44286,44207,43939,45515,44189,43970
[info] CPU 4395.2% | Mem 4.2GiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   65.07ms   66.50ms   72.90ms   87.70ms   134.30ms

  913746 requests in 15.00s, 911384 responses
  Throughput: 60.75K req/s
  Bandwidth:  27.12MB/s
  Status codes: 2xx=911384, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 911382 / 911384 responses (100.0%)
  Reconnects: 3812
  Per-template: 45598,45968,45577,45415,45709,45660,45614,45401,45403,45828,45359,45552,45207,45529,45301,45516,44948,46922,45428,45447
  Per-template-ok: 45598,45968,45577,45415,45709,45660,45614,45401,45403,45828,45359,45552,45207,45529,45301,45516,44948,46922,45428,45447
[info] CPU 4379.0% | Mem 4.3GiB

=== Best: 60758 req/s (CPU: 4379.0%, Mem: 4.3GiB) ===
[info] input BW: 5.21MB/s (avg template: 90 bytes)
[info] saved results/crud/4096/rails.json
httparena-bench-rails
httparena-bench-rails
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/crud-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
httparena-redis
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → performance

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented Jun 2, 2026

/benchmark -f rails -t crud --save

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

👋 /benchmark request received. A collaborator will review and approve the run.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

⚠️ /benchmark --save cannot start: main has diverged and cannot be auto-merged into this branch. Please merge or rebase main manually, push, and re-run /benchmark --save.

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented Jun 2, 2026

/benchmark -f rails -t crud --save

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

👋 /benchmark request received. A collaborator will review and approve the run.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

Benchmark Results

Framework: rails | Test: crud

Test Conn RPS CPU Mem Δ RPS Δ Mem
crud 4096 61,399 4424.0% 4.3GiB NEW NEW
Full log
[info] crud experiment CPU layout: redis=0,64 | server=1-31,65-95 | gcannon=32-63,96-127 | postgres=unpinned
[info] available CPUs: 128
[info] framework: rails (rails, Ruby)
[info] subscribed tests: baseline,pipelined,limited-conn,json,json-comp,json-tls,upload,api-4,api-16,async-db,crud,static
[info] building image: httparena-rails
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 605B done
#1 DONE 0.0s

#2 [internal] load metadata for docker.io/library/ruby:4.0-slim
#2 DONE 1.0s

#3 [internal] load .dockerignore
#3 transferring context: 2B done
#3 DONE 0.0s

#4 [internal] load build context
#4 transferring context: 23.54kB done
#4 DONE 0.0s

#5 [1/7] FROM docker.io/library/ruby:4.0-slim@sha256:86a2ff44ce474c1c9bd11dfb2fd7fe5408a5bfe8236b9bc6013e2c6ef4c02d39
#5 resolve docker.io/library/ruby:4.0-slim@sha256:86a2ff44ce474c1c9bd11dfb2fd7fe5408a5bfe8236b9bc6013e2c6ef4c02d39 0.0s done
#5 DONE 0.0s

#6 [5/7] RUN bundle config set deployment 'true'
#6 CACHED

#7 [6/7] RUN bundle install --jobs=$(nproc)
#7 CACHED

#8 [3/7] WORKDIR /app
#8 CACHED

#9 [2/7] RUN apt-get update &&     apt-get install -y --no-install-recommends build-essential libpq-dev libyaml-dev libjemalloc2 libpq5 &&     rm -rf /var/lib/apt/lists/*
#9 CACHED

#10 [4/7] COPY Gemfile* .
#10 CACHED

#11 [7/7] COPY . .
#11 CACHED

#12 exporting to image
#12 exporting layers done
#12 exporting manifest sha256:09127f0c913bb21f3431de9500e1395b3974811869ca01f1384ce29cb0a3bc51 done
#12 exporting config sha256:c63dc46347ee269981f60c65ad7230b2d7c6ed28c675f8a68cc6e361d0f6c390 done
#12 exporting attestation manifest sha256:5d57af98fc12fb0b2b0ae43cf6ee2d510c7a77a31350c13a3299b0182cfede76
#12 exporting attestation manifest sha256:5d57af98fc12fb0b2b0ae43cf6ee2d510c7a77a31350c13a3299b0182cfede76 0.0s done
#12 exporting manifest list sha256:ade2b778874d7fdf194d716692815a7d69a2ad641f339963acf24c9dada34499 0.0s done
#12 naming to docker.io/library/httparena-rails:latest done
#12 unpacking to docker.io/library/httparena-rails:latest done
#12 DONE 0.1s
[info] tuning host for benchmark runs
[info] CPU governor → performance
[info] setting kernel socket limits
[info] setting UDP buffer sizes for QUIC
[info] setting loopback MTU to 1500 (realistic Ethernet)
[info] restarting docker daemon
[info] dropping kernel caches
[info] starting postgres sidecar
[info] postgres ready (seeded)
[info] starting redis sidecar (cpuset=0,64)
[info] redis ready

==============================================
=== rails / crud / 4096c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   69.40ms   68.10ms   79.10ms   103.10ms   358.40ms

  850149 requests in 15.00s, 846184 responses
  Throughput: 56.40K req/s
  Bandwidth:  25.24MB/s
  Status codes: 2xx=846184, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 846184 / 846184 responses (100.0%)
  Reconnects: 2668
  Per-template: 42409,42467,42371,42496,42377,42260,42118,42097,42027,42382,42440,41994,41831,42275,42269,41810,42071,43581,42410,42499
  Per-template-ok: 42409,42467,42371,42496,42377,42260,42118,42097,42027,42382,42440,41994,41831,42275,42269,41810,42071,43581,42410,42499
[info] CPU 4591.4% | Mem 4.1GiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   66.09ms   67.50ms   74.40ms   89.50ms   115.60ms

  902473 requests in 15.00s, 900107 responses
  Throughput: 60.00K req/s
  Bandwidth:  26.79MB/s
  Status codes: 2xx=900107, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 900115 / 900107 responses (100.0%)
  Reconnects: 3546
  Per-template: 44957,45178,44890,44680,44815,45129,44903,44978,44874,45310,45048,45130,44735,45119,45184,44978,44395,46209,44889,44706
  Per-template-ok: 44957,45178,44890,44680,44815,45129,44903,44978,44874,45310,45048,45130,44735,45119,45184,44978,44395,46209,44889,44706
[info] CPU 4453.3% | Mem 4.2GiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   64.18ms   65.50ms   72.50ms   90.80ms   268.20ms

  923296 requests in 15.00s, 920997 responses
  Throughput: 61.39K req/s
  Bandwidth:  27.38MB/s
  Status codes: 2xx=920997, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 920995 / 920997 responses (100.0%)
  Reconnects: 3877
  Per-template: 45851,46315,46020,45926,46082,45964,46203,46029,46126,46232,46096,45978,45850,46132,45964,46188,45188,47082,45972,45797
  Per-template-ok: 45851,46315,46020,45926,46082,45964,46203,46029,46126,46232,46096,45978,45850,46132,45964,46188,45188,47082,45972,45797
[info] CPU 4424.0% | Mem 4.3GiB

=== Best: 61399 req/s (CPU: 4424.0%, Mem: 4.3GiB) ===
[info] input BW: 5.27MB/s (avg template: 90 bytes)
[info] saved results/crud/4096/rails.json
httparena-bench-rails
httparena-bench-rails
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/crud-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
httparena-redis
[info] restoring loopback MTU to 65536

@MDA2AV MDA2AV merged commit 6fb5ff1 into MDA2AV:main Jun 3, 2026
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