У меня есть два процесса, которые по-разному работают на двух ящиках, которые идентичны, за исключением количества плунжера. Одна коробка имеет 32 ГБ, а другая - 16 ГБ, и в первом случае процесс выполняется значительно лучше. Сам процесс не использует столько памяти, но читает много больших файлов. Я подозреваю, что он лучше работает на 32-гигабайтном боксе, потому что Linux может кэшировать больше файлов из-за дополнительной памяти. Однако я не знаю, как это доказать. Как узнать, читаются ли файлы из кеша, а не с диска? Конечно, я могу просто рассчитать время чтения и посмотреть, работают ли они лучше, но я хочу, чтобы Зачем они работают лучше.
Использовать iostat
или sar
для проверки статистики дискового ввода-вывода в работающих системах. Предполагая эквивалентный объем запросов ввода-вывода, машина, выполняющая больше кэширования, будет показывать более низкую скорость дискового ввода-вывода.
Я могу сделать это с помощью функции mincore ()