1

Umbraco内のImageProcessorを使用してイメージのロード、サイズ変更、ロットについてはパフォーマンスが低下しています。現在使用してイメージとキャッシュされたイメージ(ImageProcessor)のためのUmbracoとAWS S3バケットの間のパフォーマンスが極端に遅い

  • Umbraco 7.4.3
  • AWSSDK.Core 3.3.11
  • AWSSDK.S3 3.3.5.11
  • 画像プロセッサ2.5.3
  • ImageProcessor.Web 4.8。 3
  • Umbraco.Storage.S3 1.0.23(これ以上メンテナンスされません)

CloudFrontは画像をキャッシュしません(カスタム原点は私が理解したものからキャッシュされません)ので、サイトが転倒するのを避けるため、CloudFrontとUmbracoサーバの間にNGINXサーバがあります。標準のAWSロードバランサ)。

2 x c4.xlargeのインスタンスでは、イメージの処理に即座に対応できないと考えるのは難しいです。 Log snippet

私はちょうどそれはどんな違いを生むだろうかどうかを確認するためにAWSのアクセスキーの新しいペアを置くが、悲しいことに、まだ遅い:

ことの一つは、私はそれが時々起こる以下である気づきました。バックオフィスでも、コンテンツタブとメディアタブの両方で画像のプレビューを読み込むまでに時間がかかります。

設定を賢明にするために、私はインターネット上で見つけたもの(FileSystemProvidersとImageProcessorの設定)に対して3倍のチェックをしました。

画像プロセッサキャッシュの設定:

<?xml version="1.0" encoding="utf-8" ?> 
<!-- For more information on using transformations 
    see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. --> 
<caching xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" currentCache="AmazonS3Cache" xdt:Transform="Replace"> 
    <caches> 
    <cache name="AmazonS3Cache" type="formula_e.web.cms.Core.ImageProcessor.AmazonS3Cache, formula-e.web.cms" maxDays="365" xdt:Locator="Match(name)" xdt:Transform="Replace"> 
     <settings> 
     <setting key="AwsAccessKey" value="XXXXXXX" /> 
     <setting key="AwsSecretKey" value="XXXXXXX" /> 
     <setting key="AwsBucketName" value="XXXXXXX" /> 
     <setting key="AwsEndpoint" value="http://XXXXXXX.s3.amazonaws.com/" /> 
     <setting key="AwsBucketFolder" value="cache-live" /> 
     <setting key="CachedCDNRoot" value="http://XXXXXXX.cloudfront.net" /> 
     <setting key="StreamCachedImage" value="true" /> 
     </settings> 
    </cache> 
    </caches> 
</caching> 

画像プロセッサのセキュリティ設定:

<?xml version="1.0" encoding="utf-8" ?> 
<!-- For more information on using transformations 
    see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. --> 
<security xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <services xdt:Transform="Replace"> 
    <service prefix="media/" name="CloudImageService" type="ImageProcessor.Web.Services.CloudImageService, ImageProcessor.Web"> 
     <settings> 
     <setting key="MaxBytes" value="41943040"/> 
     <setting key="Timeout" value="30000"/> 
     <setting key="Host" value="http://XXXXXXX.s3.amazonaws.com/media/"/> 
     </settings> 
    </service> 
    </services> 
</security> 

Filesytemproviders設定:

<?xml version="1.0" encoding="utf-8" ?> 
<!-- For more information on using transformations 
    see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. --> 
<FileSystemProviders xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <Provider alias="media" type="Umbraco.Storage.S3.BucketFileSystem, Umbraco.Storage.S3" xdt:Locator="Match(alias)" xdt:Transform="Replace"> 
    <Parameters> 
     <!-- S3 Bucket Name --> 
     <add key="bucketName" value="XXXXXXX" /> 
     <!-- S3 Bucket Hostname - Used for storage in umbraco's database (Should be blank when using Virtual File Provider) --> 
     <add key="bucketHostName" value="" /> 
     <!-- S3 Object Key Prefix - What should we prefix keys with? --> 
     <add key="bucketKeyPrefix" value="media" /> 
     <!-- AWS Region Endpoint (us-east-1/us-west-1/ap-southeast-2) Important to get right otherwise all API requests will return a 30x response --> 
     <add key="region" value="eu-west-1" /> 
    </Parameters> 
    </Provider> 
</FileSystemProviders> 

がどのように私は問題が何であるかを見つけることについて行くのですか?

+0

umbracoをCDNに公開する方法に関するドキュメントを確認しましたか? – mootmoot

+0

@mootmootリンクを共有していますか?私はこのプロジェクトを継承しましたので、私は可能な限りセットアップの大部分を把握しようとしていました。ありがとう – MrVentzi

+0

google 'umbraco cache AWS CDN'をお願いします。 CDNキャッシュの設定は簡単ではありません。 – mootmoot

答えて

1

同様の問題を抱えている人は、キャッシュ設定ファイル内に問題があり、同時に複数のイメージが要求されたときにS3全体のキャッシュが原因でシステム全体が非常に遅くなるローカルではなくむしろ。

キャッシュはcurrentCache = "AmazonS3Cache"に設定されていましたが、これは公式でさえない(JamesSouthによって確認された)。

私がcurrentCache = "DiskCache"をプロダクションマシンに置くと、すべてが正常に動作していました。

関連する問題