mysql процессы забивают сервер

nkldn

Новичок
mysql процессы забивают сервер

мне скинули

Код:
12745965     sitename       localhost      sitename         1  Sleep
12745979     sitename       localhost      sitename         1  Sleep
12745883     sitename       localhost      sitename         4  Sleep
12745785     sitename       localhost      sitename         8  Sleep
12745457     sitename       localhost      sitename        20  Sleep
12744466     sitename       localhost      sitename        56  Sleep
12743338     sitename       localhost      sitename        96  Sleep
12742937     sitename       localhost      sitename       110  Sleep

вот твой сайт срет базу на серваке
у меня такой код в подключаемом connect.php


PHP:
<?php

$lnk = @mysql_connect('localhost', 'user', 'pass');

mysql_query("SET NAMES cp1251");
mysql_select_db('dbname',$lnk);
register_shutdown_function("mysql_close");

?>

объясните пожалуйста из-за чего могут висеть эти процессы?
 

Крот

Новичок
А какие запросы выполняет твой скрипт?
Или ты только коннектишься к БД и ничего больше не делаешь?
 

nkldn

Новичок
Крот
этот файл подключается другими скриптами которые и делают запросы
 

Фанат

oncle terrible
Команда форума
register_shutdown_function("mysql_close"); - на редкость дурацкая строка.

висеть пустые могут из-за того, что другие скрипты могут коннектить другой connect.php, в котором написано @mysql_pconnect

еще могут висеть оттого, что другие скрипты очень долго исполняются

в консоли смотрим show processlist
 

nkldn

Новичок
*****
в котором написано @mysql_pconnect

на сайте нигде в коде нет mysql_pconnect

-~{}~ 03.11.09 17:44:

*****
а может быть это из-за скрипта на perl который работает отдельным процессом и обращается к базе данных?
 

Фанат

oncle terrible
Команда форума
а может быть это из-за скрипта на perl который работает отдельным процессом и обращается к базе данных
 

nkldn

Новичок
*****
вот show processlist мне скинули новый

Код:
12805699    erofox       localhost     erofox         0  Query INSERT INTO `twte
12807769    erofox       localhost    erofox2         0  Query SELECT * FROM mor
12807959    erofox       localhost    erofox3         0  Query SELECT COUNT(*) F
12807979     nomer       localhost      nomer         0  Query select count(PHON
12807989      mult       localhost       mult         0  Sleep
12807990      root       localhost      mysql         0  Query show full process
12807881 thebroadc       localhost mp3_thebro         4  Query SELECT DISTINCT a
12807758     mp3la       localhost      mp3la         9  Sleep
12807158     mp3la       localhost      mp3la        32  Sleep
12806535     mp3la       localhost      mp3la        56  Sleep
12806411     mp3la       localhost      mp3la        61  Sleep
12800983     mp3la       localhost      mp3la       267  Sleep
 

Alexandre

PHPПенсионер
смотри что за юзер mp3la?
его процессы не закрывают коннекцию
 

nkldn

Новичок
Alexandre
mp3la это сайтик который я сейчас делаю

в первом посте скриптик коннекта который подключают другие скрипты которые работают с БД.

но помимо этого есть еще автономный скрипт на Perl который тоже работает с БД и запускается он тоже от юзера mp3la

вот ***** сказал что это скорее всего от этого скрипта Perl эти процессы висят
 

Фанат

oncle terrible
Команда форума
я?!
по-моему, это кто-то другой сказал. если мне глаза не изменяют.
и я там не вижу слов "скорее всего".
 

nkldn

Новичок
*****

) да , если точно то я это предположил, а вы в своём ответе процитировали моё предположение.

как я понял это было утверждение?

-~{}~ 04.11.09 15:32:

по крайней мере я не понимаю тогда из-за чего мой код может оставлять процессы висячими. у меня нигде нет mysql_pconnect

-~{}~ 04.11.09 15:34:

еще у меня дома стоит wamp

и register_shutdown_function("mysql_close"); выносит сервер
 

Фанат

oncle terrible
Команда форума
утверждение не может начинаться со слова "может".
со слова "может" может начинаться предположение.

что значит "выносит сервер"?
 

nkldn

Новичок
*****
тогда в чём логика вашего ответа? цитированием вы так же высказали своё предположение , надо понимать..

"выносит сервер" )

Apache HTTP Server - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.

Для получения дополнительных сведений об этой ошибке щёлкните здесь.

szAppName : httpd.exe szAppVer : 2.2.11.0 szModName : php_mysql.dll
szModVer : 5.3.0.0 offset : 00002072


это при обращении к http://127.0.0.1/connect.php

код - в первом сообщении

если закомментровать строчку

PHP:
//register_shutdown_function("mysql_close");
то всё ок
 

Фанат

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

в первую очередьдь надо выкинуть бессмысленную строчку с register_shutdown_function
если внимательно почитать документацию на mysql_close, там можно увидеть, что она И ТАК вызывается при завершении скрипта.
не надо пытаться быть святее папы римского. будь как все.
 

nkldn

Новичок
*****

читал.

а как отлаживать? и что может быть еще если не perl
 

Фанат

oncle terrible
Команда форума
твои скрипты, которые работают с базой.
или чьи-то еще, если сервер общий.
 

nkldn

Новичок
вы писали
>> еще могут висеть оттого, что другие скрипты очень долго исполняются

есть один запрос выполняется долго. может быть он...
 

Макс

Старожил PHPClub
nkldn
что делает перловый скрипт и как он запускается ?
cron ?
 

nkldn

Новичок
да, запускается каждые 15 минут.

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

Макс

Старожил PHPClub
что значит фраза "обрабатывает их" ?
выключи запуск из крона и подебаж скрипт
http://search.cpan.org/~timb/DBI/DBI.pm#DBI_TRACE
 
Сверху