sqlite3 — php-cgi не всегда завершается и блокирует sqlite

Так что у меня возникает эта случайная проблема, которая наносит ущерб моей системе. Это небольшая встроенная система ARM, которая обслуживает веб-страницы с использованием httpd busybox. Страницы написаны на PHP и есть бэкэнд sqlite3.

Время от времени при доступе к страницам системы система начинает зависать. Что я обнаружил, так это то, что виновник, кажется, что php-cgi иногда не заканчивается. Что-то происходит, и оно застревает открытым, и это приводит к тому, что база данных sqlite3, к которой он обращался, блокируется, в результате чего любой другой процесс завершается с ошибкой, пытаясь получить к нему доступ, и в основном все замедляется до сканирования, пытающегося и не получающего доступа к этой базе данных. Если вы продолжите просматривать страницы, которые они только что создали, и довольно скоро у вас будет что-то вроде этого:

CPU: 34.2% usr 24.5% sys 41.0% nic  0.0% idle  0.0% io  0.0% irq  0.1% sirq
Load average: 10.99 3.36 1.31 23/131 2172
PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
1229  1208 root     S     107m 21.3   0 39.8 Router -t /tmp/volatileTables.d
1224  1208 root     S    81852 15.9   0 14.4 Messenger -t /tmp/volatileTable
2103  2102 root     R N  16740  3.2   0  2.1 /usr/bin/php-cgi all_stream.php
2106  2105 root     R N  16264  3.1   0  2.1 /usr/bin/php-cgi all_stream.php
2109  2108 root     R N  15612  3.0   0  2.1 /usr/bin/php-cgi all_stream.php
2112  2111 root     R N  15092  2.9   0  2.1 /usr/bin/php-cgi all_stream.php
2115  2114 root     R N  14708  2.8   0  2.1 /usr/bin/php-cgi all_stream.php
2118  2117 root     R N  14296  2.7   0  2.1 /usr/bin/php-cgi all_stream.php
2121  2120 root     R N  14036  2.7   0  2.1 /usr/bin/php-cgi all_stream.php
2124  2123 root     R N  13908  2.7   0  2.1 /usr/bin/php-cgi all_stream.php
2127  2126 root     R N  13908  2.7   0  2.1 /usr/bin/php-cgi all_stream.php
2131  2130 root     R N  13908  2.7   0  2.1 /usr/bin/php-cgi all_stream.php
2135  2134 root     R N  13776  2.6   0  2.1 /usr/bin/php-cgi all_stream.php
2142  2141 root     R N  13776  2.6   0  2.1 /usr/bin/php-cgi all_stream.php
2145  2144 root     R N  13776  2.6   0  2.1 /usr/bin/php-cgi all_stream.php
2151  2150 root     R N  13776  2.6   0  2.1 /usr/bin/php-cgi all_stream.php
2160  2159 root     R N  13332  2.5   0  2.1 /usr/bin/php-cgi all_stream.php
2163  2162 root     R N  12936  2.5   0  2.1 /usr/bin/php-cgi all_stream.php
2166  2165 root     R N  12780  2.4   0  2.1 /usr/bin/php-cgi all_stream.php
2154  2153 root     R N  13776  2.6   0  1.9 /usr/bin/php-cgi all_stream.php
~ #

Однажды мы смогли получить среднюю нагрузку до 50! Messenger и Router — это приложения, пытающиеся получить доступ к базе данных, заблокированной всеми сценариями php.

Какие-нибудь подсказки для меня относительно того, как продолжить? Должен ли я использовать какой-то другой метод для запуска файлов php? Должен ли я попробовать lighttpd вместо httpd с busybox? Есть ли что-то в моем скрипте php.ini, которое мне нужно изменить? Что-то плохое я делаю в своих скриптах php?

Любая подсказка в правильном направлении была бы полезна!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]