Автор Тема: apache + mysql  (Прочетена 4442 пъти)

bonbon

  • Напреднали
  • *****
  • Публикации: 112
  • Distribution: Debian
  • Window Manager: Gnome
    • Профил
    • WWW
apache + mysql
« -: Jan 13, 2009, 20:25 »
Здравейте.

Ако случайно съм сбъркал форума, моля за извинение, но не намерих друго подходящо место.

Имам машина с процесор Intel Quad Core Xeon X3210 / 8MB
RАМ 2GB

На него имам пуснати apache и mysql-server.

В конфига на apache-то съм задал следното:
.........
<IfModule mpm_prefork_module>
     StartServers      15
     MinSpareServers      20
     MaxSpareServers      25
     ServerLimit      200
     MaxClients         128
     MaxRequestsPerChild        64

</IfModule>

<IfModule mpm_worker_module>
     StartServers      15
     MinSpareServers      20
     MaxSpareServers      25
     ServerLimit      200
     MaxClients         128
     MaxRequestsPerChild        64
</IfModule>
..........

В конфига на mysql имам следното
.........
skip-locking
key_buffer       = 384M
max_allowed_packet    = 16M
table_cache       = 512
sort_buffer_size    = 2M
read_buffer_size    = 2M
read_rnd_buffer_size    = 8M
myisam_sort_buffer_size = 64M
thread_cache_size    = 8
query_cache_size    = 32M
query_cache_limit       = 2M
max_connection       = 300
wait_timeout            = 120
max_connect_errors      = 1000

skip-networking
skip-name-resolve
...................

Проблема ми е че сървъра е много  натоварен - apache-то прави над 500 000 импресий на ден.

Когато пусна mtop,  виждам че една заявка отнема над 10 секунди за отговор.

Ако обече вляза в mysql-сървъра през конзола, каквато и заяфка да напиша се изпълнява веднага.

Ако увелича броя на MaxClients над 128, ситуацията става още по-лоша, една заявка отнема над 40 секунди.

Като погледна използването на паметта- има свободни над 1G

Къде бъркам?

Благодаря на всички предварително.
Активен

teh

  • Напреднали
  • *****
  • Публикации: 56
    • Профил
Re: apache + mysql
« Отговор #1 -: Jan 13, 2009, 21:12 »
Кое му е натоварено на сървъра или гледаш само "load average", който сам по себе си не може да ти каже много. И знаеш ли какво точно го товари?

Няма как някой да ти даде еднозначен отговор или пък да го събере в едно изречение къде точно бъркаш. Трябва да си прегледаш всеки един слой от това което си натворил/наследил/купил/наел/whatever до момента и да оптимизираш всеки. Има голям шанс нещата да не са оптимизирани (изобщо или добре) и да подобриш от видимо до драстично работата на приложението което върви отгоре (дай боже да е едно), стига да знаеш какво правиш.

Но така в тъмното на малко хора им се стреля ... или ако им се стреля е за упражнение щото разбираш ли нямат достатъчно опит ;-)

Ако зададеш конкретен въпрос има шанс да получиш някакво напътствие ... но "Full LAMP stack optimization guide for dummies" никоя уважаваща себе си нинджа няма да седне да ти пише тук ;-)
Активен

ANTIADMIN

  • Напреднали
  • *****
  • Публикации: 660
  • Distribution: Windows XP Pro latest updates
  • ANTIADMIN
    • Профил
Re: apache + mysql
« Отговор #2 -: Jan 13, 2009, 21:49 »
Защо направо не му кажеш, че трябва да си плати на хора, за да му свършат работата. Нинджи минджи, корейски, китайски защити... смешки :D
Активен

teh

  • Напреднали
  • *****
  • Публикации: 56
    • Профил
Re: apache + mysql
« Отговор #3 -: Jan 13, 2009, 22:28 »
Точно това съм му казал, че ако иска всичко на готово - във форум не става. Ако предполагаш, че на дадено място има хора с еди какви си знания и се надяваш да измъкнеш от тях безплатно информация която ти нямаш то трябва да им представиш нещата така, че да не ги затруднява да ти дадат бърз отговор. Иначе е малко вероятно някой да се занимава.

Пуснал е част от mysql конфигурация и говори за дълги query-та. Като начало може да пусне slow query log-а и да каже  отделно, че за бавни query-та смята такива над секунда. След това с mysqldumpslow да ги прегледа и според каквито са резултатите ако може да ги оптимизира. Според зависи какви са таблиците за някои е по добре да се ползва myisam storage engine, за други е по-добре innodb (за отделните имаш различни опции за отдаване на хардуерни ресурси в mysql конфига). Ако не могат да се оптимизират то тогава според случая може да се сложи и някакъв caching layer м/у клиента и mysql сървъра.

Варианти много ... повече информация за mysql tuning: http://www.mysqlperformanceblog.com/
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: apache + mysql
« Отговор #4 -: Jan 13, 2009, 23:47 »
Дали е I/O bottleneck или много locking, не знам, по-вероятно второто. При всички положения, въвеждането на кеширащ tier (memcached да речем) ще помогне доста, лошото е че трябва да се пипа по приложението. Също така, пазенето на сесиите в база почва да става проблемно при такива условия, постоянно има select-и и insert-и, първите изчакват вторите да завършат, това става грозно при повечко заявки.

И въобще не е ясно къде ти е bottleneck-a, дали наистина е в базата или в application tier-a, въобще не става ясно процесорното време ли е проблемно, I/O-то ли е, какво е.

Load average какво да ти говори...4 ядра срещу 128 форкнати client процеса е нормално да покаже голяма стойност. Въобще не е релевантна тази стойност.
« Последна редакция: Jan 13, 2009, 23:49 от gat3way »
Активен

"Knowledge is power" - France is Bacon

bonbon

  • Напреднали
  • *****
  • Публикации: 112
  • Distribution: Debian
  • Window Manager: Gnome
    • Профил
    • WWW
Re: apache + mysql
« Отговор #5 -: Jan 14, 2009, 15:35 »
Благодаря за линка на teh.
Оправих се .
Активен

beginner

  • Напреднали
  • *****
  • Публикации: 35
    • Профил
Re: apache + mysql
« Отговор #6 -: Jan 14, 2009, 17:16 »
Благодаря за линка на teh.
Оправих се .

Може ли да споделиш в случая какво ти е помогнало?Може да е от ползва и на други? Благодаря ти.
Поздрави
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Apache+PHP+MySql
Настройка на програми
mozly 5 3427 Последна публикация Feb 22, 2004, 23:01
от mozly
Apache 2 + php + mysql, Много, много ниска пройзводителност
Настройка на програми
abadon 10 3669 Последна публикация Nov 20, 2009, 17:10
от gat3way
Как да кажа на инит скрипта да се стартира преди apache, mysql...?
Настройка на програми
Ali Nebi 5 1932 Последна публикация Jan 08, 2011, 13:51
от edmon
Mysql + apache
Идеи и мнения
ovdesko 22 6478 Последна публикация Jan 22, 2013, 13:35
от bop_bop_mara
Apache MySQL PHP
Сървъри
4096bits 0 2277 Последна публикация Sep 26, 2014, 19:07
от 4096bits