PDA

Просмотр полной версии : Выявление узких мест в системе


faust45
09.12.2006, 14:38
В общем проблема такая

Значит есть сервак под Линухом На нем крутятся два основных демона на Яве писаных
Ну и всяких стандартных прог типа ТомСат Apache MySql

На серваке соит система по сбору статистики с Web интерфейсом.

Статистика по Load (общая средняя загрузка системы)временами колеблится от 1.5 до 3(как мне обьяснил начальник ето не есть хорошо)

Статистика по простою проца говорит что 70% он нифга не делает.



Задача найти узкие места.


Во первых у меня вопрос
Может кто знает какая загрузка системы птимальна и как считается етот параметр load average
Во вторых
подскажите пожалуйста направления поиска решений проблемы
(я с подобным сталкиваюсь в первые)


Как я понял load average ето среднее число процессов, находящихся в состоянии выполнения (R) или в состоянии ожидания (D).

R - процесс выполняется или готов к выполнению (состояние готовности)
D - процесс в "беспробудном сне" - ожидает дискового ввода/вывода
T - процесс остановлен (stopped) или трассируется отладчиком
S - процесс в состоянии ожидания (sleeping)
Z - процесс-зобми

Тоесть проблема в том что несколько процессов ожидают освобождения ресурса "диск" или ещё какого ресурса(так я понял).

Подскажите пожалуйста как как вести раследование.
(как вычислить критические процессы и ресурсы)
или чего ещё

Ну в общем есле есть у кого какие соображения пожалуста пишите(Потаму что я в етом совсем глух).

Заранее благодарен.

И.Г.
09.12.2006, 14:48
такое чувство что это кто то из редакторов журналов компьютерной тематике решил упростить себе задачу запостив сюда письмо читателя, в надежде что на него ответят :-)

faust45
09.12.2006, 16:09
такое чувство что это кто то из редакторов журналов компьютерной тематике решил упростить себе задачу запостив сюда письмо читателя, в надежде что на него ответят :-)

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

TaNkist
09.12.2006, 17:25
Может кто знает какая загрузка системы птимальна и как считается етот параметр load average
Уровень загрузки системы в количестве процессов, ждущих своего исполнения за последние 5, 10, 15 минут. Насколько я знаю нагрузка 5-6 означает, что система нагружена на 100%/
Для выявления узких мест испорльзуй утилиту top (процесс наиболее активно грузящий систему отобразится сверху, и будет иметь большие значения в колонках TIME и CPU), а также утилиты из семейства *stat.

такое чувство что это кто то из редакторов журналов компьютерной тематике решил упростить себе задачу запостив сюда письмо читателя, в надежде что на него ответят :-)
Просто вопрос составлен грамотно

faust45
09.12.2006, 17:56
Спасибо вам за ответ TaNkist

Уровень загрузки системы в количестве процессов, ждущих своего исполнения за последние 5, 10, 15 минут

А ждут они свое исполнения в связи тем что некий ресурс занят(я так понимаю. может ошибаюсь незнаю)

Да я смотрел top и там есть жирный процесс по всем параметрам: java
Но как выяснит освобождения каких ресурсов ждут процесы(есле конечно в етом проблема).

Может чтото ещё нужно выяснить ???

dd_root
10.12.2006, 23:23
Спасибо вам за ответ TaNkist

А ждут они свое исполнения в связи тем что некий ресурс занят(я так понимаю. может ошибаюсь незнаю)

Да я смотрел top и там есть жирный процесс по всем параметрам: java
Но как выяснит освобождения каких ресурсов ждут процесы(есле конечно в етом проблема).

Может чтото ещё нужно выяснить ???

Понажимай когда сидишь в топе shift+m и shift+p.
Первое покажет загрузку по процу, второе по памяти.
Определи что у тебя выжираеться - проц или память и каким процессом.
Так же посмотри есть ли свободная оператива (не юзаеться ли своп виснта)
free- m (выведет данные по всей памяти что есть)
vmstat 5 выведет количестко ображений в винту каждые 5 секунд. там даже видно свопиться ли система или просто данные с винта тащит.
mysqladmin processlist покажет сколько подключений и к каким базам в данных момент происходит к мускулю.
Тут ищи операции "copy to tmp table" и "locked". Первая операция при большом количестве запросов на одну базу память выжирает, а вторая указывает либо на битость базы, либо на вложенные ображения к базе, что тоже может выжирать память.
Короче, почитай маны с описание этих команд чтобы понять что на что указывает. Советую попробовать ещё одну утилитку "atop" - если ты на машине ядро с её поддержкой скомпилишь, то в ней же можно будет посмотреть загрузку винта.

faust45
11.12.2006, 20:55
Спасибо вам буду пробывать

faust45
12.12.2006, 17:45
http://openlib.org.ua/ru/books/id/81/

То что нужно !!!