Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Minimserver in Docker Container Keeps Writing To Disk
27-08-2022, 02:22
Post: #1
Minimserver in Docker Container Keeps Writing To Disk
I am running Minimserver on my Synology NAS - and I am running three instances (to keep DSF files separate from my mp3 or m4a files):
- The regular package for Synology (MinimServer 2.1.2 update 218)
- Two Docker containers with the minimworld/minimserver docker image from hub.docker.com - which also seems to be version 2.1.2 update 218.

With only the Synology package version of Minimserver running, everything is fine: After a certain amount of time, all activity on the NAS devices seizes and my disks and NAS go to sleep.

This changes the moment I start one of the docker containers with Minimserver inside: Now I see write activity on my drives starting fairly precisely every 30 seconds - and as a result, my NAS cannot go to sleep anymore.

I have had similar issues with other containers - which were running Docker "health check", which also keeps writing to disk - but the write activity was coming from a different process than in the case of Minimserver's containers.

Can you help figuring out why a Minimserver container keeps writing to disk, whereas the Synology package installation does not?

Thank you!
Find all posts by this user
Quote this message in a reply
27-08-2022, 11:18
Post: #2
RE: Minimserver in Docker Container Keeps Writing To Disk
FYI, you don't need to run three instances of MinimServer to view your DSF, mp3 and m4a files separately. If you add #AudioFormat:Audio Format to indexTags, you will see a top-level menu selection Audio Format that enables you to view files in each of these formats without the other formats being included.

Setting the MinimServer logging level to Debug or Trace will cause MinimServer to write to its log file because of UPnP network activity. If you have the logging level set to Info or Verbose, the Docker instances should not be writing to disk when MinimServer is idle.

Are you sure the disk I/O is coming from the MinimServer process and not from some other process that is running in the MinimServer Docker container?
Find all posts by this user
Quote this message in a reply
29-08-2022, 04:40
Post: #3
RE: Minimserver in Docker Container Keeps Writing To Disk
Thank you for the hint about the AudioFormat hashtag - but would it work as intended? I currently have three libraries: One is my “CD quality” iTunes library, the second one is with stereo dsf files, and the third one is with multichannel dsf files.
My files are, accordingly, in three separate folders - and one album, e.g. “Roger Waters: The Wall Live” can have three copies:
  • An aac file in CD quality for use with all AirPlay-capable devices
  • A stereo DSD file for all devices that can directly play dsf files, like my receiver
  • A multichannel DSD file, for which I need a different renderer (e.g. blu-ray player).
I have my doubts that “AudioFormat” would be able to distinguish between stereo and multichannel files.
Also, in my controller software (Linn or Lumin) I typically use the Album view to pick what I want to listen to. Earlier attempts (without the AudioFormat indicator) would just list every title three times for the same album - and play every track three times.

That’s why I wanted to set up three Minimserver instances.

When installing the Docker versions, I followed the instructions I found here: https://minimserver.com/running-containe...nology_NAS .

I did not make any alterations, did not set any parameters (except for the one that points to my music files).
It is plain Docker on Synology, with a plain installation of your container image.
I don’t know how I can change the logging level, so, it is set to what the container image recommended by you came with.

I have attached a hibernation log file I just created, it covers about 20 minutes of activity.

The first ten minutes are without the Minimserver docker container running (two other containers and the Minimserver Synology package are running though). You see two blocks of activity in the log - and then silence for almost ten minutes.

At that point in time, I started one of my Minimserver Docker containers. Of course, there is disk activity due to it starting - but it never stops. If you start at the bottom of the log, you will see a gazillion of entries. All spaced by a maximum of 30 seconds of inactivity.

All this additional activity is coming exclusively from the Minimserver container. (the only change made at the 10-minute mark). I’m not sure how to make it stay silent.

I hope you have an idea what may be causing this!


Attached File(s)
.log  hibernation 2.log (Size: 339.01 KB / Downloads: 5)
Find all posts by this user
Quote this message in a reply
29-08-2022, 06:45
Post: #4
RE: Minimserver in Docker Container Keeps Writing To Disk
(29-08-2022 04:40)braunsch Wrote:  I have my doubts that “AudioFormat” would be able to distinguish between stereo and multichannel files.
Also, in my controller software (Linn or Lumin) I typically use the Album view to pick what I want to listen to. Earlier attempts (without the AudioFormat indicator) would just list every title three times for the same album - and play every track three times.

