A memory fault detection method based on determining whether faults occur repeatedly, and in case counted correctable errors occurred twice, determining that a hardware fault occurred, comprising: counting, by a first leaky bucket counter, a correctable error occurring in a first memory rank corresponding to the first leaky bucket counter; sending, by the first leaky bucket counter, a first interrupt signal, when a count value of the first leaky bucket counter reaches a first threshold, wherein a set leaky bucket frequency of the first leaky bucket counter is less than a memory access frequency and greater than a frequency of occurrence of correctable non-hardware faults, the set leaky bucket frequency of the first leaky bucket counter being a value subtracted from the leaky bucket count value of the first leaky bucket counter each second; receiving, by a control module , the first interrupt signal of the first leaky bucket counter; disabling an interrupt switch of the first leaky bucket counter after receiving the first interrupt signal, so that the first leaky bucket counter cannot send an interrupt signal until the interrupt switch is again enabled; enabling the interrupt switch of the first leaky bucket counter after the interrupt switch of the first leaky bucket counter has been disabled for a preset time and the count value of the first leaky bucket counter is reset to zero, wherein the preset time is based on a duration of the correctable non-hardware faults; if a second interrupt signal sent by the first leaky bucket counter is received by the control module after enabling the interrupt switch of the first leaky bucket counter, determining that a hardware fault occurred in the first memory rank. counting, by a first leaky bucket counter, a correctable error occurring in a first memory rank corresponding to the first leaky bucket counter; sending, by the first leaky bucket counter, a first interrupt signal, when a count value of the first leaky bucket counter reaches a first threshold, wherein a set leaky bucket frequency of the first leaky bucket counter is less than a memory access frequency and greater than a frequency of occurrence of correctable non-hardware faults, the set leaky bucket frequency of the first leaky bucket counter being a value subtracted from the leaky bucket count value of the first leaky bucket counter each second; receiving, by a control module , the first interrupt signal of the first leaky bucket counter; disabling an interrupt switch of the first leaky bucket counter after receiving the first interrupt signal, so that the first leaky bucket counter cannot send an interrupt signal until the interrupt switch is again enabled; enabling the interrupt switch of the first leaky bucket counter after the interrupt switch of the first leaky bucket counter has been disabled for a preset time and the count value of the first leaky bucket counter is reset to zero, wherein the preset time is based on a duration of the correctable non-hardware faults; if a second interrupt signal sent by the first leaky bucket counter is received by the control module after enabling the interrupt switch of the first leaky bucket counter, determining that a hardware fault occurred in the first memory rank. <EOS>