<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def required_max_memory(cls, id, memory):
 """ Recommend a max_memory setting for this vm given memory. If the VM already has a nice setting, return None. The max_memory param cannot be fixed too high, because page table allocation would cost too much for small memory profile. Use a range as below. """

        best = int(max(2 ** math.ceil(math.log(memory, 2)), 2048))

        actual_vm = cls.info(id)

        if (actual_vm['state'] == 'running'
                and actual_vm['vm_max_memory'] != best):
            return best