mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	alter defaults for workers and threads to allow more parallel tasks #446
This commit is contained in:
		| @@ -376,25 +376,24 @@ PAPERLESS_THREADS_PER_WORKER=<num> | ||||
|         use a higher thread per worker count. | ||||
|  | ||||
|     The default is a balance between the two, according to your CPU core count, | ||||
|     with a slight favor towards threads per worker, and leaving at least one core | ||||
|     free for other tasks: | ||||
|     with a slight favor towards threads per worker: | ||||
|  | ||||
|     +----------------+---------+---------+ | ||||
|     | CPU core count | Workers | Threads | | ||||
|     +----------------+---------+---------+ | ||||
|     |              1 |       1 |       1 | | ||||
|     +----------------+---------+---------+ | ||||
|     |              2 |       1 |       1 | | ||||
|     |              2 |       2 |       1 | | ||||
|     +----------------+---------+---------+ | ||||
|     |              4 |       1 |       3 | | ||||
|     |              4 |       2 |       2 | | ||||
|     +----------------+---------+---------+ | ||||
|     |              6 |       2 |       2 | | ||||
|     |              6 |       2 |       3 | | ||||
|     +----------------+---------+---------+ | ||||
|     |              8 |       2 |       3 | | ||||
|     |              8 |       2 |       4 | | ||||
|     +----------------+---------+---------+ | ||||
|     |             12 |       3 |       3 | | ||||
|     |             12 |       3 |       4 | | ||||
|     +----------------+---------+---------+ | ||||
|     |             16 |       3 |       5 | | ||||
|     |             16 |       4 |       4 | | ||||
|     +----------------+---------+---------+ | ||||
|  | ||||
|     If you only specify PAPERLESS_TASK_WORKERS, paperless will adjust | ||||
|   | ||||
| @@ -20,7 +20,7 @@ class TestSettings(TestCase): | ||||
|         self.assertEqual(default_threads, 1) | ||||
|  | ||||
|     def test_workers_threads(self): | ||||
|         for i in range(2, 64): | ||||
|         for i in range(1, 64): | ||||
|             with mock.patch("paperless.settings.multiprocessing.cpu_count") as cpu_count: | ||||
|                 cpu_count.return_value = i | ||||
|  | ||||
| @@ -31,4 +31,4 @@ class TestSettings(TestCase): | ||||
|                 self.assertTrue(default_workers >= 1) | ||||
|                 self.assertTrue(default_threads >= 1) | ||||
|  | ||||
|                 self.assertTrue(default_workers * default_threads < i, f"{i}") | ||||
|                 self.assertTrue(default_workers * default_threads <= i, f"{i}") | ||||
|   | ||||
| @@ -354,8 +354,10 @@ LOGGING = { | ||||
|  | ||||
| def default_task_workers(): | ||||
|     # always leave one core open | ||||
|     available_cores = max(multiprocessing.cpu_count() - 1, 1) | ||||
|     available_cores = max(multiprocessing.cpu_count(), 1) | ||||
|     try: | ||||
|         if available_cores < 4: | ||||
|             return available_cores | ||||
|         return max( | ||||
|             math.floor(math.sqrt(available_cores)), | ||||
|             1 | ||||
| @@ -376,7 +378,7 @@ Q_CLUSTER = { | ||||
|  | ||||
| def default_threads_per_worker(task_workers): | ||||
|     # always leave one core open | ||||
|     available_cores = max(multiprocessing.cpu_count() - 1, 1) | ||||
|     available_cores = max(multiprocessing.cpu_count(), 1) | ||||
|     try: | ||||
|         return max( | ||||
|             math.floor(available_cores / task_workers), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 jonaswinkler
					jonaswinkler