Как улучшить производительность с нашей моделью изображений Rails и attachment_fu? - PullRequest
1 голос
/ 28 октября 2009

Я пытался улучшить производительность нашего приложения. Самая плохая область - это создание нашей модели Image, которая использует attachment_fu:

class Image < Attachment

  ...

  has_attachment :content_type => :image,
    :max_size => 100.megabytes,
    :storage => :file_system,
    :path_prefix => 'public/uploaded/images',
    :thumbnails => { :small => '75x75>', :medium => '160x120>', :large => '600x600>' },
    :s3_access => :authenticated_read

  validates_as_attachment

  after_create :move_to_s3

  ...

Мы уже переместили метод move_to_s3 в delayed_job.

Наша оценка apdex по этой транзакции ужасна (часто <0.5) и занимает от 1 до 2 секунд. </strong>

Как еще можно улучшить создание записей изображений (по скорости)?

Я могу обойтись без: маленького эскиза? Поможет ли это отбросить это?

Если это поможет, большинство из этих файлов - изображения с высоким разрешением. Влияет ли время загрузки на показатели, которые у меня есть? Это искажает отчеты?

Ответы [ 2 ]

1 голос
/ 28 октября 2009

Я бы сохранил изображение непосредственно на S3 , затем создал отложенное задание, чтобы загрузить его, изменить его размер и поместить эскизы обратно на S3.

Чтобы показать изображение при загрузке следующей страницы, просто создайте ссылку на большую версию и измените ее размер с помощью css.

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

0 голосов
/ 29 октября 2009

Вы можете использовать mod_porter , чтобы позволить веб-серверу обрабатывать загрузку вместо вашего приложения.

Это ничего не ускорит, но будет препятствовать блокировке одного из ваших серверов приложений, пока файл не будет загружен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...