Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Skrypt do pobierania plików, Jest w porządku? A może jakaś optymalizacja?
Asig
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 26.10.2013

Ostrzeżenie: (0%)
-----


Witam!

Mam od dłuższego czasu problem z moim skryptem odpowiadającym za pobieranie plików z serwera, skrypt wygląda następująco:

  1. $szybkosc_pobierania['max'] = 316000;
  2. $plik = "$dir/$_POST[link]$rozszerzenie";
  3.  
  4. header("Content-type: application/force-download");
  5. header('Content-Disposition: attachment; filename="'.$fileinfo['nazwa'].'"');
  6. header("Content-Length: $fileinfo[rozmiar]");
  7.  
  8.  
  9. if($fp = @fopen($plik, 'rb')) {
  10. while((!feof($fp)) AND ($fileinfo['rozmiar'] > 8192)) {
  11. print(fread($fp, $szybkosc_pobierania['max']));
  12. flush();
  13. sleep(1);
  14. if(connection_status() != 0) { break; }
  15. }
  16. if($fileinfo['rozmiar'] < 8192) {
  17. readfile($plik);
  18. }
  19. @fclose($fp);
  20. }


Jeszcze dołączam php.ini:
http://wklejto.pl/202909

Oraz php-fpm.conf:
http://wklejto.pl/202910

Może w nich też coś trzeba zmienić.

Objawy - Po włączeniu serwera mam w sumie 5GB wolnego RAM'u na serwerze, z każdą minutą ramu ubywa jak picia które się non-stop pije, aż po kilkunastu minutach zostaje 0 wolnego RAM'u i serwer zaczyna jeść jeszcze SWAP.
Kilka dni diagnozowałem co może być nie tak, aż wpadłem na zakomentowanie skryptu od pobierania plików (na mojej stronie w jednym czasie ok. 400 osób pobiera pliki - ale najdziwniejsze w tym jest to, że gdy wyłączę apache i PHP5-FPM - RAM wcale nie wraca do normy, trzeba uruchomić ponownie cały serwer aby RAM się uwolnił - myślałem też, że to od przeciążenia łącza, ale dałem limit na pewien czas do testu 1kb/s i było to samo)

Prosiłbym więc o pomoc co może być tutaj nie tak, ewentualnie jakaś korekta/optymalizacja czy inne rozwiązanie.

Dziękuję z góry,
Pozdrawiam.

Ten post edytował Asig 2.06.2014, 00:28:35
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:12