docs fixes
authorAlex S <alex.strizhakov@gmail.com>
Fri, 6 Sep 2019 13:37:18 +0000 (16:37 +0300)
committerAlex S <alex.strizhakov@gmail.com>
Fri, 6 Sep 2019 13:37:18 +0000 (16:37 +0300)
lib/load_testing/fetcher.ex
lib/load_testing/generator.ex
lib/mix/tasks/pleroma/load_testing.ex

index 825f921e6951190dc069c4aa20bb9964820b8614..b92b6e04ff55e68b70ecf48f71ed5ef2538e4c94 100644 (file)
@@ -2,8 +2,6 @@ defmodule Pleroma.LoadTesting.Fetcher do
   use Pleroma.LoadTesting.Helper
 
   def fetch_user(user) do
-    IO.puts("=================================")
-
     Benchee.run(%{
       "By id" => fn -> Repo.get_by(User, id: user.id) end,
       "By ap_id" => fn -> Repo.get_by(User, ap_id: user.ap_id) end,
@@ -13,8 +11,6 @@ defmodule Pleroma.LoadTesting.Fetcher do
   end
 
   def query_timelines(user) do
-    IO.puts("\n=================================")
-
     home_timeline_params = %{
       "count" => 20,
       "with_muted" => true,
@@ -102,7 +98,6 @@ defmodule Pleroma.LoadTesting.Fetcher do
   end
 
   def query_notifications(user) do
-    IO.puts("\n=================================")
     without_muted_params = %{"count" => "20", "with_muted" => "false"}
     with_muted_params = %{"count" => "20", "with_muted" => "true"}
 
@@ -138,8 +133,6 @@ defmodule Pleroma.LoadTesting.Fetcher do
   end
 
   def query_dms(user) do
-    IO.puts("\n=================================")
-
     params = %{
       "count" => "20",
       "with_muted" => "true",
@@ -187,8 +180,6 @@ defmodule Pleroma.LoadTesting.Fetcher do
   end
 
   def query_long_thread(user, activity) do
-    IO.puts("\n=================================")
-
     Benchee.run(%{
       "Fetch main post" => fn ->
         Pleroma.Activity.get_by_id_with_object(activity.id)
index 6df518abab67ece91633f604ee1e02bf9e19c99e..7ad68dcc16d63a0c29e5a14e2f842797e90e6287 100644 (file)
@@ -28,7 +28,8 @@ defmodule Pleroma.LoadTesting.Generator do
       nickname: "nick#{i}",
       password_hash: Comeonin.Pbkdf2.hashpwsalt("test"),
       bio: "Tester Number #{i}",
-      info: %{}
+      info: %{},
+      local: Enum.random([true, false])
     }
 
     user = %{
index 83e531abf41b11928949cde9c04b6da2c651e511..4fed6bf74ed648f24075eff2082eb3b7d44fb6ae 100644 (file)
@@ -5,19 +5,23 @@ defmodule Mix.Tasks.Pleroma.LoadTesting do
   import Pleroma.LoadTesting.Generator
   import Pleroma.LoadTesting.Fetcher
 
-  # tODO: remove autovacuum worker until generation is not ended
   @shortdoc "Factory for generation data"
   @moduledoc """
   Generates data like:
   - users
   - activities with notifications
+  - direct messages
+  - long thread
+  - non visible posts
 
   ## Generate data
-      MIX_ENV=benchmark mix pleroma.load_testing --users 10000
-      MIX_ENV=benchmark mix pleroma.load_testing -u 10000
+      MIX_ENV=benchmark mix pleroma.load_testing --users 20000 --dms 20000 --thread_length 2000
+      MIX_ENV=benchmark mix pleroma.load_testing -u 20000 -d 20000 -t 2000
 
   Options:
-  - `--users NUMBER` - number of users to generate (default: 10000)
+  - `--users NUMBER` - number of users to generate. Defaults to: 20000. Alias: `-u`
+  - `--dms NUMBER` - number of direct messages to generate. Defaults to: 20000. Alias `-d`
+  - `--thread_length` - number of messages in thread. Defaults to: 2000. ALias `-t`
   """
 
   @aliases [u: :users, d: :dms, t: :thread_length]
@@ -32,6 +36,7 @@ defmodule Mix.Tasks.Pleroma.LoadTesting do
 
   def run(args) do
     start_pleroma()
+    Pleroma.Config.put([:instance, :skip_thread_containment], true)
     {opts, _} = OptionParser.parse!(args, strict: @switches, aliases: @aliases)
 
     users_max = Keyword.get(opts, :users, @users_default)
@@ -95,11 +100,12 @@ defmodule Mix.Tasks.Pleroma.LoadTesting do
     query_notifications(user)
     query_dms(user)
     query_long_thread(user, activity)
+    Pleroma.Config.put([:instance, :skip_thread_containment], false)
     query_timelines(user)
   end
 
   defp clean_tables do
-    IO.puts("\n\nDeleting old data...\n")
+    IO.puts("Deleting old data...\n")
     Ecto.Adapters.SQL.query!(Repo, "TRUNCATE users CASCADE;")
     Ecto.Adapters.SQL.query!(Repo, "TRUNCATE activities CASCADE;")
     Ecto.Adapters.SQL.query!(Repo, "TRUNCATE objects CASCADE;")