Eu não recomendaria chamar um comando como du diretamente do PHP. O problema é que sua execução pode levar muitos minutos, e antes de terminar o execution_timeout do seu php ou alguns timeouts do servidor web podem ser alcançados.
Eu prefiro recomendar isso de alguma forma assíncrona. Como, por exemplo, ter um cronjob noturno, que poderia rodar como qualquer usuário privilegiado, executando o du e gravando o resultado em um arquivo. Em seguida, o PHP só lerá este arquivo quando precisar saber o tamanho.
É claro que, dessa forma, o número pode estar até 24 horas desatualizado. Mas pelo menos você pode ter certeza que seu PHP irá executar rapidamente, e não faz nenhum dos trabalhadores esperar por um tempo lento.