From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <41926205.8010406@diyaorg.dp.ua> Date: Wed, 10 Nov 2004 20:46:29 +0200 From: Roman Savochenko User-Agent: Mozilla/5.0 (X11; U; Linux i686; uk-UA; rv:1.7.2) Gecko/20040808 X-Accept-Language: uk, en MIME-Version: 1.0 To: sisyphus@altlinux.ru X-Enigmail-Version: 0.85.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=KOI8-U; format=flowed Content-Transfer-Encoding: 8bit Subject: [sisyphus] =?koi8-u?b?89TSwc7O2cUgx9LBwszJINMgUHRocmVhZCAhISE=?= X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Nov 2004 18:46:33 -0000 Archived-At: List-Archive: Привет народ! Обнаружил тута странные грабли с потоками (pthread)! А суть в следующем. При открытии-закрытии потока наблюдается утечка памяти. Обнаружилось на серверной задаче которая использует потоки для распараллеливания обработки клиентских запросов. При этом, задача, клиентские потоки не держит открытыми, а создаёт при поступлении запроса. Т.е при каждом запросе клиента размер сервера в памяти увеличивается на 2Мб!!! (Контролирую по параметру VmSize в ksisguard) Хотя физически память не расходуется! Для проверки предположения я написал тестовую программку: //--------------------- test_threads.c ----------------------------- #include #include #include void *Task(void *prm) { printf("Start pthread: %d!!!\n",*(int *)prm); pthread_exit(NULL); } int main() { int cnt = 100; pthread_t pthr_tsk; pthread_attr_t pthr_attr; pthread_attr_init(&pthr_attr); pthread_attr_setschedpolicy(&pthr_attr,SCHED_OTHER); sleep(10); while(cnt--) { pthread_create(&pthr_tsk,&pthr_attr,Task,&cnt); sleep(1); } pthread_attr_destroy(&pthr_attr); sleep(10); return 0; } //--------------------- test_threads.c ----------------------------- Имеем значения параметра VmSize: - в начале теста: 2.424 Мб - в конце теста: 207.360 Мб!!! Круто для такой маленькой программки! :) Кстате это актуально не только для ALTLinux2.4 но и для древнего ASPLinux7.3! Это я чего-то не понял или это действительно грабли? С уважением Роман!