Почему буферы равняются используемой памяти?

С разностью GNU передайте один из файлов как аргумент --from-file и любое число других как операнд:

$ diff -q --from-file file1 file2 file3 file4; echo $?
0
$ echo >>file3
$ diff -q --from-file file1 file2 file3 file4; echo $?
Files file1 and file3 differ
1
5
30.12.2012, 00:51
2 ответа

Это происходит из-за OpenVZ. Вы видите пределы, примененные в /proc/user_beancounters, и здесь существует некоторое объяснение: http://wiki.openvz.org/Privvmpages

Хотя у меня не было проблем памяти в контейнере, я думаю предложение здесь:

http://www.moeding.net/archives/20-Optimizing-virtual-memory-in-OpenVZ-I.html

запускаться путем установки размера стека с ulimit хороший. Просто обратите внимание, что импликация там, что OpenVZ использует ту же метрику, поскольку Вы находите в столбце VIRT вершины, является неправильной; "privvmpages", я верю виртуальным страницам, отмеченным перезаписываемый и частный, таким образом значительно меньше, чем все адресное пространство процесса. Существует некоторая другая дезинформация там также ("К сожалению, исчерпывание памяти, состояние ошибки, которое большинству программ не удается обработать правильно". - на Linux, исчерпывая память по умолчанию не состояние ошибки, таким образом, программы не получают шанс обработать его правильно). Но записывание размера стека, вероятно, все еще стоит попробовать.

Предложение Slm походит на хорошее решение нахождения богачей, но если Ваша часть похожа на мою, существует нет /proc/bc работать с. Можно, однако, получить перезаписываемую и частную статистику для процесса через pmap -d, или взгляд на числа в вершине.

1 ГБ мог бы походить на достаточно для выполнения JVM, но существует сложность: так как объем памяти, используемый и доступный, не является простым числом (см. некоторое обсуждение почему здесь), общее количество может быть больше, чем машина может на самом деле обеспечить в определенный момент времени.

4
27.01.2020, 20:40

Я делаю это как это с функцией удара.

vzr_mb () 
{ 
    ( printf "vm feature held(MB) maxheld(MB) barrier(MB) limit(MB) failcnt\n";
    grep privvm /proc/bc/1*/resources | awk '{sub($3,$3*4096/2^20) sub($4,$4*4096/2^20) sub($5,$5*4096/2^20) sub($6,$6*4096/2^20)}1' ) | column -t
}

Выполнение это похоже на это:

% vzr_mb
vm                       feature      held(MB)  maxheld(MB)  barrier(MB)  limit(MB)  failcnt
/proc/bc/101/resources:  privvmpages  184.422   300.129      300          310        2
/proc/bc/102/resources:  privvmpages  473.703   861.078      900          950        13
/proc/bc/103/resources:  privvmpages  184.457   579.941      300          350        238
/proc/bc/104/resources:  privvmpages  307.961   700.473      400          450        70
/proc/bc/105/resources:  privvmpages  477.828   773.586      700          750        1730347
/proc/bc/106/resources:  privvmpages  637.801   981.281      1000         1050       511
/proc/bc/108/resources:  privvmpages  167.777   580.102      285          295        1
/proc/bc/109/resources:  privvmpages  202.055   308.969      395          425        0
/proc/bc/110/resources:  privvmpages  212.492   625.324      295          325        326
/proc/bc/111/resources:  privvmpages  189.539   535.492      295          325        5
/proc/bc/112/resources:  privvmpages  239.617   407.766      468.75       488.281    0
/proc/bc/180/resources:  privvmpages  195.605   601.602      200          225        3049321
/proc/bc/181/resources:  privvmpages  967.027   1304.82      1500         2000       3
/proc/bc/183/resources:  privvmpages  0         1087.72      1115         1150       0
1
27.01.2020, 20:40
  • 1
    То, что делает эти значения, обозначает? {sub (3$, 3$ *4096/2^20) sub (4$, 4$ *4096/2^20) sub (5$, 5$ *4096/2^20) sub (6$, 6$ *4096/2^20)} –  Kenshin 08.09.2016, 23:33
  • 2
    , к чему 4096 относится? номер –  Kenshin 08.09.2016, 23:35

Теги

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