1. An apparatus comprising a computer processor and a computer memory operatively coupled to the computer processor, the computer memory having computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of: tracking a number of errors associated with a memory page, wherein tracking the number errors associated with the memory page comprises: receiving an indication that an error has occurred at a particular memory page; determining whether an error count table includes an entry associated with the particular memory page; responsive to determining that the error count table does not include the entry associated with the particular memory page: removing, from the error count table, an existing entry that includes a lowest error count; and adding, to the error count table, a new entry for the particular memory page; determining whether the number of errors associated with the memory page exceeds a predetermined threshold; responsive to determining that the number of errors associated with the memory page exceeds the predetermined threshold, attempting to retire the memory page; determining that the memory page has not been successfully retired because page retirement is not supported by an operating system or a hypervisor; and responsive to determining that the memory page has not been successfully retired because page retirement is not supported by the operating system or the hypervisor, generating a predictive failure alert; wherein determining whether the memory page has been successfully retired further comprises determining whether a new error has occurred at the memory page during a predetermined period of time.