мой сайт замедлился последние пару дней ... какое-то изображение не отображается ... у меня
408 Request Time-out: Server timeout waiting for the HTTP request from the client
пару раз, чего раньше никогда не было.
я сделал небольшую проверку производительности, в основном верхнюю команду в ssh
это результат
http://up.akstube.com/images/vdtebe9sr10si1eyycd.jpg
как вы можете видеть, использование памяти очень велико ... или я думаю, что это так.
Я перезагрузил сервер ... он отключился, но через некоторое время снова включился ... (это примерно через час после перезагрузки)
http://up.akstube.com/images/49xjeylxy0st7vwn4ojl.png
через полчаса =>
top - 16:14:22 up 1:56, 2 users, load average: 0.62, 0.90, 1.15
Tasks: 303 total, 1 running, 302 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.0%us, 0.2%sy, 0.0%ni, 91.4%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 32840004k total, 21037648k used, 11802356k free, 430832k buffers
Swap: 1050616k total, 0k used, 1050616k free, 16527108k cached
сейчас
[root@ns4008353 ~]# top
top - 16:33:25 up 2:15, 2 users, load average: 0.88, 0.94, 0.98
Tasks: 303 total, 3 running, 300 sleeping, 0 stopped, 0 zombie
Cpu(s): 6.8%us, 0.2%sy, 0.0%ni, 92.8%id, 0.0%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 32840004k total, 22388160k used, 10451844k free, 434964k buffers
Swap: 1050616k total, 0k used, 1050616k free, 17324104k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7532 mysql 20 0 3750m 492m 5556 S 18.0 1.5 49:53.58 mysqld
12903 apache 20 0 232m 40m 4864 S 16.3 0.1 0:56.74 httpd
7748 apache 20 0 235m 43m 5256 S 11.6 0.1 1:33.36 httpd
8010 apache 20 0 262m 70m 4856 R 6.7 0.2 1:32.05 httpd
7747 apache 20 0 235m 43m 5220 S 1.3 0.1 1:06.37 httpd
7749 apache 20 0 222m 30m 5164 S 1.3 0.1 1:58.53 httpd
7996 apache 20 0 250m 59m 5476 S 1.3 0.2 1:37.37 httpd
10 root 20 0 0 0 0 S 0.3 0.0 0:09.72 rcu_sched
7714 apache 20 0 265m 73m 4972 S 0.3 0.2 1:34.53 httpd
7905 named 20 0 669m 24m 3020 S 0.3 0.1 0:02.01 named
7999 apache 20 0 232m 40m 4968 S 0.3 0.1 1:17.67 httpd
20865 root 20 0 0 0 0 S 0.3 0.0 0:01.05 kworker/2:2
21491 root 20 0 15212 1308 852 S 0.3 0.0 0:01.38 top
23810 root 20 0 15212 1340 852 R 0.3 0.0 0:00.07 top
1 root 20 0 19404 1568 1268 S 0.0 0.0 0:00.58 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
свободный м
[root@ns4008353 ~]# free -m
total used free shared buffers cached
Mem: 32070 21897 10173 0 424 16955
-/+ buffers/cache: 4516 27553
Swap: 1025 0 1025
как вы думаете, это причина медленной реакции? есть ли комментарий, чтобы получить дополнительную информацию о том, что использует память?
у меня есть выделенный сервер:
Processor Name Intel(R) Xeon(R) CPU E3-1245 V2 @ 3.40GHz
Vendor ID GenuineIntel
Processor Speed (MHz) 1600.000
Total Memory 32840004 kB
Free Memory 10416752 kB
Total Swap Memory 1050616 kB
Free Swap Memory 1050616 kB
System Uptime 0 Days, 2 Hours and 22 Minutes
Apache 2.2.24 Running
DirectAdmin 1.43.0 Running
Exim 4.76 Running
MySQL 5.5.31 Running
Named 9.8.2rc1 Running
ProFTPd 1.3.4d Running
sshd Running
dovecot 2.2.4 Running
после просмотра файлов журнала я видел много этой ошибки
[Sat Sep 28 00:15:41 2013] [error] [client 66.249.73.162] Request exceeded the limit of 10 internal redirects due to probable co
nfiguration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace
Обычно это файл .htaccess, который повторно вводит измененный URI запроса, проверьте это, а также вы можете сбросить свои файлы конфигурации
Используемая память невелика, вам следует пропустить эту часть при устранении неполадок и попробовать то, что предлагает Inforfinity.
Ядро Linux имеет тенденцию занимать доступную неиспользуемую память для кэширования диска. Это делает систему быстрее. Если какому-либо приложению требуется память, оно возьмет ее из самого кеша. Так что в основном у вас не мало памяти. Рассмотрим вывод команды free -m
- / + буферы / кеш: 4516 27553
Используется 4516 МБ фактической оперативной памяти, 27553 - фактическая свободная память. Кэшируется около 17 ГБ.
Попробуйте провести тестирование производительности на своем веб-сервере. Используйте httperf для тестирования.
httperf --server yoursite.com --port 80 --num-conns 100 --rate 10
Описание вашей проблемы - медленные HTTP-запросы, но, как вы показали, ЦП и память не исчерпаны. Итак, пара вещей, которые нужно проверить:
LogFormat "% h% l% u% t \"% r \ "%> s% b" общий
И добавьте% D после% b (но внутри конечной кавычки). Видеть http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
Затем перезагрузите / перезапустите httpd, и ваш файл access_log должен теперь показывать время, которое занимает каждый ответ в микросекундах, в последнем столбце. Подтвердите, что они медленные. Может быть, только некоторые типы запросов медленные? Я заметил, что MySQL использует некоторый процессор, так что, возможно, один тип запроса попадает в медленный запрос к базе данных?
Если приведенные выше ответы действительно медленные и нет очевидного шаблона (например, определенных страниц), вам нужно определить, где они медленные. Время% D включает в себя все, от чтения запроса от клиента, обслуживания файла (который включает любой код приложения или запросы к базе данных) и записи ответа, поэтому оно просто сообщает вам о замедлении, не обязательно где. Итак, теперь вам нужно определить, где замедление. Я бы сначала проверил приложение. Также проверьте журнал медленной работы MySQL (включите его, если он не включен).
Проверьте свой error_log - возможно, есть таймауты приложений или другие ошибки.
Если вам не повезло, вы также можете запустить pstack ${PID}
периодически, чтобы попытаться понять, что делает httpd.
Наконец, вы можете использовать tcpdump и что-то вроде Wireshark, чтобы определить, где происходит замедление, хотя это будет немного утомительно. Думаю, есть еще модуль httpd, который разбивает время в запросе, но я не могу его сейчас найти и не вижу в списке встроенных модулей.