That’s why I wanted to set up three Minimserver instances.

In order to distinguish mono, stereo or multichannels files you should use #AudioChannels special tag in indexTag property. Here you can find how to use special tags
Find all posts by this user
Quote this message in a reply
29-08-2022, 09:37
Post: #5
RE: Minimserver in Docker Container Keeps Writing To Disk
Had the same problem reported by a user of BubbleUPnP Server, which when run as a docker container was preventing his spinning hard drive to go to sleep.

It was not easy to troubleshoot, but long story short:

- obviously, MinimServer must not write to disk at regular intervals: logs or something else

- OpenJDK writes performance data to disk (in /tmp) at regular interval. This must be disabled with "-XX:-UsePerfData" passed as JVM startup argument.

- Docker does its own writing to disk on host. If the running docker image has a periodic health check declared its Dockerfile, the results are written to file config.v2.json (on host).
It must be disabled with --no-healthcheck passed to docker at container creation (docker create) or running (docker run).
If MinimServer writes regularly to stdout, Docker will log that output to file on host. This can be disabled with "--log-driver none" passed to docker
Find all posts by this user
Quote this message in a reply
29-08-2022, 10:09
Post: #6
RE: Minimserver in Docker Container Keeps Writing To Disk
(29-08-2022 04:40)braunsch Wrote:  My files are, accordingly, in three separate folders - and one album, e.g. “Roger Waters: The Wall Live” can have three copies:

It sounds like you are using different top-level folders for the different audio formats. In this case, you can use a single MinimServer instance with contentDir settings for these top-level folders and navigate from the top-level menu as follows:

1) Select [folder view]
2) Select the desired audio format top-level folder
3) Select >> Tag View
4) Select the desired audio format top-level folder again

You will now see a filtered subset of your library containing only files with your desired audio format.

Another option is to browse via #AudioFormat and #AudioChannels. For this, you need to add #AudioFormat and #AudioChannels to the indexTags property. To select your DSF stereo files you would do the following:

1) Select #AudioFormat
2) Select DSF
3) Select #AudioChannels
4) Select 2

You do this in a smaller number of steps by using the indexFormat option of the tagFormat property. For this, you need to add #AudioFormat and #AudioChannels to the itemTags property and add some other tag (for example, Library) to the indexTags property. For example, if you add the Library tag to indexTags and set tagFormat to

Library.indexFormat={$#AudioFormat$#AudioChannels^^^:}

you can select your DSF stereo files by doing the following:

1) Select Library
2) Select DSF:2
Find all posts by this user
Quote this message in a reply
30-08-2022, 04:27
Post: #7
RE: Minimserver in Docker Container Keeps Writing To Disk
(29-08-2022 09:37)bubbleguuum Wrote:  Had the same problem reported by a user of BubbleUPnP Server, which when run as a docker container was preventing his spinning hard drive to go to sleep.

It was not easy to troubleshoot, but long story short:

- obviously, MinimServer must not write to disk at regular intervals: logs or something else

- OpenJDK writes performance data to disk (in /tmp) at regular interval. This must be disabled with "-XX:-UsePerfData" passed as JVM startup argument.

- Docker does its own writing to disk on host. If the running docker image has a periodic health check declared its Dockerfile, the results are written to file config.v2.json (on host).
It must be disabled with --no-healthcheck passed to docker at container creation (docker create) or running (docker run).
If MinimServer writes regularly to stdout, Docker will log that output to file on host. This can be disabled with "--log-driver none" passed to docker

Same user reporting the problem Smile

I had not tried the same thing because it was a different process writing to disk (not dockerd, but kthreadd) doing the writing.
Also, I cannot find where to add the "-XX:-UsePerfData" parameter: I don’t know how the Minimserver container is organized, where I would find the equivalent of your launch.sh file.

Yet, today, I set up another container - with the --log-driver none and --no-healthcheck parameters - but as usual I have to wait for a few hours after installing a container for the NAS to go to sleep again: It just loves to re-organize its files after any kind of install. The verdict is still pending; I will report back.
Thank you for sharing your findings summary here!
Find all posts by this user
Quote this message in a reply
30-08-2022, 05:11
Post: #8
RE: Minimserver in Docker Container Keeps Writing To Disk
(29-08-2022 10:09)simoncn Wrote:  
(29-08-2022 04:40)braunsch Wrote:  My files are, accordingly, in three separate folders - and one album, e.g. “Roger Waters: The Wall Live” can have three copies:

It sounds like you are using different top-level folders for the different audio formats. In this case, you can use a single MinimServer instance with contentDir settings for these top-level folders and navigate from the top-level menu as follows:

1) Select [folder view]
2) Select the desired audio format top-level folder
3) Select >> Tag View
4) Select the desired audio format top-level folder again

Thank you Simon for the suggestions - but I still don’t think it will give me what I am looking for: Apparently, I would have to rely on the folder view to get to my music - which is the most clunky way to navigate.

The hierarchy AlbumArtist > Album > Track (as built by iTunes) works well in many cases - but it fails when you have compilations: They all have “Compilations” as the AlbumArtist folder name. If I am looking for all songs by a specific artist, e.g. “Bruce Springsteen”, I want to just pick that artist, and every good controller software will show me all tracks, regardless of them being on an artist album or on a compilation.

However, the moment I choose a search criterion other than “folder” (e.g. “Artist” or “Composer”, I’ll have all my different versions of the same song in the results list again, with no way to tell them apart.

Also, if I am in e.g. the “Artist” view, or in the “Album” view, a text search, for “Springsteen”, or “Nebraska” will ignore all other tags.

Now… If there was an option to have my different content directories (iTunes, Hi-Res-Stereo and Multichannel) present themselves as separate media servers in control points (like Lumin, Linn or mconnect), and not just as folders: I think then we’d have a solution that keeps them separate regardless of the way I search my library, and on a single instance.
Any chance for that to happen?
Find all posts by this user
Quote this message in a reply
30-08-2022, 09:54 (This post was last modified: 30-08-2022 09:57 by simbun.)
Post: #9
RE: Minimserver in Docker Container Keeps Writing To Disk
(30-08-2022 05:11)braunsch Wrote:  Thank you Simon for the suggestions - but I still don’t think it will give me what I am looking for: Apparently, I would have to rely on the folder view to get to my music - which is the most clunky way to navigate.

Did you not see this suggestion?

(29-08-2022 10:09)simoncn Wrote:  You do this in a smaller number of steps by using the indexFormat option of the tagFormat property. For this, you need to add #AudioFormat and #AudioChannels to the itemTags property and add some other tag (for example, Library) to the indexTags property. For example, if you add the Library tag to indexTags and set tagFormat to

Library.indexFormat={$#AudioFormat$#AudioChannels^^^:}

you can select your DSF stereo files by doing the following:

1) Select Library
2) Select DSF:2

'Library' selection would be the first selection you made if you wanted to replicate your current restrictions (not being able to see ALL your music regardless of format).
Find all posts by this user
Quote this message in a reply
30-08-2022, 12:57
Post: #10
RE: Minimserver in Docker Container Keeps Writing To Disk
(30-08-2022 05:11)braunsch Wrote:  Also, if I am in e.g. the “Artist” view, or in the “Album” view, a text search, for “Springsteen”, or “Nebraska” will ignore all other tags.

Some control points (BubbleUPnP, Hi-Fi Cast, perhaps others) support text search from the contents of the current browsing selection. This means if you have browsed to DSF:2 (or some other container below this) and you issue a text search, you will only see stereo DSF files in the search results. Other control points only allow text search over the whole library, so you are correct that with these control points you would see some unwanted files. Which control point(s) do you use?

As simbun has said, for selection from the Artist, Composer, etc. indexes provided by MinimServer, you will see exactly the files that you want. This should work with all UPnP control points.

Regarding the problem with disk activity preventing the NAS from sleeping, I have done some testing on my Synology NAS and I can confirm that the solution is to add the -XX:-UsePerfData option when launching Java. To do this in a Docker container, you need to create a file /opt/minimserver/etc/minimstart.conf in the container with the contents

javaopts = -XX:-UsePerfData

You can use a Docker terminal window to create this file. After doing this, you need to stop and restart the MinimServer container.

Regarding the ability to run multiple media servers within a single instance of MinimServer, there are some tricky technical issues with adding this feature and it is not likely to happen in the near or medium term.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)