Tüm Ürünler
Search
Belge Merkezi

Function Compute:Örnek eşzamanlılığını yapılandırın

Son Güncelleme:Oct 08, 2026

Örnek eşzamanlılığı, her bir işlev örneğinin aynı anda işleyebileceği maksimum eşzamanlı istek sayısını belirtir. Function Compute örnek eşzamanlılığı özelliğini kullanarak trafik yoğunluğu sırasında kaynak kullanımını verimli bir şekilde yönetebilir ve soğuk başlatmaların etkisini azaltabilirsiniz. Bu sayede performansı artırabilir ve maliyetleri düşürebilirsiniz.

Arka plan bilgileri

Function Compute kaynak kullanımı, işlev örneklerinin çalıştırma süresi ve teknik özelliklerine göre faturalandırılır. Bu nedenle, bir işlev örneğinin çalıştırma süresi uzadıkça kaynak kullanım ücretleri de artar.

Örneğin, aynı anda üç isteğin işlenmesi gerekmektedir. Her bir isteğin işlenmesi 10 saniye sürer. Farklı eşzamanlılık ayarları için çalıştırma süreleri aşağıda açıklanmıştır:

  • Örnek eşzamanlılığı 1 olarak ayarlanırsa, her örnek aynı anda yalnızca bir isteği işleyebilir. Function Compute üç isteği işlemek üzere üç örnek oluşturur. Toplam çalıştırma süresi 30 saniyedir.

  • Örnek eşzamanlılığı 10 olarak ayarlanır ve bu eşzamanlılık bir örnek için saniye başına sorgu (QPS) limitini aşmazsa, her örnek aynı anda 10 isteği işleyebilir. Function Compute üç isteği işlemek için yalnızca bir örnek oluşturur. Toplam çalıştırma süresi 10 saniyedir.

Not
  • Bir işlev örneğinin eşzamanlılığı 1 olarak ayarlanırsa, her örnek aynı anda yalnızca bir isteği işleyebilir. Örnek eşzamanlılığını 1'den büyük bir değere ayarlarsanız, Function Compute mevcut örnekler tarafından eşzamanlı olarak işlenen istek sayısı belirtilen değeri aştığında yeni bir örnek oluşturur.

  • Örnek eşzamanlılığı genellikle örnek teknik özellikleri ile birlikte yapılandırılır. Bu sayede işlev performansını optimize edebilir ve maliyetleri azaltabilirsiniz.

Aşağıdaki figür, örnek eşzamanlılığının farklı değerlere ayarlanması durumunda istek yürütmedeki farkı göstermektedir.

image

Avantajlar

  • Çalıştırma süresini ve maliyetleri azaltır.

    Örneğin, çok sayıda G/Ç işlemi içeren işlevler için birden fazla isteği eşzamanlı olarak işlemek amacıyla tek bir örnek kullanabilirsiniz. Bu yaklaşım, istekleri işlemek için kullanılan örnek sayısını ve isteklerin toplam çalıştırma süresini azaltır.

  • Durum bilgilerini istekler arasında paylaşır.

    Birden fazla istek, tek bir örnekteki veritabanı bağlantı havuzunu paylaşarak istekler ile veritabanı arasındaki bağlantı sayısını en aza indirebilir.

  • Soğuk başlatma sıklığını azaltır.

    Tek bir örnek birden fazla isteği işleyebildiği için yeni örnek oluşturma ihtiyacı ve buna bağlı olarak soğuk başlatma sıklığı azalır.

  • Sanal özel cloud (VPC) içinde kullanılan IP adresi sayısını azaltır.

    İşlenecek istek sayısı sabit olduğunda, her bir örnek birden fazla isteği işleyebiliyorsa gerekli örnek sayısı azalır. Bu durum, VPC içinde kullanılan IP adresi sayısını düşürür.

    Önemli

    VPC'nizle ilişkili vSwitch'in en az iki kullanılabilir IP adresine sahip olduğundan emin olun. Aksi takdirde hizmetler kullanılamaz hale gelebilir ve bu durum istek hatalarına neden olabilir.

Senaryolar

Bir işlevin alt akış hizmetlerinden yanıt alması uzun zaman alıyorsa, tek bir örnekle birden fazla isteği eşzamanlı olarak işlemenizi öneririz. Çoğu durumda yanıt beklemek kaynak tüketmez. Tek bir örnek tarafından birden fazla isteğin eşzamanlı olarak işlenmesi maliyet tasarrufu sağlar ve uygulamaların yanıt verme süresini ile aktarım hızını iyileştirir.

Sınırlamalar

Öğe

Sınır

Katman tarafından desteklenen çalışma zamanı ortamı.

  • Özel çalışma zamanları

  • Özel görüntüler

Geçerli örnek eşzamanlılığı değeri

1 ila 200

X-Fc-Log-Result yanıt üstbilgisinde sağlanan işlev çalıştırma günlükleri

Örnek eşzamanlılığı 1'den büyük bir değere ayarlandığında desteklenmez

Yordam

Bir işlevi oluştururken işlevin örnek eşzamanlılığını belirtebilirsiniz.

Oluşturulmuş bir işlevin örnek eşzamanlılığını değiştirmek için işlev ayrıntıları sayfasına gidin ve Configurations sekmesini tıklayın. Ardından, Instance Configuration bölümünde Modify seçeneğine tıklayın. Açılan panelde örnek eşzamanlılığını değiştirin.

