Commit Graph

61 Commits

Author SHA1 Message Date
Loïc Guitaut 581fb97bfa DEV: Fix benchmark script
Following a recent commit (cb4b8146a3),
the benchmark script wasn’t working anymore (and the related rake task).

This patch fixes it. It also adds some information about Ruby YJIT being
enabled or not.
2024-11-20 14:36:44 +01:00
Alan Guo Xiang Tan 1dc31f242c
DEV: Drop puma from `script/bench.rb`, default to Unicorn (#26898)
This commit updates `script/bench.rb` to only support Unicorn as the web
server. We don't intend to run Puma in production anytime soon so it is
pointless for us to maintain Puma related code.
2024-05-07 12:27:29 +08:00
Jarek Radosz 00630e4c74
DEV: Remove `RUBY_GLOBAL_METHOD_CACHE_SIZE` (#21249)
It doesn't do anything since ruby 3.0.0.preview1. It was removed in https://github.com/ruby/ruby/pull/2888
2023-04-26 10:39:39 +02:00
David Taylor 436b3b392b
DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
Alan Guo Xiang Tan 0da79561c3
DEV: Improve/Fix script/bench.rb (#19646)
1. Fix bug where we were not waiting for all unicorn workers to start up
before running benchmarks.

2. Fix a bug where headers were not used when benchmarking. Admin
benchmarks were basically running as anon user.

3. Disable rate limits when in profile env. We're pretty much going to
hit the rate limit every time as a normal user.

4. Benchmark against topic with a fixed posts count of 100. Previously profiling script was just randomly creating posts
and we would benchmark against a topic with a fixed posts count of 30.
Sometimes, the script fails because no topics with a posts count of 30
exists.

5. Benchmarks are not run against a normal user on top of anon and
admin.

6. Add script option to select tests that should be run.
2022-12-30 07:25:11 +08:00
Peter Zhu c5fd8c42db
DEV: Fix methods removed in Ruby 3.2 (#15459)
* File.exists? is deprecated and removed in Ruby 3.2 in favor of
File.exist?
* Dir.exists? is deprecated and removed in Ruby 3.2 in favor of
Dir.exist?
2022-01-05 18:45:08 +01:00
Dan Ungureanu 69f0f48dc0
DEV: Fix rubocop issues (#14715) 2021-10-27 11:39:28 +03:00
Jarek Radosz 4babdf510b DEV: Update facter usage
`Facter.reset` (65d167eac9/lib/facter.rb (L126-L137)) clears `Facter::Options[:external_dir]` which seems to be the 4.x equivalent of `Facter::Util::Config.external_facts_dirs`.

This commit also makes sure that version 4.0 or higher is installed.
2020-06-01 05:50:49 +02:00
Jarek Radosz 8c8391c742 DEV: Don't require wget in script/bench 2020-06-01 05:50:48 +02:00
David Taylor fd6fbaa4ae DEV: Update bench.rb for core changes (#8670)
- Use new api key rake task
- Switch to header-based API auth
- Stop hard-coding topic id
2020-01-08 16:23:29 +11:00
Sam Saffron bf0ef73286 DEV: correct rake task used to grab admin key
We amended it so "api_key:get" is no longer supported and instead we are
more explicit. This matches that change and fixes the bench.
2019-11-11 10:23:14 +11:00
Sam Saffron 30990006a9 DEV: enable frozen string literal on all files
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.

Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00
Sam 819d4facda FIX: ruby bench script no longer working
The library used to generate random text changed, this caused the title
of the topic used for testing to change, which meant the slug changed, so
a hit to the topic was a redirect

This fix gives the topic used for performance testing a static name to avoid
this issue in future
2019-03-15 11:31:08 +11:00
Sam 8d0c073d39 also watch LD_PRELOAD in bench 2018-05-03 15:50:45 +10:00
Sam 73a492f721 minor changes to discourse bench
Ruby master is not compatible with bootsnap atm
2018-02-20 14:41:21 +11:00
Sam a3c7ee09b6 FIX: ruby bench not working properly
- Remove thin which is no longer supported
- Bypass admin api rate limiting in profile environment
- Admin password was too short
- Run by default in concurrency 1 mode
- A skip bundle assets flag to speed up local testing
2018-02-19 11:37:16 +11:00
Guo Xiang Tan 4c1fa759e5 FIX: Add missing option to apache bench. 2017-09-13 16:12:38 +08:00
Guo Xiang Tan 26c6447161 Fix bugs in profiling scripts leading to incorrect results. 2017-09-13 15:33:59 +08:00
Guo Xiang Tan e70428ac8c FIX: Don't write `wget` response to file. 2017-09-13 14:09:23 +08:00
Guo Xiang Tan 4142bed1af Fix incorrect topic id in profiiing script. 2017-09-07 06:01:35 +08:00
Guo Xiang Tan 5012d46cbd Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
Yousuf Jukaku a940f727cb fix bench script silent minor bugs 2017-04-14 12:58:35 -04:00
Robin Ward 14410b71fb Convert server side paths to use `/u/` 2017-03-30 10:23:24 -04:00
Jared Reisinger 75e22086a9 Don't look for external facts when benchmarking
When running `scripts/bench.rb` via the discourse/discourse_bench docker
container, Facter throws an EACCES error attempting to load external
puppet facts.  Since the benchmark script ends up ignoring everything
except for seven specific keys, we can just avoid loading any external
fact logic entirely. can just
2016-09-21 13:15:58 -07:00
Sam a19e43fd3b enough with the malloc limit, not needed 2016-05-25 21:09:07 +10:00
Sam 8252f4e110 FEATURE: allow use of redis sentinel via redis_sentinels
Use: DISCOURSE_REDIS_SENTINELS and DISCOURSE_REDIS_HOST to configure redis
sentinel
2015-06-25 16:51:48 +10:00
Guo Xiang Tan ac72c23799 Exit if a non zero status code is returned. 2014-12-23 14:29:44 +08:00
Lourens Naudé fb60daa867 Introduce support for dumping Rails process heap at the end of a benchmark run 2014-12-07 22:55:37 +00:00
Lourens Naudé 096138d0f7 Ensure tmp/pids exist when using unicorn 2014-12-04 01:30:00 +00:00
Lourens Naudé 5ddcd30e75 Introduce support for other tuneable GC vars 2014-12-03 15:11:03 +00:00
Bert Chang eefc150c00 Use apt-get instead of tasksel to prevent unexpected bug. 2014-05-29 12:35:41 +08:00
Bert Chang 87c63f290e Install tasksel before using it. 2014-05-29 12:10:34 +08:00
Bert Chang 7b402442f2 Add requirement for Ubuntu >= 12.10 in bench.rb 2014-05-29 12:05:58 +08:00
Sam c0d947aa98 allow bench to run with unicorn optionally
memstats can output yaml now
2014-02-16 16:44:51 +11:00
Sam f7d5a561ec remove randomisation for now from bench 2014-02-16 15:11:25 +11:00
Sam b75620973f FEATURE: memory stats route for diagnostics in admin 2014-02-14 15:45:12 +11:00
Sam Saffron 1ed7c4b0c2 update bench 2014-01-10 17:43:43 +11:00
Sam Saffron 51ddd99449 update bench 2014-01-10 16:11:10 +11:00
Sam 1b8a32ba19 correct nginx rule forwarding header 2014-01-09 16:39:30 +11:00
Sam d4cc367a6f Disable cache for a bit to see if its killing the build 2014-01-09 16:08:59 +11:00
Sam 1c3fc39525 bench improvements 2014-01-09 15:56:03 +11:00
Sam d635d888ba fix typo 2014-01-03 13:03:58 +11:00
Sam 90a7cb9dc3 FEATURE: add rss to bench
BUGFIX: profile db generator require ordering
2014-01-03 11:51:42 +11:00
Sam 6a0072d36e don't keep installing gabbler from bench
fix ab detection
2014-01-02 10:21:01 +11:00
Sam b8184d8b92 speed up bench add param for iterations 2013-12-30 15:15:30 +11:00
Sam 31ea259624 extend bench somewhat 2013-12-27 10:20:50 +11:00
Sam c53873110f improve bench script 2013-12-11 10:32:40 +11:00
Sam 60284d8a9a add custom clean env 2013-10-13 08:07:45 +11:00
Sam 9c6c0f2a3d enable eager loading in profile mode
correct bench script
2013-09-10 16:22:58 +10:00
Sam ad0bef5ef6 improve bench to measure admin as well 2013-09-10 16:03:11 +10:00