-
PHP для идиотов
→ Профилирование живой системы • Март 25, 2012, 10:56 д.п.
Нет, мне нужен именно профайлинг. Причем нужно именно на живой системе определять узкие места MySQL (CPU и RAM - вторично, т.к. везде где есть ISP Manager, есть такая статистика). Дебаггер и профайлер в IDE у меня есть. Грубо говоря, Faster'у станет понятно, отчего его сервак валится.
Нет, мне нужен именно профайлинг. Причем нужно именно на живой системе определять узкие места MySQL (CPU и RAM - вторично, т.к. везде где есть ISP Manager, есть такая статистика). Дебаггер и профайлер в IDE у меня есть.
Грубо говоря, Faster'у станет понятно, отчего его сервак валится.
-
PHP для идиотов
→ Профилирование живой системы • Март 25, 2012, 5:51 д.п.
-
PHP для идиотов
→ Профилирование живой системы • Март 25, 2012, 12:23 д.п.
Всем добрый день.Итак, я делаю сейчас штанишки для веб-проекта. Такие, чтобы любому подошли. Которые несильно загружая сервер будут записывать данные для профилирования. И, когда сервер сядет в лужу от наплыва посетителей, его попка будет почти сухой: мы будем знать где в живой системе узкие мест...
Всем добрый день.
Итак, я делаю сейчас штанишки для веб-проекта. Такие, чтобы любому подошли. Которые несильно загружая сервер будут записывать данные для профилирования. И, когда сервер сядет в лужу от наплыва посетителей, его попка будет почти сухой: мы будем знать где в живой системе узкие места. Есть несколько проблемок.
Я логирую время загрузки страниц и использования mysql. Cron постоянно отслеживает среднее время использования Mysql, чтобы в случае его увеличения включить профилирование медленных запросов SET profiling=1 на тяжелых страницах, которые больше всего загружают сервер. Вопрос: я прав, предполагая, что увеличение среднего времени Mysql означает превышение возможностей сервера? Таким образом я хочу отслеживать I/O.
Стоит ли отслеживать CPU? Вот функция загруженности процессора,
отсюда. Под виндой, как я понял, выдает процент загруженности процессора, а под Linux количество процессов в очереди стека.
function get_server_load() {
if (stristr(PHP_OS, 'win')) {
$wmi = new COM("Winmgmts://");
$server = $wmi->execquery("SELECT LoadPercentage FROM Win32_Processor");
$cpu_num = 0;
$load_total = 0;
foreach($server as $cpu){
$cpu_num++;
$load_total += $cpu->loadpercentage;
}
$load = round($load_total/$cpu_num);
} else {
$sys_load = sys_getloadavg();
$load = $sys_load[0];
}
return (int) $load;
}
Как отслеживать процент загруженности оперативки, не нашел.
-
PHP для идиотов
→ Кодировка говорит я нуб. • Янв. 27, 2012, 12:57 п.п.
-
PHP для идиотов
→ Кодировка говорит я нуб. • Янв. 27, 2012, 12:37 п.п.
-
PHP для идиотов
→ Кодировка говорит я нуб. • Янв. 27, 2012, 12:26 п.п.
Убился всмерть с этими кодировками. Вроде шарю, а на деле херня.Короче есть база на серваке, кодировка таблицы utf-8, collation тоже utf-8, но при просмотре таблицы вот такие поля:ЖенÑÐºÐ°Ñ Ñ„ÑƒÑ‚Ð±Ð¾Ð»ÐºÐ° камуфлÑÐСтранно, что при выводе на сайте все ОК. Ну ладно, экспортирую это дел...
Убился всмерть с этими кодировками. Вроде шарю, а на деле херня.
Короче есть база на серваке, кодировка таблицы utf-8, collation тоже utf-8, но при просмотре таблицы вот такие поля:
ЖенÑÐºÐ°Ñ Ñ„ÑƒÑ‚Ð±Ð¾Ð»ÐºÐ° камуфлÑÐ
Странно, что при выводе на сайте все ОК.
Ну ладно, экспортирую это дело в файл, заливаю на локальный сервак (все кодировки тоже в норме) - ну а на выходе, понятно, еботень, - работать с ней нема.
-
PHP для идиотов
→ Обработка ошибок в PDO • Июль 19, 2011, 4:02 д.п.
-
PHP для идиотов
→ Сессии, UTF BOM, редакторы кода • Апрель 26, 2011, 9:01 п.п.
-
PHP для идиотов
→ Независимость модуля • Апрель 26, 2011, 10:01 д.п.
Мужикииии) Я нарвался на большую проблему. Короче встраивается поисковой модуль в cms wordpress. И там очевидно перекрывается что-то, вобщем некоторые функции cms не работают. Вся система у меня не в ОО виде, а в процедурном(слишком плохо разбирался в ООП на момент написания). Скрипт который инк...
Мужикииии) Я нарвался на большую проблему. Короче встраивается поисковой модуль в cms wordpress. И там очевидно перекрывается что-то, вобщем некоторые функции cms не работают. Вся система у меня не в ОО виде, а в процедурном(слишком плохо разбирался в ООП на момент написания). Скрипт который инклудится в cms и отвечает за подгрузку контента, даже переписал вот так(не обращаем внимание на говнокодовость):
class Search_module_cms
{
private $path_to_root;
private $query;
function __construct ($query) {
$this->path_to_root = $_SERVER['DOCUMENT_ROOT'];
$this->query = $query;
$this->process_search();
}
function process_search () {
include_once("$this->path_to_root/search/includes/search_func.php"); /* Это функции поиска со всей приблудой, они и конфликтуют, там 3 тыс. строк говнокода черт ногу сломит */
if (empty($this->query)) {
$this->query = htmlspecialchars(trim($_GET['query']));
}
echo "<div id=\"search_cms\">";
$s_search_result = Search_them ($this->query);
$s_query_result = $s_search_result[0];
$s_page_results = $s_search_result[1];
Show_them_thebest_cms($s_query_result,$this->query,$s_page_results);
echo "</div>";
}
}
$show = new Search_module_cms($s_query_cms);
Как можно внедрить код, но так, чтобы он не конфликтовал? iframe не подходит - неизвестна заранее высота контента
-
PHP для идиотов
→ Сессии, UTF BOM, редакторы кода • Апрель 26, 2011, 8:18 д.п.
-
PHP для идиотов
→ file_get_contents глючит при парсинге • Апрель 6, 2011, 7:27 д.п.
-
PHP для идиотов
→ file_get_contents глючит при парсинге • Апрель 6, 2011, 4:39 д.п.
-
PHP для идиотов
→ file_get_contents глючит при парсинге • Апрель 6, 2011, 4:20 д.п.
-
PHP для идиотов
→ Замедление SELECT после OPTIMIZE TABLE большой таблицы • Март 25, 2011, 6:08 д.п.
Использование Денвера новичками продиктовано теми же причинами, что и популярность PHP в web разработке. Низкий порог входа (по уровню интеллекта).Очень часто профи клеймят тех новичков, которые используют Денвер ("Ставь Apach и мускул сам, и настраивай так как тебе нужно, прочитав мануал! И...
Использование Денвера новичками продиктовано теми же причинами, что и популярность PHP в web разработке. Низкий порог входа (по уровню интеллекта).
Очень часто профи клеймят тех новичков, которые используют Денвер ("Ставь Apach и мускул сам, и настраивай так как тебе нужно, прочитав мануал! И тогда не будешь тут глупые вопросы насчет 'у меня крокозябы на страничке вылезают - что делать?' ").
И это ошибочно. Низкий порог входа дает возможность очень многим попробовать, чтобы затем решить нужно ли это им или нет. Те, кому нужно пойдут читать мануалы.
-
PHP для идиотов
→ Замедление SELECT после OPTIMIZE TABLE большой таблицы • Март 24, 2011, 5:10 д.п.
-
PHP для идиотов
→ Замедление SELECT после OPTIMIZE TABLE большой таблицы • Март 24, 2011, 3:42 д.п.
-
PHP для идиотов
→ Замедление SELECT после OPTIMIZE TABLE большой таблицы • Март 23, 2011, 10:12 п.п.
-
PHP для идиотов
→ Замедление SELECT после OPTIMIZE TABLE большой таблицы • Март 23, 2011, 11:41 д.п.
CREATE TABLE `ctrtype_not_text_5` (`pr_id` int(10) unsigned NOT NULL auto_increment,`id` int(10) unsigned NOT NULL,`query_id` int(10) unsigned NOT NULL,`clickcount` smallint(5) unsigned NOT NULL default '0',`shows` smallint(5) unsigned NOT NULL default '0',`ctr` float NOT NULL def...
CREATE TABLE `ctrtype_not_text_5` (
`pr_id` int(10) unsigned NOT NULL auto_increment,
`id` int(10) unsigned NOT NULL,
`query_id` int(10) unsigned NOT NULL,
`clickcount` smallint(5) unsigned NOT NULL default '0',
`shows` smallint(5) unsigned NOT NULL default '0',
`ctr` float NOT NULL default '0',
PRIMARY KEY (`pr_id`),
KEY `i_id` (`id`),
KEY `i_query_id` (`query_id`),
KEY `i_ctr` (`ctr`)
ENGINE=MyISAM AUTO_INCREMENT=1566837 DEFAULT CHARSET=utf8
-
PHP для идиотов
→ Замедление SELECT после OPTIMIZE TABLE большой таблицы • Март 23, 2011, 8:30 д.п.
-
PHP для идиотов
→ Проектирование архитектуры сайта • Март 15, 2011, 11:27 д.п.