https://blog.superhosting.bg/optimal-usage-of-cpu-files-converting.html

Натиснете ENTER, за да видите резултатите или ESC за изход.

Файлове и Преконвертиране vs Ресурси и Оптимизация?!

2011-09-21
Съвети от support-a
преконвертиране на файлове, файл, процесорно време, CPU, оптимално изразходване, сървърни ресурси, оптимизация, оптимални, pdf, jpg, php, решение, bash скрипт, upload, php upload форма, upload форма

Съвети от support- aВ тази публикация на „Съвети от support- a“ ще намерите насоки и препоръки за оптимизация на вашите приложения, обединени в 2 точки. Роси от отдел Техническа поддръжка в нашата хостинг компания СуперХостинг.БГ споделя един интересен казус, за решаването на който е помогнала наскоро. Научете повече как да реализирате преконвертирене на файлове от един формат в друг, като съответно използвате най-оптимално сървърните ресурси на избраната хостинг услуга. Надяваме се информацията да помогне и за оптимизацията на ваши приложения. Разбира се, очакваме да споделите и допълните темата с още предложения от вашия опит… Какво друго решение ще препоръчате вие? 🙂

Клиент разполага в хостинг акаунта си при нас скрипт за конвертиране на файлове от PDF формат в JPG. Реализацията е с bash скрипт, чрез който става преконвертирането. Скриптът се стартира на няколко минути чрез cron задача.

Проблемът:

В скрипта не се прави проверка дали изображенията вече са преконвертирани. При малък обем от файлове, процесът минава бързо и видимо безпроблемно, но не и оптимално. При нарастване броя на файловете, преконвертирането, на практика, е непрекъснато и оказва сериозно влияние върху изразходваните сървърни ресурси (процесорно време – CPU). Това не зависи от избраното хостинг решениесподелен хостинг, виртуален сървър (VPS), нает сървър (dedicated server) или по-сложна хостинг реализация. При всеки случай са необходими оптимизации. Това ще спомогне за коректното и оптимално функциониране на процеса за конвертиране, без да има неблагоприятно влияние върху нормалната работа на други приложения.

Решението:

Съществуват много и различни начини за оптимизация. Практиката от комуникацията с клиентите показва, че най-удачните за тях решения са тези с максимално опростена реализация спрямо вече наличната функционалност. Това са решенията, които се реализират с възможно най-малко промени в начина на текущата работа на приложенията.

Предложените от наша страна решения:

1. Да се допише bash скрипта, като се включи проверка дали съществува вече определено изображение. Ако го има, то съответния PDF файл да не се преконвертира.

  • Потребителите, използващи сайта, по никакъв начин не променят начина на работа досега;
  • При качване на файл с име, което вече съществува, то няма да се преконвертира отново. Предложеният от нас скрипт може да се развие още като се добави и този случай. Това, обаче, изисква знанията и допълнителната работа на запознато лице, което да го реализира.
Bash скриптът – script.sh:

#!/bin/bash
ORIG_EXT=“pdf“
CONV_EXT=“jpg“
PDFDIR=“/home/cpanelusername/path/to/folder/pdf“
IMGDIR=“/home/cpanelusername/path/to/folder/img“
CONVERT=“/usr/bin/convert“
CONVERT_OPTIONS=“ -thumbnail x300 “

for i in find $PDFDIR -type f -iname "*.$ORIG_EXT"; do

FILE_TEMP=basename $i
FILE_NAME=${FILE_TEMP%.*}

if [ -d „$IMGDIR“ ]; then
ls -las $IMGDIR | grep -E „$FILE_NAME–[0-9]{1,3}.$CONV_EXT“
> /dev/null if [ $? -ne 0 ]; then
$CONVERT $CONVERT_OPTIONS $PDFDIR/$FILE_TEMP
$IMGDIR/$FILE_NAME–%d.$CONV_EXT fi
else
echo „Error: The Image Directory $IMGDIR doesn’t exist“
fi
done

* PDFDIR=“/home/cpanelusername/path/to/folder/pdf“ – директорията, в която се намират PDF файловете;
* IMGDIR=“/home/cpanelusername/path/to/folder/img“ – директорията, в която се намират JPG файловете;



2. Обработката на файлове да се извършва веднъж, например при качване на файла. Ние препоръчваме да се разположи upload форма, която при качването да преконвертира файловете в JPG формат.

  • Конвертирането се прави само веднъж при upload на файла. Това ще намали още повече изразходването на сървърни ресурси. Също, ще опрости начина на работа на приложението, без значение броя на файловете, които ще бъдат качени в акаунта;
  • Ще има промяна за потребителите, използващи и работещи ежедневно с приложението;
Възможна реализация е чрез извикване на същия bash скрипт, след upload на PDF файлoвете. Във формата се добавя следния ред:

exec(„/home/cpanelusername/path/to/script.sh“);

* /home/cpanelusername/path/to/script.sh – пълният път, който оказва къде е разположен bash скрипта;
За реализацията на upload формата има много насоки и примери и в Интернет пространството. От съображения за сигурност на вашите приложения, ви препоръчваме да използвате рестрикции (максимален размер, тип) за качваните файлове и защита на upload формата с парола.

Примерна Upload форма може да видите >>тук>>

* Редът за извикване на bash скрипта (exec(„/home/cpanelusername/path/to/script.sh“);) е закоментиран;
* dir => „pdf/“ – директорията, в която ще се качват PDF файловете (името трябва да съвпада с това в bash скрипта);
* name => „docs“ – име, което се вижда във формата;
* password => „docs“ – парола, която трябва да се въведе преди качване на файла;



Споделете като коментар под тази публикация случаи и от вашата практика, в които сте реализирали преконвертиране на файлове? Какво решение сте използвали? Ще се радваме да допълните темата с още полезни съвети, въпроси или интересна информация! 🙂

СуперХостинг.БГ

СуперХостинг.БГ е СуперЕкипът! Ежедневно всеки дава най-доброто от себе си, за да можете вие, клиентите на СуперХостинг.БГ, да сте номер едно. СуперСилата на СуперЕкипа е, че винаги е готов да ви даде точната информация, тази от която се нуждаете и за която питате.

500px270px
SuperHosting.BG

Препоръчани статии

Оставете коментар

3 Коментара към "Файлове и Преконвертиране vs Ресурси и Оптимизация?!"

Уведоми ме при
avatar
wpDiscuz