Почему buf/cache берут так много поршня и не разделяют на блоки

Таким образом, я просто установил свою новую Ubuntu 16.04 со всем необходимым материалом, чтобы начать программировать. Но теперь у меня есть большая проблема с поршнем. Я не могу открыть больше приложения, которое я имею на своем предыдущем ноутбуке с linux 12.04, который имеет половину моей текущей памяти. Моей 1 проблемой является с процессом XORG:

 1040 root      20   0 2403428 1,091g 1,014g S  21,9  7,1 247:35.70 Xorg                                                                                                                   

требуется так много поршня после одного дня использования моего ноутбука. Вторая проблема с любителем/кэшем, которые всегда принимают 2 ГБ. Я считал это, и они объявляют, что это должно разделить на блоки, когда моей системе нужен он. Таким образом, мое текущее состояние:

KiB Mem : 16063252 total,  2044612 free, 11033624 used,  2985016 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  2778236 avail Mem 

Таким образом, я имею все еще как свободные 2 ГБ.

теперь я запускаю компиляцию один из моего большего проекта. Когда свободный близко к 0 затем катастрофическим отказам процесса компиляции, потому что они не имеют никакого свободного поршня:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.16:test (surefire-itest) on project my-project: Execution surefire-itest of goal org.apache.maven.plugins:maven-surefire-plugin:2.16:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
[ERROR] Command was/bin/sh -c cd /my-project && /usr/lib/jvm/java-8-oracle/jre/bin/java -Dfile.encoding=UTF-8 -jar my-project/target/surefire/surefirebooter8879869524337464183.jar my-project/target/surefire/surefire5896025025928619492tmp my-project/target/surefire/surefire_21839336642879397359tmp

это - состояние за несколько секунд до катастрофического отказа:

KiB Mem : 16063252 total,   178808 free, 13693208 used,  2191236 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   191788 avail Mem 

да свободный и память пользы близко к 0, но там все еще похож на 2 ГБ в любителе/кэше. Почему linux/java не использует эту память? Есть ли некоторый путь, как я могу, оптимизировал мое текущее использование памяти?

2
задан 28 February 2017 в 16:14

2 ответа

Ваш компилятор выполняет в Java VM, который по умолчанию ограничен 1 ГБ, неважно, сколько свободной памяти Вы имеете. Попытайтесь предоставить java команда -Xmx2G, чтобы удостовериться, что она может исправить вдвое больше и не стесняться увеличивать то число далее, если это недостаточно. Обратите внимание, что осмотр через 2 ГБ не поможет, если Вы, окажется, будете использовать 32-разрядную версию Java (который маловероятен, рассматривая систему, которую Вы имеете).

2
ответ дан 2 December 2019 в 03:42

Память, используемая кэшем/буферами, не является Вашей проблемой, поскольку это выпущено, по мере необходимости См. это.

Одна возможность:

Как Dmitry указывает, что Это вероятно Ваш VM Java, который это разрушает на Вас. Для расширения немного на его ответе существует пара переключателей, включенных, которые указывают, что начальный и максимальный размер выделения памяти объединяет доступный Java VM. Ниже выборка от страница

-Xmsn               Specifies the initial size of the memory allocation
                           pool.   This  value  must  be  a  multiple  of 1024
                           greater than 1 MB.  Append the letter  k  or  K  to
                           indicate  kilobytes,  the letter m or M to indicate
                           megabytes, the letter g or G to indicate gigabytes,
                           or  the  letter  t or T to indicate terabytes.  The
                           default value is 2MB. Examples:

                           -Xms6291456
                           -Xms6144k
                           -Xms6m

       -Xmxn               Specifies the maximum size, in bytes, of the memory
                           allocation  pool.  This value must be a multiple of
                           1024 greater than 2 MB.  Append the letter k  or  K
                           to  indicate  kilobytes, the letter m or M to indi-
                           cate megabytes, the letter g or G to indicate giga-
                           bytes,  or the letter t or T to indicate terabytes.
                           The default value is 64MB. Examples:

                           -Xmx83886080
                           -Xmx81920k
                           -Xmx80m

питекантропа, Там некоторые различия в зависимости от платформы, на которой Вы работаете также.

                       On Mac OS X platforms, the  upper  limit  for  this
                       value when running in 32-bit mode (-d32) is approx-
                       imately 2100m minus overhead amounts, and  approxi-
                       mately  127t minus overhead amounts when running in
                       64-bit mode (-d64).  On Solaris  7  and  Solaris  8
                       SPARC  platforms, the upper limit for this value is
                       approximately  4000m  minus  overhead  amounts.  On
                       Solaris  2.6  and x86 platforms, the upper limit is
                       approximately  2000m  minus  overhead  amounts.  On
                       Linux  platforms,  the upper limit is approximately
                       2000m minus overhead amounts.

Другая возможность:

я также отмечаю, что у Вас нет включенной подкачки. Таким образом, если это не VM, Вы могли бы хотеть смотреть на это для метода определения, если необходимо включить подкачку. Я думаю, что Вы должны.

, Если Вы работаете 14.04 а не 16.04 , как это говорит в Вашем сообщении, Вы можете быть затронуты эта ошибка или возможно этот

, Если Вы работаете 16.04, и Xorg пропускает память, вызывающую Вашу проблему, возможно , эта ошибка вновь появилась из-за регрессии, в этом случае, необходимо сообщить об этом относительно панель запуска

Источник: http://www.manpagez.com/man/1/java/

0
ответ дан 2 December 2019 в 03:42

Другие вопросы по тегам:

Похожие вопросы: