Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. Mastodon
  3. mysterious tootctl media remove task

mysterious tootctl media remove task

Scheduled Pinned Locked Moved Mastodon
20 Posts 5 Posters 2.9k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • nichu42N Offline
      nichu42N Offline
      nichu42
      wrote on last edited by nichu42
      #1

      A week ago, I noticed that all my apps were noticeably slower over daytime. I found out that each day at 11:00, CPU usage suddenly peaks and stays very high for several hours, until late afternoon:

      cpuusage.png

      Looking at htop, I figured out that's a process from Mastodon:

      htop.png

      It's apparently a tootctl task doing a prune-profiles with 2 days.
      However, my cleanup cronjob starts at 23:15 and usually takes about 20-40 minutes. And the cronjob as well as all the systems in the Mastodon admin UI are set to 7 days.

      So I wonder where this task is coming from and how I can re-schedule or maybe even deactivate it. Any ideas?
      Right now I'm killing the task every day, but that's not how I want to spend the rest of my life. 😬

      Matrix: @nichu42:blueplanet.social

      1 Reply Last reply
      0
      • nebulonN Offline
        nebulonN Offline
        nebulon
        Staff
        wrote on last edited by
        #2

        So this is the app package cleanup task for cached media https://git.cloudron.io/cloudron/mastodon-app/-/blob/master/cleanup.sh

        I have recently set the default to 2 days as this is only a cache (avatar/media/cards/..) and caused a lot of small files, which slowed down backups a lot.

        You can adjust this though: https://docs.cloudron.io/apps/mastodon/#cache-retention-days

        Tbh I am not quite sure how the content retention settings in the UI are used, maybe those are just the defaults for the tootctl cleanup tasks? Maybe our cleanup task is not required anymore even.

        1 Reply Last reply
        0
        • nichu42N Offline
          nichu42N Offline
          nichu42
          wrote on last edited by nichu42
          #3

          Ah, thanks for the clarification. I don't know why it uses so much CPU and it takes so long.

          I have the following entries in my daily cronjob:

          /app/code/bin/tootctl media remove --days 7
          /app/code/bin/tootctl statuses remove --days 7
          /app/code/bin/tootctl media remove-orphans
          /app/code/bin/tootctl preview-cards remove --days 7
          /app/code/bin/tootctl cache clear
          /app/code/bin/tootctl accounts prune
          /app/code/bin/tootctl media remove --prune-profiles --days 7
          

          Is there a way I can disable the package cleanup task completely? I don't think I need it. The settings above did a good job for me.

          Matrix: @nichu42:blueplanet.social

          1 Reply Last reply
          0
          • nebulonN Offline
            nebulonN Offline
            nebulon
            Staff
            wrote on last edited by
            #4

            Are you referring to a custom cron job you have set there? As the package does contain this script https://git.cloudron.io/cloudron/mastodon-app/-/blob/master/cleanup.sh

            nichu42N 1 Reply Last reply
            0
            • nebulonN nebulon

              Are you referring to a custom cron job you have set there? As the package does contain this script https://git.cloudron.io/cloudron/mastodon-app/-/blob/master/cleanup.sh

              nichu42N Offline
              nichu42N Offline
              nichu42
              wrote on last edited by
              #5

              @nebulon
              Yes, I have created a custom cronjob for this a few months ago when backups started to take forever due to all the small files (as you mentioned as well).
              It starts at 23:15 each night.

              Matrix: @nichu42:blueplanet.social

              1 Reply Last reply
              0
              • nebulonN Offline
                nebulonN Offline
                nebulon
                Staff
                wrote on last edited by
                #6

                In this case you can probably remove your custom cron job and rely on the one from the package. I have to investigate which ones from your script we should add to our cleanup script then.

                1 Reply Last reply
                0
                • nebulonN Offline
                  nebulonN Offline
                  nebulon
                  Staff
                  wrote on last edited by
                  #7

                  I have added missing ones from your script to the one in the package. Only accounts prune does not seem to exist anymore.

                  This will then be part of the next package release.

                  1 Reply Last reply
                  3
                  • nichu42N Offline
                    nichu42N Offline
                    nichu42
                    wrote on last edited by
                    #8

                    It's not in the CLI docs yet, but 'accounts prune' does work and is quite helpful.
                    https://github.com/mastodon/mastodon/pull/18397

                    If you add this too, I can indeed remove my custom cronjob. But please also add an option to control when the cleanup.sh is launched. 11:00 is not a good time for my server, I'd like to keep the cleanup processes running in the night, just before the scheduled backup.

                    Matrix: @nichu42:blueplanet.social

                    1 Reply Last reply
                    1
                    • doodlemania2D Offline
                      doodlemania2D Offline
                      doodlemania2
                      App Dev
                      wrote on last edited by
                      #9

                      that's a great add, thanks for doing that @nebulon !

                      1 Reply Last reply
                      0
                      • nebulonN Offline
                        nebulonN Offline
                        nebulon
                        Staff
                        wrote on last edited by
                        #10

                        Thanks for the hint, I have included the account pruning

                        1 Reply Last reply
                        2
                        • nichu42N Offline
                          nichu42N Offline
                          nichu42
                          wrote on last edited by
                          #11

                          I've changed the setting to 7 days and the runtime of the built-in cleanup script is now down to 1 hour / day, which is absolutely fine. I'd still like to schedule it for the night, though.

                          Matrix: @nichu42:blueplanet.social

                          1 Reply Last reply
                          0
                          • nebulonN Offline
                            nebulonN Offline
                            nebulon
                            Staff
                            wrote on last edited by
                            #12

                            since it doesn't matter much I will then put the package cron from current 11 11 * * * to 11 01 * * *

                            1 Reply Last reply
                            1
                            • J Offline
                              J Offline
                              johannesjom
                              wrote on last edited by
                              #13

                              This script also puts quite a lot of load on our server. Is it really still necessary to use it yourself instead of the clean-up scripts provided by Mastodon?

                              girishG 1 Reply Last reply
                              1
                              • J johannesjom

                                This script also puts quite a lot of load on our server. Is it really still necessary to use it yourself instead of the clean-up scripts provided by Mastodon?

                                girishG Offline
                                girishG Offline
                                girish
                                Staff
                                wrote on last edited by
                                #14

                                @johannesjom which script are you referring to?

                                1 Reply Last reply
                                0
                                • nebulonN Offline
                                  nebulonN Offline
                                  nebulon
                                  Staff
                                  wrote on last edited by
                                  #15

                                  The package cron job for cleanup does use the upstream cleanup jobs. You can also change the retention days via https://docs.cloudron.io/apps/mastodon/#cache-retention-days

                                  J 1 Reply Last reply
                                  1
                                  • nebulonN nebulon

                                    The package cron job for cleanup does use the upstream cleanup jobs. You can also change the retention days via https://docs.cloudron.io/apps/mastodon/#cache-retention-days

                                    J Offline
                                    J Offline
                                    johannesjom
                                    wrote on last edited by
                                    #16

                                    @nebulon i dit asume that /admin/settings/content_retention has other scripts behind, cause there you can change the days because you can set different days for different things there.

                                    nichu42N 1 Reply Last reply
                                    0
                                    • J johannesjom

                                      @nebulon i dit asume that /admin/settings/content_retention has other scripts behind, cause there you can change the days because you can set different days for different things there.

                                      nichu42N Offline
                                      nichu42N Offline
                                      nichu42
                                      wrote on last edited by
                                      #17

                                      @johannesjom It seems that the internal routine does remove some content, but as most of the admin settings and options, it's very poorly documented, if at all. I have no idea which tootctl commands exactly are triggered, or when that happens.
                                      I guess you have to go through lots of Issues and PRs to find out about this. As long as it's unclear, I think it's a good idea to have an additional cleanup script (such as the one provided by Cloudron) to make sure that the installation doesn't take too much space.

                                      Matrix: @nichu42:blueplanet.social

                                      1 Reply Last reply
                                      0
                                      • nebulonN Offline
                                        nebulonN Offline
                                        nebulon
                                        Staff
                                        wrote on last edited by
                                        #18

                                        at least last time I had checked the code, the UI settings were actually different from what they are now, but it is still not clear to me who and where those cleanup tasks are run or if the settings are just the default for the cli tasks we run in the package via cron.

                                        1 Reply Last reply
                                        0
                                        • nichu42N Offline
                                          nichu42N Offline
                                          nichu42
                                          wrote on last edited by
                                          #19

                                          @nebulon: This seems to be a quite comprehensive and well documented clean-up script: https://codeberg.org/Fedimins/mastodon-maintenance-tasks
                                          Maybe you want to ship it with Cloudron?

                                          Matrix: @nichu42:blueplanet.social

                                          1 Reply Last reply
                                          1
                                          • girishG Offline
                                            girishG Offline
                                            girish
                                            Staff
                                            wrote on last edited by
                                            #20

                                            @nichu42 good link...

                                            I had a look at https://codeberg.org/Fedimins/mastodon-maintenance-tasks . I couldn't run the script directly because there's a bunch of hardcoded paths in it. Found some commands that maybe we can incorporate. Many of the commands are already in our cleanup script.

                                            • tootctl accounts cull --concurrency xx - removes remote accounts that no longer exist
                                            • tootctl accounts prune - remove accounts that have never interacted locally
                                            • tootctl domains purge <domain> - https://docs.joinmastodon.org/admin/tootctl/#domains-purge
                                            • run_tootctl statuses remove --days=xx - https://docs.joinmastodon.org/admin/tootctl/#statuses-remove
                                            • tootctl media remove --days <days> --concurrency <concurrency> - https://docs.joinmastodon.org/admin/tootctl/#media-remove
                                            1 Reply Last reply
                                            3
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes


                                              • Login

                                              • Don't have an account? Register

                                              • Login or register to search.
                                              • First post
                                                Last post
                                              0
                                              • Categories
                                              • Recent
                                              • Tags
                                              • Popular
                                              • Bookmarks
                                              • Search