С разностью 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
Это происходит из-за 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, но существует сложность: так как объем памяти, используемый и доступный, не является простым числом (см. некоторое обсуждение почему здесь), общее количество может быть больше, чем машина может на самом деле обеспечить в определенный момент времени.
Я делаю это как это с функцией удара.
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