Devem existir várias soluções para isto, mas no momento pensei em duas:
1) Limitar o processo: Tutoriais/Linux/cpulimit - UnderLinux Wiki assim vc poderia limitar o php para usar até 60% ~ 70% dos recursos da cpu; e/ou,
2) jogar a bucha para o servidor de banco de dados, ao invés de foreach, sei que está usando array, mas não sei pq, então creio que possa usar algo como:
Código PHP:
while($i=mysql_fetch_array($query)){
$csv_file=$i[\"nome\"].\",\".$i[\"endereco\"].\",\".$i[\"cidade\"].\"\n\";
}
(obs. o fórum 'escapou' todas as aspas c/ medo de myql injection e retornou no próprio post )