Have been looking at the logs and picked on one example where requests for a couple of media items ended up with extensive database lockout.
Tried to replicate the requests by firing simultaneous requests using curl.exe to see if they lock each other out and that did not happen.
It is more likely to be your setup or may be the volume - how big is the database ? D:\Plex\AppData\Plex Media Server\Plug-in Support\Databases\com.plexapp.plugins.library.db ? How many TV episodes ? movies?
You mentioned that the disc drive from the database is a virtual extendable drive - it would be an idea to run some read / write / seek speed tests on it to see what the performance
You could
These were two requests that i looked into
Jan 07, 2019 18:21:19.667 [3848] DEBUG - Request: [192.168.2.32:56652 (WAN)] GET /library/metadata/39290?includeConcerts=1&includeExtras=1&includeOnDeck=1&includePopularLeaves=1&includePreferences=1&includeChapters=1&includeStations=1&asyncAugmentMetadata=1&asyncCheckFiles=1&asyncRefreshAnalysis=1&asyncRefreshLocalMediaAgent=1 (33 live) TLS GZIP Signed-in Token (fidnadiddat@gmail.com)
Jan 07, 2019 18:21:19.667 [3464] DEBUG - Request: [192.168.2.32:56670 (WAN)] GET /library/metadata/39292?includeConcerts=1&includeExtras=1&includeOnDeck=1&includePopularLeaves=1&includePreferences=1&includeChapters=1&includeStations=1&asyncAugmentMetadata=1&asyncCheckFiles=1&asyncRefreshAnalysis=1&asyncRefreshLocalMediaAgent=1 (33 live) TLS GZIP Signed-in Token (fidnadiddat@gmail.com)
They came in at the same time and each instigated a metadata refresh activity - so we ended up with 4 threads running and it appears that both of the 2 refresh activities threads ended up with database locks - I am not sure if there is a third factor here - something else locking out the database for both of these threads or if it is slow disk writes for one impacting the other
I am going to go into a bit of detail here. So we had threads [3848] and [3464] deal with these 2 requests. Each created another thread for a refresh of metadata
Jan 07, 2019 18:21:19.682 [4708] DEBUG - Activity: updated activity 56f196f5-d5ec-4a89-8458-5cd7325daa09 - completed 0% - Refreshing
Jan 07, 2019 18:21:19.682 [5868] DEBUG - Activity: updated activity 290de964-e29d-42e2-a42a-49cbb9fd0901 - completed 0% - Refreshing
so we now have threads [4708] and [5868] doing refreshes. Both of these ended up being locked out repeatedly
Jan 07, 2019 18:21:23.120 [4708] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:23.120 [5868] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:26.464 [4708] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:26.464 [5868] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:29.808 [5868] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:29.808 [4708] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:33.151 [4708] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:33.151 [5868] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:36.495 [4708] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:36.495 [5868] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:39.839 [5868] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:39.839 [4708] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:43.183 [4708] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:43.183 [5868] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:46.526 [4708] WARN - Waited one whole second for a busy database.
Jan 07, 2019 18:21:46.526 [5868] WARN - Waited one whole second for a busy database.
if your disk speed tests do not show any issue, and if the above scenario is easily reproducible - eg through a batch file that executes the requests using curl.exe
example of batch file to run - this executes the above 2 requests 3 times and attempts to do it in parallel - you will need to put in the server security token instead of the xxxxxxxxxxxxx (see https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/)
start curl "http://10.10.0.10:32400/library/metadata/39290?includeConcerts=1&includeExtras=1&includeOnDeck=1&includePopularLeaves=1&includePreferences=1&includeChapters=1&includeStations=1&asyncAugmentMetadata=1&asyncCheckFiles=1&asyncRefreshAnalysis=1&asyncRefreshLocalMediaAgent=1&X-Plex-Token=xxxxxxxxxxxxxxxx" > "%LocalAppData%\39290a.xml"
start curl "http://10.10.0.10:32400/library/metadata/39292?includeConcerts=1&includeExtras=1&includeOnDeck=1&includePopularLeaves=1&includePreferences=1&includeChapters=1&includeStations=1&asyncAugmentMetadata=1&asyncCheckFiles=1&asyncRefreshAnalysis=1&asyncRefreshLocalMediaAgent=1&X-Plex-Token=xxxxxxxxxxxxxxxx" > "%LocalAppData%\39292a.xml"
start curl "http://10.10.0.10:32400/library/metadata/39290?includeConcerts=1&includeExtras=1&includeOnDeck=1&includePopularLeaves=1&includePreferences=1&includeChapters=1&includeStations=1&asyncAugmentMetadata=1&asyncCheckFiles=1&asyncRefreshAnalysis=1&asyncRefreshLocalMediaAgent=1&X-Plex-Token=xxxxxxxxxxxxxxxx" > "%LocalAppData%\39290b.xml"
start curl "http://10.10.0.10:32400/library/metadata/39292?includeConcerts=1&includeExtras=1&includeOnDeck=1&includePopularLeaves=1&includePreferences=1&includeChapters=1&includeStations=1&asyncAugmentMetadata=1&asyncCheckFiles=1&asyncRefreshAnalysis=1&asyncRefreshLocalMediaAgent=1&X-Plex-Token=xxxxxxxxxxxxxxxx" > "%LocalAppData%\39292b.xml"
start curl "http://10.10.0.10:32400/library/metadata/39290?includeConcerts=1&includeExtras=1&includeOnDeck=1&includePopularLeaves=1&includePreferences=1&includeChapters=1&includeStations=1&asyncAugmentMetadata=1&asyncCheckFiles=1&asyncRefreshAnalysis=1&asyncRefreshLocalMediaAgent=1&X-Plex-Token=xxxxxxxxxxxxxxxx" > "%LocalAppData%\39290c.xml"
start curl "http://10.10.0.10:32400/library/metadata/39292?includeConcerts=1&includeExtras=1&includeOnDeck=1&includePopularLeaves=1&includePreferences=1&includeChapters=1&includeStations=1&asyncAugmentMetadata=1&asyncCheckFiles=1&asyncRefreshAnalysis=1&asyncRefreshLocalMediaAgent=1&X-Plex-Token=xxxxxxxxxxxxxxxx" > "%LocalAppData%\39292c.xml"
So if the database lockouts as seen above arise with this script then could do a test with Sysinternals Process Monitor running to see what else may be accessing the database - download from https://docs.microsoft.com/en-us/sysinternals/downloads/procmon)
Capturing all events and saving unfiltered to a PML file. It will be big but it zips very well.
That together with the logs could help the investigation
I see you have multiple subnets with server on 10.10.0.10 and requests coming in from 192.168.xx.xx - you could look into network performance tests as well
For the zipped logs you provided - did you zip the files yourself ? I could only see current ,log files and not previous log files eg .1 and .2 etc - it is always best to zip whole set - that would give more insight into the problem