мой сайт wordpress, который находится в кластерной среде с использованием NFS, nginx, php-fpm, mysql, инфраструктура размещена на amazon ec2. При высокой нагрузке / трафике процесс php5-fpm переходит в состояние D (бесперебойный сон) и происходит сбой веб-сайта. После проверки командой
echo w > /proc/sysrq-trigger; dmesg -c | less;
обнаружил, что php-fpm находится в заблокированном состоянии Трассировка стека ядра
[6615425.408345] SysRq: Показать заблокированное состояние [6615425.408362] задача
PC стек PID отец [6615425.408444] php5-FPM D 0000000000000000 0 16616 12079 0x00000000 [+6615425,408453] ffff880001793938 0000000000000246 0000000000014580 ffff880001793fd8 [6615425,408457] ffff880001793fd8 0000000000014580 ffff88001cad1770 ffff88001cad1770 [+6615425,408460] ffff88006c88ba00 0000000000000082 ffffffffa0044190 ffff8800017939b0 [+6615425,408463] Вызов трассировки: [6615425,408491] []? __rpc_wait_for_completion_task + 0x30 / 0x30 [sunrpc] [6615425.408497] [] расписание + 0x29 / 0x70 [6615425.408506] [] rpc_wait_bit_killable + 0x35 / 0x90 [sunrpc_bit_killable] [+ 0x35 / 0x90 [sunrpc_bit_killable] [0x35 / 0x90 [sunrpc16.40] [+085x90] [sunrpc_425] [66154x] [6615425__] [66154___ __queue_work + 0x135 / 0x330 [6615425.408524] []? __rpc_wait_for_completion_task + 0x30 / 0x30 [sunrpc] [6615425.408528] [] out_of_line_wait_on_bit + 0x77 / 0x90 [6615425.408532] []? wake_atomic_t_function + 0x40 / 0x40 [6615425.408540] [] __rpc_wait_for_completion_task + 0x2d / 0x30 [sunrpc] [6615425.408553] [] nfs4_run_open_task + 0x11f] [nfs4_run_open_task + 0x11f] [0x140] [nf15470] [nf15470] [0x140] nfs4_get_open_state + 0x76 / 0x1b0 [nfsv4] [6615425.408571] [] nfs4_do_open + 0x1d8 / 0x930 [nfsv4] [6615425.408581] []? generic_lookup_cred + 0x15 / 0x20 [sunrpc] [6615425.408591] []? rpcauth_lookupcred + 0x77 / 0xc0 [sunrpc] [6615425.408603] []? nfs_do_access + 0x69 / 0x250 [nfs] [6615425.408610] [] nfs4_atomic_open + 0xd4 / 0xe0 [nfsv4] [6615425.408619] [] nfs4_file_open + 0xb9 / 0x1b4 [nfs1b0]
Также я часто встречал php5-fpm segfault с ошибкой 4 в dmesg.
ОС - это ubuntu 12.04LTS, на которой работает nfs-kernel-server, а на стороне клиента - Ubuntu 13.04, которая nfsv4. Я попытался обновить размер экземпляра сервера NFS, а также увеличил потоки сервера NFS, но не повлиял.
До сих пор не мог найти подходящего решения для этого.