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