Etkiler

Bu bölümde, bir örneğin aynı anda yalnızca bir isteği işleyebildiği senaryo (Örnek Eşzamanlılığı = 1) ile bir örneğin aynı anda birden fazla isteği işleyebildiği senaryo (Örnek Eşzamanlılığı > 1) arasındaki farklar açıklanmaktadır.

Faturalama

Bir işlev örneğinin çalıştırma süresi ve maliyeti, örnek eşzamanlılığına bağlı olarak değişir. Daha fazla bilgi için bkz. Faturalamaya genel bakış.

  • Örnek Eşzamanlılığı = 1

    Bir örnek aynı anda yalnızca bir isteği işleyebilir. Faturalandırma süresi, ilk isteğin işlenmeye başlamasıyla başlar ve son isteğin işlenmesiyle sona erer.

    image
  • Örnek Eşzamanlılığı > 1

    Bir örnek aynı anda birden fazla isteği işleyebilir. İşlev çalıştırma süresini ölçmek için örneğin gerçek çalışma süresi kullanılır. Faturalandırma süresi, ilk isteğin işlenmeye başlamasıyla başlar ve son isteğin işlenmesiyle sona erer.

    image

Eşzamanlılık kısıtlaması

Varsayılan olarak, Function Compute bir bölgede en fazla 100 talep üzerine örnek destekler. Bir bölgede eşzamanlı olarak işlenebilecek maksimum istek sayısı aşağıdaki formülle hesaplanır: 100 × Örnek eşzamanlılığı. Örneğin, örnek eşzamanlılığını 10 olarak ayarlarsanız bir bölgede en fazla 1.000 eşzamanlı istek işlenebilir. Eşzamanlı istek sayısı Function Compute tarafından işlenebilecek maksimum istek sayısını aşarsa ResourceExhausted kısıtlama hatası rapor edilir.

Not

Bir bölgedeki maksimum örnek sayısını artırmak için bizimle iletişime geçin.

Günlük kaydı

  • Örnek eşzamanlılığı 1 olarak ayarlanırsa, bir işlevi çağırırken HTTP istek üstbilgisinde X-Fc-Log-Type: Tail belirttiğiniz takdirde Function Compute işlev günlüklerini X-Fc-Log-Result yanıt üstbilgisinde döndürür. Örnek eşzamanlılığı 1'den büyük bir değere ayarlanırsa, eşzamanlı istekler arasında belirli bir isteğin günlükleri alınamayacağından yanıt üstbilgisi işlev günlüklerini içermez.

  • Node.js çalışma zamanı için, istek kimliklerini içeren günlükleri döndürmek üzere console.info() işlevi kullanılırdı. Örnek eşzamanlılığı 1'den büyük bir değere ayarlanırsa, console.info() istek kimliklerini beklendiği gibi gösteremez. Tüm istek kimlikleri req 2 olarak görüntülenir. Aşağıdaki örnek bir günlük örneğini göstermektedir:

    2019-11-06T14:23:37.587Z req1 [info] logger begin
    2019-11-06T14:23:37.587Z req1 [info] ctxlogger begin
    2019-11-06T14:23:37.587Z req2 [info] logger begin
    2019-11-06T14:23:37.587Z req2 [info] ctxlogger begin
    2019-11-06T14:23:40.587Z req1 [info] ctxlogger end
    2019-11-06T14:23:40.587Z req2 [info] ctxlogger end
    2019-11-06T14:23:37.587Z req2 [info] logger end
    2019-11-06T14:23:37.587Z req2 [info] logger end                    

    Bu durumda, günlükleri yazdırmak için context.logger.info() kullanmanızı öneririz. Bu yöntem, istek kimliklerinin beklendiği gibi görüntülenmesini sağlar. Aşağıdaki örnek kod bunu göstermektedir:

    exports.handler = (event, context, callback) => {
        console.info('logger begin');
        context.logger.info('ctxlogger begin');
    
        setTimeout(function() {
            context.logger.info('ctxlogger end');
            console.info('logger end');
            callback(null, 'hello world');
        }, 3000);
    };                   

Hata işleme

Bir örnek birden fazla isteği eşzamanlı olarak işlerken, başarısız isteklerden kaynaklanan beklenmeyen süreç sonlandırmaları diğer eşzamanlı istekleri etkileyebilir. Bu nedenle, diğer istekleri etkilememek için işlev kodunda istek düzeyindeki özel durumları yakalama mantığı yazmanız gerekir. Aşağıda Node.js için örnek kod gösterilmektedir:

exports.handler = (event, context, callback) => {
    try {
        JSON.parse(event);
    } catch (ex) {
        callback(ex);
    }

    callback(null, 'hello world');
};                    

Paylaşılan değişkenler

Bir örnek birden fazla isteği eşzamanlı olarak işlerken, birden fazla istek aynı anda aynı değişkeni değiştirmeye çalışırsa hatalar oluşabilir. Kodunuzda, iş parçacığı açısından güvenli olmayan değişken değişikliklerini önlemek için karşılıklı dışlama kullanmanız gerekir. Aşağıda Java için örnek kod gösterilmektedir:

public class App implements StreamRequestHandler
{
    private static int counter = 0;

    @Override
    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
        synchronized (this) {
            counter = counter + 1;
        }
        outputStream.write(new String("hello world").getBytes());
    }
}