Я монтирую только кэширующее устройство, а не все резервные разделы и вижу файлы, которые находятся на этих резервных разделах
Неправда - вы монтируете устройство bcache
. Оно должно быть внутренне составлено как минимум из одного устройства hdd. Кэш ssd на самом деле необязателен - так что вы все еще можете получить доступ к данным, даже если ваш ssd мертв. По крайней мере, если вы используете его с настройками по умолчанию.
Остальное - правда.
Да, в модуле bcache
есть эвристика, которая пытается отличить последовательное чтение от случайного. Но она работает на уровне отдельных системных вызовов - bcache является агностиком файловой системы: он даже не знает, что читает файлы. Поэтому все сводится к тому, как игра фактически загружает данные и какие системные вызовы в итоге используются. Если игра использует Назовите свою игру и посмотрите, проводил ли кто-нибудь ее бенчмарк. А еще лучше: проведите сравнительный анализ сами. Bcache значительно ускорил мои системы, но я не играю на них в игры.
Да, bcache
использует UUID при выборе разделов. Вы читали его документацию? Пожалуйста, сделайте.
Это зависит от того, насколько вы хотите торговать скоростью системы против деградации ssd и сколько у вас оперативной памяти (/tmp
часто tmpfs
, которая поддерживается оперативной памятью).
Есть/были по крайней мере 2 жизнеспособные альтернативы bcache, которые я систематически оценивал. Я решил инвестировать в bcache - в основном из-за скорости, совместимости и популярности. Это было в 2014 году.
Ваша команда grep
давала слишком много совпадений, потому что grep
использует базовые регулярные выражения , которые не придают особого значения \ r
- считал появления буквы «р».
tr
распознает \ n
и \ r
, поэтому он может найти все совпадения, и пусть wc -c
считает их побайтово:
tr -d -c '\n\r' < file.txt | wc -c
Но поскольку ваш файл может также содержать окончания строк Windows / DOS ( \ r \ n
), они будут учитываться дважды. Вам понадобится дополнительный шаг, чтобы преобразовать любые окончания строк в стиле DOS в одну из других форм, а затем подсчитать отдельные символы конца строки, как раньше:
sed 's/\r$//' file.txt | tr -d -c '\n\r' | wc -c
К сожалению, sed
не всегда распознает \ r
либо. Возможно, вам придется использовать другой способ указать возврат каретки, например, собственное экранирование оболочки, команду echo
или размещение сценария sed в файле.
gawk 'END {print NR}' RS='\r|\n|\r\n' file.txt
Переменная RS
указывает, что считается новой строкой для gawk
, в данном случае регулярным выражением.