Ошибка 4 -- это EINTR (бред). И в линуксе ошибки числами мало кто
выпечатывает. Кто их вообще выдаёт??? Может твой php? Проверить
(не)работу файловой системы можно с помощью чего-то вроде "echo
> file.txt" -- оно печатает ошибку на человеческом языке. Если
помогает ребут, то есть шанс, что у тебя кто-то держит кучу
удалённых незакрытых файлов (при ребуте они самоудаляются) и 1) исчерпывает либо место на диске (вряд ли);
2) либо исчерпывает иноды (теплей);
3) либо исчерпывает лимит на число открытых файлов (горячо).
Об этом в принципе ошибка должна говорить. Диагностика для 1 и 2 -- разница между df и du или "df -i" и "du -i".
Для 3 варианта диагностика -- "cat /proc/sys/fs/file-nr" (первое число, больше десятка тысяч -- повод задуматься).
Кто держит удалённые файлы открытыми можно посмотреть с помощью "lsof | grep deleted" (от рута).
Потом какого типа у тебя виртуализация, Xen, KVM или OpenVZ, когда ты ядро делишь с другими
(см. https://unix.stackexchange.com/questions/89714/easy-way-to-determine-virtualization-technology)
В OpenVZ и изоляция отвратительная и вечная беда с файловой системой (simfs vs ploop), потому OpenVZ и дешевле.
Я не рекомендую OpenVZ вообще никогда, по сути это похоже на то, как если бы разных клиентов посадили в разные докер-контейнеры на одной машине.
Что значит "reboot" не помогает? Не работает вообще? По идее он там какого-то демона должен пнуть и тот контейнер перегрузит как из панели. Может ты демона отломал.