Тюнинг веб сервера, вопрос?

12
C
На сайте с 19.03.2012
Offline
35
3281

Добрый день, братья по духу, у меня есть небольшая проблема, думаю где-то допустил я ошибку.

Веб сервер мой мало посещаемый, но настраиваю я его про запас так сказать )))

Суть проблемы: захожу на сайт, проходит все гладко, быстро, тык тык по сайту, все гуд, но в определенный моменты происходят зависоны на несколько секунд на некоторых страницах, после чего эта страница открывается нормально и снова можно тыкать по сайту и возвращаться на эту страницу и все гуд.

Что сделал: поставил ssd диск, настроил апач

StartServers 50

MinSpareServers 50

MaxSpareServers 110

MaxClients 100

мускул

open_files_limit = 5000

max_connections = 10000

key_buffer_size =16M

max_allowed_packet = 256M

тюненг ядра типо

echo 2194300 > /proc/sys/net/netfilter/nf_conntrack_max

и все такое

не помогло, у меня закрыты для веб сервера новые исходящие соединения, в целях безопасности, сами понимаете, грешу что в php где-то есть код, который ломиться куда-то на внешку, но не получает доступа, от чего по тайм ауту и висит, другое дело почему проблема тогда не постоянная?

Подскажите сайты или настройки по тюненгу веб сервера под высоконагруженные сервера, может поможет.

система ubuntu 15.04, памяти 8 гига, 4 ядреный проц

утилита от апач показывает:

