Я управляю серверным приложением, которому пользователи сталкиваются с ошибкой, которая говорит:
java.lang.OutOfMemoryError: не удалось создать новый собственный потокЯ искал об этом и обнаружил, что это может быть проблема отсутствия потоков против запрошенных, но я обнаружил, что у сервера нет проблем с этим, как появляется в состоянии памяти и состоянии CPU, как показано ниже:
free -m #Memory status
total used free shared buffers cached
Mem: 10103 2946 7156 0 25 88
-/+ buffers/cache: 2832 7270
Swap: 1906 26 1880
# df -h #Disk status
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 217G 172G 34G 84% /
udev 5.0G 4.0K 5.0G 1% /dev
tmpfs 2.0G 264K 2.0G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 5.0G 0 5.0G 0% /run/shm
/dev/sda1 189M 33M 146M 19% /boot
И это информация о состоянии процессора:
# ps aux | wc -l #Number of Running Processes
92
# ulimit -a | grep "max user" #Maximum allowed Users Processes
max user processes (-u) 80711
# ps axms | wc -l #Number of Running Threads
376
# cat /proc/sys/kernel/threads-max #Maximum allowed Number of Threads
161422
Это верхний вывод, показывающий, что служба Java использует 3G как виртуальную память и 2.5G как размер резидентства: