Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Распределить нагрузку скриптов php
 
 автор: toproot   (17.01.2011 в 20:12)   письмо автору
 
 

Можно ли отдать предпочтение на работу одного скрипта и "второочередность" для другого?

Например чтоб одному скрипту уделялось больше ресурсов а другому меньше. Или что-то подобное. А то я замечаю когда мои скрипты висят полностью - phpMyAdmin например работает нормально.

Вообщем нужно чтоб index.php всегда работал быстро а download.php - как получится.

Спасибо!

  Ответить  
 
 автор: Shorr Kan   (18.01.2011 в 10:07)   письмо автору
 
   для: toproot   (17.01.2011 в 20:12)
 

Не путайте скорость работы сервера ("когда мои скрипты висят полностью - phpMyAdmin например работает нормально") и скорость работы конкретного скрипта ('index.php')
Условно говоря, если вы сделаете в index.php код, наподобие while(true) - index.php всегда будет висеть, хотя все остальные скрипты будут работать нормально... до тех пор, пока сервер не будет сильно нагружен. Если он будет нагружен - любой скрипт будет очень задумчив.

А вообще - да, есть параметр в командной строке для приоритета того или иного процесса, но в вашем случае это не годится.

Оптимизируйте работу index.php. Ищите в нем узкие места, которые заставляют скрипт подвисать. Исправляйте их.

  Ответить  
 
 автор: toproot   (18.01.2011 в 16:47)   письмо автору
 
   для: Shorr Kan   (18.01.2011 в 10:07)
 

Так у меня проблема скорее не в index.php а в download.php

Он у меня отдает файлы, т.к. прямую ссылку давать не хочу.
function downloadFile($filename, $name, $mimetype = 'application/octet-stream',$filesize = 0,$gfd) 
        { 
            if (!file_exists($filename)) 
                die('Файл не найден'); 
            $from = $to = 0; 
            $cr = null;
            if (isset($_SERVER['HTTP_RANGE'])) { 
                $range = substr($_SERVER['HTTP_RANGE'], strpos($_SERVER['HTTP_RANGE'], '=') + 1); 
                $from = strtok($range, '-'); 
                $to = strtok('/'); 
                if ($to > 0) 
                    ++$to; 
                if ($to) 
                    $to -= $from; 
                header('HTTP/1.1 206 Partial Content'); 
                $cr = 'Content-Range: bytes ' . $from . '-' . (($to) ? ($to . '/' . $to + 1) : 
                    $filesize); 
            } else 
                header('HTTP/1.1 200 Ok'); 
            $etag = md5($filename); 
            $etag = substr($etag, 0, 8) . '-' . substr($etag, 8, 7) . '-' . substr($etag, 15, 
                8); 
            header('ETag: "' . $etag . '"'); 
            header('Accept-Ranges: bytes'); 
            header('Content-Length: ' . ($filesize - $to + $from)); 
            if ($cr) 
                header($cr); 
            header('Connection: close'); 
            header('Content-Type: ' . $mimetype); 
            header('Last-Modified: ' . gmdate('r', filemtime($filename))); 
            $f = fopen($filename, 'r'); 
            header('Content-Disposition: attachment; filename="' . $name . '";'); 
            if ($from) 
                fseek($f, $from, SEEK_SET); 
            if (!isset($to) or empty($to)) { 
                $size = $filesize - $from; 
            } else { 
                $size = $to; 
            } 
            $downloaded = 0;
            $ruser = $_SESSION['registeruser'];
            while (!feof($f) and !connection_status() and ($downloaded < $size)) { 
                echo fread($f, 5120000); 
                $downloaded += 5120000; 
                ob_flush(); 
                flush(); 
            } 
            fclose($f);
             

... и.т.д.
С помощью такой функции он выдает файл.

Может как-то ее переделать, или PHP.ini подкорректировать?

Вобще думал разместить все на хостинге кроме файлов. а downl.php с файлами на сервере.. но не очень горю желанием.


Причем процессор не загружен и РАМ еще гиг свободен! ано глючит..

  Ответить  
 
 автор: Trianon   (18.01.2011 в 18:28)   письмо автору
 
   для: toproot   (18.01.2011 в 16:47)
 

имеются ошибки, как при проектировании, так и в логике.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования