Encontrei a solução sozinho:
Por padrão, o apc agora usa o mmap para memória compartilhada. Em teoria, mmap não deve ser ligado ao tamanho máximo de shm pelo kernel, mas parece que é, pelo menos em ambientes de servidores compartilhados como virtuozzo. Além disso, o mmap ignora apc.shm_segments
porque ele não cria vários arquivos anônimos para mapear na memória sem uma máscara, portanto, a menos que você também defina apc.mmap_file_mask, isso parece ser inútil.
Outra maneira é recompilar o apc usando --disable-apc-mmap
e usar a memória compartilhada do IPC!