Ломается все: облака, серверы, ПК. Но последние выглядят особенно уязвимыми: в них используются дешевые комплектующие, редко применяется память с контролем ошибок и RAID-массивы, а пользователи склонны проводить с ними всевозможные эксперименты. Недавнее исследование помогает пролить свет на то, что и как сбоит в нашем персональном «железе».
Исследователи из Microsoft Research обработали громадную базу отчетов об ошибках, собранную системой Windows Error Reporting (WER). Конечно, полученные результаты, как и любая статистика, лишь в какой-то мере отражают действительность, тем более, что выборка заведомо имеет свою специфику. Во-первых, WER формирует отчеты только в ответ на системные сбои, хотя аппаратные ошибки не всегда к ним приводят. К примеру, однобитная ошибка DRAM для этого должна попасть примерно в 1.5% памяти, занятой ядром Windows, в остальных случаях могут «упасть» приложения или нарушиться данные. Во-вторых, различать аппаратные и программные ошибки достаточно сложно, а их количественное соотношение скорее всего зависит от особенностей конкретной ОС. Тем не менее исследователям удалось собрать весьма представительную выборку с миллиона компьютеров и классифицировать три типа ошибок: аппаратные исключения CPU, однобитные ошибки DRAM (в зоне ядра), критичные для ОС ошибки чтения с диска.
Это первое столь масштабное исследование и многие его результаты далеко не тривиальны (хотя некоторые другие кажутся вполне очевидными). Подробно с методологией и различными деталями можно познакомиться в оригинальном отчете, а основные выводы таковы:
Составить более полное представление о причинах и вероятностях аппаратных ошибок (приводящих к системным сбоям Windows) поможет следующая таблица: