30 млн страниц пихать в один файл не имеет смысла. Яндекс к примеру настаивает, чтобы в одном файле карты было не более 50 тыс ссылок.
Попробуйте разбивать карту на несколько файлов
https://www.sitemaps.org/ru/protocol.html#index
потом по крону обновлять каждые две минуты очередной кусок карты, за сутки как раз обновится вся карта, и далее по кругу.