mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-24 23:39:03 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| set -eu
 | |
| 
 | |
| LOG_LEVEL="${IMMICH_LOG_LEVEL:='info'}"
 | |
| 
 | |
| logDebug() {
 | |
|     if [ "$LOG_LEVEL" = "debug" ] || [ "$LOG_LEVEL" = "verbose" ]; then
 | |
|         echo "DEBUG: $1" >&2
 | |
|     fi
 | |
| }
 | |
| 
 | |
| if [ -f /sys/fs/cgroup/cgroup.controllers ]; then
 | |
|     logDebug "cgroup v2 detected."
 | |
|     if [ -f /sys/fs/cgroup/cpu.max ]; then
 | |
|         read -r quota period </sys/fs/cgroup/cpu.max
 | |
|         if [ "$quota" = "max" ]; then
 | |
|             logDebug "No CPU limits set."
 | |
|             unset quota period
 | |
|         fi
 | |
|     else
 | |
|         logDebug "/sys/fs/cgroup/cpu.max not found."
 | |
|     fi
 | |
| else
 | |
|     logDebug "cgroup v1 detected."
 | |
| 
 | |
|     if [ -f /sys/fs/cgroup/cpu/cpu.cfs_quota_us ] && [ -f /sys/fs/cgroup/cpu/cpu.cfs_period_us ]; then
 | |
|         quota=$(cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us)
 | |
|         period=$(cat /sys/fs/cgroup/cpu/cpu.cfs_period_us)
 | |
| 
 | |
|         if [ "$quota" = "-1" ]; then
 | |
|             logDebug "No CPU limits set."
 | |
|             unset quota period
 | |
|         fi
 | |
|     else
 | |
|         logDebug "/sys/fs/cgroup/cpu/cpu.cfs_quota_us or /sys/fs/cgroup/cpu/cpu.cfs_period_us not found."
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| if [ -n "${quota:-}" ] && [ -n "${period:-}" ]; then
 | |
|     cpus=$((quota / period))
 | |
|     if [ "$cpus" -eq 0 ]; then
 | |
|         cpus=1
 | |
|     fi
 | |
| else
 | |
|     cpus=$(grep -c ^processor /proc/cpuinfo)
 | |
| fi
 | |
| 
 | |
| echo "$cpus"
 |