root@ubuntu:~# ab -n 1000 -c 100 "мой сайт"
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking мой сайт (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software: Apache
Server Hostname: мой сайт
Server Port: 80

Document Path: /
Document Length: 54034 bytes

Concurrency Level: 100
Time taken for tests: 35.508 seconds
Complete requests: 1000
Failed requests: 10
(Connect: 0, Receive: 0, Length: 10, Exceptions: 0)
Total transferred: 54371230 bytes
HTML transferred: 54034230 bytes
Requests per second: 28.16 [#/sec] (mean)
Time per request: 3550.805 [ms] (mean)
Time per request: 35.508 [ms] (mean, across all concurrent requests)
Transfer rate: 1495.35 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 1.7 0 9
Processing: 1191 3455 746.2 3490 5448
Waiting: 1191 3450 746.0 3483 5448
Total: 1196 3456 745.8 3491 5448

Percentage of the requests served within a certain time (ms)
50% 3491
66% 3719
75% 4084
80% 4191
90% 4373
95% 4536
98% 4854
99% 5183
100% 5448 (longest request)
Andron_buton
На сайте с 19.07.2007
Offline
270
#1
coolmans:
max_connections = 10000
max_allowed_packet = 256M

Зачем?

Лучше б это увеличить:

coolmans:
key_buffer_size =16M

apt-get update && apt-get install -y mysqltuner
mysqltuner

Дальше смотрим что оно предлагает увеличить и уменьшить, делаем правки в my.cnf и рестарт мускула.

Количество конектов 100 за глаза хватит, лучше поувеличивать размер всяких кэшей.

В апаче тюнитьниче не надо, разве что уменьшить число

StartServers 50 до стандартных 15, если в ерор логе нет матюков на превышен лимит воркеров, то и MaxClients 100 оставить как есть.

C
На сайте с 19.03.2012
Offline
35
#2
Andron_buton:

Лучше б это увеличить:

 >>  MySQLTuner 1.3.0 - Major Hayden <major@mhtx.net>
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering
[OK] Logged in using credentials from debian maintenance account.
[OK] Currently running supported MySQL version 5.6.23-1~exp1~ubuntu5
[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MRG_MYISAM
[--] Data in MyISAM tables: 32M (Tables: 242)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 52)
[--] Data in InnoDB tables: 3M (Tables: 29)
[!!] Total fragmented tables: 46

-------- Security Recommendations -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 1h 55m 15s (5K q [0.842 qps], 566 conn, TX: 114M, RX: 1M)
[--] Reads / Writes: 86% / 14%
[--] Total buffers: 192.0M global + 1.1M per thread (10000 max threads)
[!!] Allocating > 2GB RAM on 32-bit systems can cause system instability
[!!] Maximum possible memory usage: 10.6G (133% of installed RAM)
[OK] Slow queries: 0% (0/5K)
[OK] Highest usage of available connections: 0% (5/10000)
[OK] Key buffer size / total MyISAM indexes: 16.0M/10.8M
[OK] Key buffer hit rate: 99.2% (59K cached / 502 reads)
[!!] Query cache is disabled
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 360 sorts)
[!!] Joins performed without indexes: 41
[OK] Temporary tables created on disk: 5% (17 on disk / 297 total)
[OK] Thread cache hit rate: 99% (5 created / 566 connections)
[OK] Table cache hit rate: 92% (261 open / 281 opened)
[OK] Open file limit used: 0% (353/65K)
[OK] Table locks acquired immediately: 100% (6K immediate / 6K locks)
[OK] InnoDB buffer pool / data size: 128.0M/3.8M
[OK] InnoDB log waits: 0
-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Adjust your join queries to always utilize indexes
Variables to adjust:
*** MySQL's maximum memory usage is dangerously high ***
*** Add RAM before increasing MySQL buffer variables ***
query_cache_type (=1)
join_buffer_size (> 256.0K, or always use indexes with joins)

вроде все норм, но некоторые параметры мне не понятны, что увеличить или уменьшить, я запарился менять настройки одно изменишь в другом месте вылезает проблема

K5
На сайте с 21.07.2010
Offline
209
#3
вроде все норм

эта строчка вас не смущает

[!!] Maximum possible memory usage: 10.6G (133% of installed RAM)

???

P.S. лучше найти админа на пару часов, когда не знаете что и для чего.

либо читайте официальные мануалы.

аська 45два48499два записки на работе (http://memoryhigh.ru) помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ (/ru/forum/836248) и ТАМ (http://www.maultalk.com/topic140187.html) !!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
C
На сайте с 19.03.2012
Offline
35
#4
kgtu5:
эта строчка вас не смущает

???

P.S. лучше найти админа на пару часов, когда не знаете что и для чего.
либо читайте официальные мануалы.

я и есть админ, который занимается оптимизацией своего сайта, я вижу проблемы, я не могу пока понять, что менять что бы их не было, все рекомендации я выполнил, но !! остались.

DV
На сайте с 01.05.2010
Offline
644
#5

Читайте мануалы. Вам даже подсказали некоторые приёмы, хотя мануалами можно было и ограничиться.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
N
На сайте с 06.05.2007
Offline
419
#6

coolmans, и все же лучше найти админа. Он посмотрит, конечно же ничего не сделает, возьмет денег, но вы все равно будете довольны. Потому что проблем то никаких у вас нет.

Кнопка вызова админа ()
C
На сайте с 19.03.2012
Offline
35
#7

если перезапускаешь mysql пишет всякие рекомендации, если немного погоняешь его, то получается вот так:

 >>  MySQLTuner 1.3.0 - Major Hayden <major@mhtx.net>
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering
[OK] Logged in using credentials from debian maintenance account.
[OK] Currently running supported MySQL version 5.6.23-1~exp1~ubuntu5
[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MRG_MYISAM
[--] Data in MyISAM tables: 29M (Tables: 242)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 52)
[--] Data in InnoDB tables: 4M (Tables: 29)
[!!] Total fragmented tables: 1

-------- Security Recommendations -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 1m 17s (22K q [288.312 qps], 2K conn, TX: 800M, RX: 3M)
[--] Reads / Writes: 24% / 76%
[--] Total buffers: 290.0M global + 40.2M per thread (214 max threads)
[!!] Allocating > 2GB RAM on 32-bit systems can cause system instability
[!!] Maximum possible memory usage: 8.7G (109% of installed RAM)
[OK] Slow queries: 0% (0/22K)
[OK] Highest usage of available connections: 31% (67/214)
[OK] Key buffer size / total MyISAM indexes: 128.0M/9.8M
[OK] Key buffer hit rate: 99.9% (71K cached / 51 reads)
[OK] Query cache efficiency: 93.5% (10K cached / 11K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 7 sorts)
[OK] Temporary tables created on disk: 0% (0 on disk / 21 total)
[OK] Thread cache hit rate: 95% (96 created / 2K connections)
[OK] Table cache hit rate: 98% (355 open / 362 opened)
[OK] Open file limit used: 0% (535/65K)
[OK] Table locks acquired immediately: 99% (3K immediate / 3K locks)
[OK] InnoDB buffer pool / data size: 128.0M/4.8M
[OK] InnoDB log waits: 0
-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate

[mysqld]
character-set-server = utf8
collation_server = utf8_general_ci
init-connect = "SET NAMES utf8"
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
max_connections = 214
thread_cache_size = 8
thread_concurrency = 8
key_buffer_size = 128M
max_heap_table_size = 16M
join_buffer_size = 16M
sort_buffer_size = 8M
read_buffer_size = 8M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 8M
query_cache_limit = 8M
query_cache_size = 16M
table_open_cache = 128
max_allowed_packet = 1M
query_cache_type = 1
query_cache_limit = 2M
query_cache_size = 2M
table_open_cache = 512

ну и на том спасибо, подвисоны остались (((( наверное все-таки не мускул.

K5
На сайте с 21.07.2010
Offline
209
#8

query_cache_limit = 8M
query_cache_size = 16M
table_open_cache = 128
.....
query_cache_limit = 2M
query_cache_size = 2M
table_open_cache = 512

торопитесь куда то что ли??? да и кеш запросов вообще не хотите использовать???

---------- Добавлено 11.04.2015 в 15:15 ----------

[!!] Maximum possible memory usage: 8.7G (109% of installed RAM)

по прежнему не напрягает???

---------- Добавлено 11.04.2015 в 15:17 ----------

зачем

max_connections = 214

если у вас в апаче

MaxClients 100

???

---------- Добавлено 11.04.2015 в 15:19 ----------

наверное все-таки не мускул

наверно все таки админа 🤪

C
На сайте с 19.03.2012
Offline
35
#9
kgtu5:

наверно все таки админа 🤪

Вот объясни мне, зачем для домашнего сервера и решения небольшой задачи, для получения дополнительных знаний, понимания и опыта, мне админ, если повторюсь, я сам админ(и работал админом когда-то) и все знакомые и родственники идут ко мне со своими вопросами проблемами?

Я описал проблему, высказал предположения и дал на мой взгляд необходимую информацию людям, которые возможно сталкивались с подобной проблемой и им не составит труда мне подсказать, как от нее избавиться.

kgtu5:

по прежнему не напрягает???

Меньше всего ))) это я буду решать в подледную очередь, поскольку есть файл подкачки на ссд диске, думаю этот параметр не смертелен, тем более сейчас система кушает не больше 2 гигов.

jpg 1.jpg
S
На сайте с 02.05.2014
Offline
61
#10
coolmans:
я сам админ(и работал админом когда-то)

Ну тогда Вы должны знать, что в таких ситуациях надо начинать с просмотра логов.

coolmans:
Я описал проблему, высказал предположения и дал на мой взгляд необходимую информацию людям,

Это Вам так кажется, Вы даже не приложили логи вебсервера и сервера баз данных (не забудьте включить логирование медленных запросов), а также забыли написать информацию о движке сайта и установленных плагинов.

А на явные косяки в конфигах, Вам любезно указали (основываясь на тех крохах, которые вы предоставили)

coolmans:
зачем для домашнего сервера и решения небольшой задачи

Если задачи небольшие, то зачем поступать так?

coolmans:
Веб сервер мой мало посещаемый, но настраиваю я его про запас так сказать )))
тюненг ядра типо
echo 2194300 > /proc/sys/net/netfilter/nf_conntrack_max
и все такое

Может Вы своим тюнингом и правкой дефолтных конфигов только хуже сделали?

Прежде чем, что-то сделать с настройками, подумайте, что именно вы делаете и чего хотите достичь.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий