İnternet pencereler Android

1s 8.2 donuyor. Donmuş bir program nasıl kapatılır

1) 1C sunucusunda rphost tarafından ayrılan bellek miktarına bakın. Sunucunun x32 sürümüne sahipseniz, işlem maksimum 1,75 GB RAM kullanabilecektir.
Yeterli bellek yoksa sunucu yeni bağlantıları kabul edemez veya mevcut oturum ek belleğe ihtiyaç duyduğunda askıda kalır.
www.viva64.com/ru/k/0036
2) "Çalışan sunucunun ayarları" ayarlarına bakın, belki yanlış ayarlar yapılmıştır. Aynı sorun bende de vardı sunucu sürekli çöküyordu. Ayarlarım ekte. Sunucuya 11 GB ayrılmıştır.
3) Postgressql kurulumunda sorunlar olabilir.

Sunucu özelliklerinizi, veritabanı boyutlarını, Postgressql yapılandırmalarını sağlayın. Bilgi olmadan söylemek zor.

PostgreSQL yapılandırmam: https://drive.google.com/file/d/0B2qGCc-vzEVDMERVW...
bu yapılandırma, mevcut RAM miktarıyla eşleştirilir.
Linux üzerine kurulu PostgreSQL, 3 GB RAM, 3 CPU çekirdeği.
Sunucu 1C8: 11 GB RAM, 5 CPU çekirdeği
Her biri yaklaşık 1 GB olan 4 baz (dt'ye yüklendi)

Sunucunuzun tüm özelliklerini verin: 1C8 sunucusu ve fiziksel veya sanal veritabanı, işletim sistemi, her sunucudaki RAM miktarı, hangi CPU, rphost işlemleri ne kadar RAM kaplıyor, bunlardan kaç tanesi? RAID dizisi mi kullanıyorsunuz?

Daha önce kendim PostgreSQL kullanıyordum, ancak bu süreçte PostgreSQL'de veritabanıyla çalışırken bazı sorunlarla karşılaştım ve son zamanlarda MS SQL'e geçtim.

Sunucunuz veri tabanları için fena değil. PostgreSQL'i kullanabilmek için onu yapılandırmada çok iyi olmanız gerekir. Bazlar küçük olduğunda, birçok ayar hatası "affedilebilir". 1C + PostgreSQL'i uygulamaya yeni başladığımızda, veritabanında da çok sık sorun yaşadık (sık donmalar oluyordu, yavaş çalışıyordu). PostgreSQL'i Linux'ta kullanmak Windows'ta kullanmaktan daha iyidir. Ben kendim bir veritabanı uzmanı değilim, veritabanı sunucusunu kurmak için 1Sbit'ten bir uzman tuttuk ve o bizim için kurdu ve bundan sonra işte herhangi bir sorun olmadı.

Tavsiye:
Veritabanlarınız konusunda cimri olmayın, sizin için ayarlayabilecek bir veritabanı uzmanı ile çalışın. Bir kişi her konuda uzman olamaz.

1) ne kadar zaman önce veritabanının kendisini kontrol ettiniz ve yeniden indekslediniz? VAKUM ve REINDEX
2) Uzun süredir 1C kullanarak veritabanını test edip düzelttiniz mi?
3) veritabanı günlük dosyası ayrı bir HDD'ye mi taşındı?
4) HDD aşırı yüklü mü?

MS SQL'e geçmeyi düşünün, genellikle "neredeyse" hiçbir yapılandırma gerektirmez ve kullanımı daha kolaydır. PostgreSQL'den farklı olarak, MS Sql kullanıma hazırdır, ancak PostgreSQL'in yapılandırılması gerekir.

Herhangi bir sorunuz varsa, yazın, belki size Skype'ta yardımcı olabilirim: tisartisar

bir Veritabanı Uzmanı İşe Alın

Neden MS SQL'e geçtik:
UT konfigürasyonunu kullanıyoruz ve ayın sonunda bazen hiçbir şekilde çözülemeyen hatalar oluyordu. Veritabanını dosya moduna geçirip ayı kapatmaya başlarsanız, o zaman her şey normal bir şekilde kapandı, maliyet hesaplanırken aynı veritabanı PostgreSQL sunucusuna yüklendi, hatalar oluştu. O anda, kayan hataların oluşması nedeniyle kapanış aylarında yarım yıl gerideydik. MS SQL üzerinde test database oluşturduk ve MS SQL üzerinde PostgreSQL üzerinde kapatılamayan ay kapandı. Ayrıca fiyat listesindeki fiyatların yuvarlanması PostgreSQL'de düzgün çalışmıyor. Aslında, 1C'nin PostgreSQL üzerindeki çalışması desteklenir, ancak yine de MS SQl kullanılması önerilir.
Bu nedenle MS SQL'e geçilmesine karar verildi. 1C'nin kararlılığı daha pahalıdır.

Yardımcı olabildiğime sevindim, herhangi bir sorunuz veya sorununuz varsa lütfen benimle iletişime geçin.

1) MS SQL sunucusuna ne kadar bellek ayrılmıştır? bu, MS SQL sunucusunun kendisinde yapılandırılır.
2) 1C araçlarını kullanarak veritabanını düzenli olarak test edin
3) yedekleme ve bakımın nasıl kurulacağına ilişkin bir makale. Bu önemlidir ve düzenli olarak yapılmalıdır. Her gün yaparım. Kılavuzun 3 bölümünü de inceleyin.

Kilitlerin 1C performansı üzerindeki etkisi: Enterprise 8

Gilev ekibi uzun yıllardır performans sorunları üzerinde çalışmakta ve kilitleme beklemelerini ve kilitlenmeleri ortadan kaldırmak gibi sorunları başarıyla çözmektedir.

Aşağıda, bu sorunları çözme konusundaki deneyimlerimizi açıklıyoruz.

1C'de engelleme sorunlarının tespiti

Çok oyunculu performans sorunlarının nedeni mutlaka kötü kod veya kötü donanım değildir. Başlamak için şu soruyu cevaplamamız gerekiyor - hangi performans sorunları var ve bunlara ne sebep oluyor?

Yüzlerce kullanıcının aktivitelerini manuel olarak izlemek imkansızdır, bu tür bilgilerin toplanmasını otomatikleştiren bir araca ihtiyacınız vardır.

Pek çok araç var, ancak neredeyse hepsinin çok önemli bir dezavantajı var - fiyat.

Ancak bir çıkış yolu var - analiz aracı olarak seçiyoruz

MS SQL Server'daki sorunu araştıracağız, bu nedenle bu setten aşağıdaki hizmetlere ihtiyacımız olacak:

1. Uzun taleplerin izlenmesi ve analizi(kurulum hakkında daha fazla bilgi için burayı okuyun) - subd'de uzun işlemlerin varlığını değerlendirmek için gereklidir.

Aslında varlıklarının gerçeği, performans sorunları olduğunu söylememize izin veriyor ve sorunlar, hizmetin önem sırasına göre sıralayacağı 1C yapılandırma kodunun satırlarında yatıyor. Listenin başındaki sorunlar öncelikle ele alınmalıdır. Sorun dizilerine bu tür çözümler en büyük etkiyi getirecektir, yani. sistemin kullanıcıları için en yararlı ve yararlı olacaktır.

(burada daha fazlasını okuyun), uzun (uzun) isteklerin süresinin aslında kilitlerin beklenmesinden mi yoksa başka nedenler mi (optimal olmayan kod, aşırı yüklenmiş donanım vb.) Olup olmadığını değerlendirmemize olanak tanır. bekleme isteği, yani engellenen ve onu engelleyen kaynak. Onlar. engelleme sorunlarının varlığını ve nedenlerini anlayacağız.

3. 1C ve MS SQL sunucusundaki kilitlenmelerin analizi(ayar hakkında daha fazlasını buradan okuyun ) - birkaç katılımcı kaynakların bir kısmını kilitle zaten "ele geçirdiğinde" ve şimdi beklemeleri gerektiğinde, her biri için beklemeleri gerektiğinde, kaynakları bekleyen daha karmaşık durumları değerlendirmemize izin verecek çünkü komşular tarafından bloke edilen diğer kaynakların ele geçirilmesi tamamlanmadan işgal edilen kaynakları serbest bırakamazlar.

Genelde böyle zor bir durumda manuel olarak çözemezsiniz, böyle bir hizmete ihtiyacınız var.

4. Ekipman iş yükü kontrolü(kurulum hakkında daha fazlasını buradan okuyun) soruları yanıtlamamıza yardımcı olur - sistemde kaç kullanıcı var, kilitleri var mı, kaç kilit var, donanım yükle başa çıkabilir mi?

Hizmetlerin kurulumu çok kolaydır, ancak yine de sorularınız varsa, var!

Yukarıdaki araçların yardımıyla, sistemin performansı hakkında objektif bilgilere sahibiz. Bu, durumu doğru bir şekilde değerlendirmemizi ve yeterli önlemler önermemizi sağlar.

Aslında, tüm performans sorunları hakkında bilgi alıyoruz ve “sistemde kaç sorun var”, “tam olarak nerede ortaya çıkıyor”, “her bir sorun tam olarak hangi sıklıkta”, “hangi sorunlar önemli” gibi soruları doğru bir şekilde yanıtlayabiliyoruz. ve küçük olanlar ”. Onlar. sorunun nedenini oluşturan tüm ön koşulları görüyoruz.

Hizmetler, sizi DBMS düzeyinde bir bilgi tabanının veri depolama yapısı, kilitleme mekanizması vb.

Sonuç olarak, ölçülen performansın bir resmini elde ederiz.

- istek süresi (elbette, sorun isteklerini ağırlığa göre sıralar (istek süresi, bu isteğe yapılan çağrı sayısına göre);

- kilitler için bekleme süresi;

Böylece, Blok Beklenti Analizi hizmetini başlattık

Üstteki tabloda hizmet, "beklentilerin ciddiyetinin" toplam ağırlığını dikkate alarak engelleme "kurbanlarının" bir listesini gösterir.

Alttaki tabloda, her bir kurban için, bloktaki beklentinin ortaya çıktığı “yüksek düzeyde rekabetçi bir kaynak için mücadele”deki bir veya daha fazla katılımcı ele alınmaktadır.

Alttaki tabloda, "zaman aşımı" olaylarından birinin gerçeğine ilişkin ayrıntıyı açın. Örneğin resimdeki gibi.

"Suçlu" satırı vurgulayarak, _Reference64 tablosunun darboğaz haline geldiğini ve kümelenmiş dizinde "bilinmeyen" alanla ilgili bir sorun olduğunu göreceğiz. Belki gelecekte adını "tablo" olarak değiştireceğiz, çünkü aslında bu davranış engelleme alanını büyütmek / büyütmek için tipiktir.

"Kurban" satırı, hangi kodun duruma rehin olduğunu ve her şeyi engelleyemediğini gösterir, yalnızca "anahtarla" satırı (bu tablodaki minimum veri engelleme alanı).

Bu sorunu "doğru" ve "kolayca" çözebilirsiniz.

Doğru yolu takip etmek daha zordur - aslında, bu tür durumların meydana gelme olasılığını en aza indirerek kodu yeniden yazmanız gerekir.

Kulağa tuhaf gelse de faktörlerden biri, süredeki azalmadır.

Bir işlemin süresini azaltabilirsiniz:

1. algoritmayı yeniden yazmak

2. sorguyu yeniden yazarak (daha hızlı bir sorgu, bazen sorguda bile olmayabilen tablolardaki karmaşık işlemlerde kilitlenme olasılığını azaltır!)

2.1 eksik kaplama dizini ekleyerek (bazen dizin yalnızca sorguyu hızlandırmakla kalmaz, aynı zamanda verilerin okuma alanını da azaltır, bu da engelleme olasılığını azaltır)

3. bir işlemde işlenen veri miktarını azaltarak (doğrusal hıza ek olarak, kilit yükseltmeyi de hatırlıyoruz)

4. her akışta ekipmanın üretkenliğini artırma

Yürütme zamanı iste

1) farklı kullanıcılar farklı verilerle paralel çalışabilir
2) farklı kullanıcılar kesinlikle aynı verilerle sırayla çalışmalıdır

Bununla birlikte, kilit kullanımını optimize edebilir, böylece toplam bekleme süresini azaltabilirsiniz.

Kilitler nasıl çalışır (bu paragraf atlanabilir)

Kilitler, Kilit Yöneticisi adı verilen özel bir SQL Server modülü tarafından işlenir. Görevleri şunları içerir:

  • kilitlerin oluşturulması ve montajı;
  • kilitlerin çıkarılması;
  • kilit yükseltme;
  • kilitlerin uyumluluğunun belirlenmesi;
  • kilitlenmelerin (kilitlenmeler) ortadan kaldırılması ve çok daha fazlası.

Bir kullanıcı verileri güncellemek veya okumak için bir istekte bulunduğunda, DBMS işlem yöneticisi, istenen kaynakların kilitlenip kilitlenmediğini ve öyleyse, istenen kilidin mevcut olanla uyumlu olup olmadığını öğrenmek için kontrolü DBMS kilit yöneticisine devreder. Kilitler uyumsuzsa, mevcut işlemin yürütülmesi verilerin kilidi açılana kadar ertelenir. Veriler mevcut olduğunda, kilit yöneticisi istenen kilidi alır ve kontrolü işlem yöneticisine geri verir.

Performansı düşürmenin ana nedeni engellemedir.

Kilit beklemeleri, çok oyunculu modda önemli bir performans sorunudur. Ve bu anlaşılabilir bir durumdur çünkü operasyonlar için bekleme süresini ve dolayısıyla yanıt süresini artırırlar. Kilitlerde beklemenin doğru olmadığını ve çok kullanıcılı bir sistemin hatası olduğunu söylemek mümkün mü? Kaynak kilitleme mekanizmasının kendisi verilerin bütünlüğünü sağladığından bu söylenemez. Kilitleme mekanizması ile eş zamanlı veriler SIRALI YAZILIR.

Gerekli ve gereksiz kilitler arasındaki fark

Bir kullanıcı kilitte beklerken bir hata bildirdiğinde, kendi bakış açısından bu her zaman bir hatadır, çünkü örneğin işine müdahale eder - işini tamamlaması için gereken süre artar.

Deneyim, basit bir kural önerir, istek yürütme süresinin yarısından fazlası aslında engellenen bir kaynağı beklerse, o zaman bakmanız gerekir: bazı kilitleri optimize etmek, kaynak engelleme süresini azaltmak mümkün olabilir.

Burada, sanki tesadüfen, bir tanım getiriyorum:

Blokta beklemek iki kullanıcının aynı veriyi aynı anda yakalamaya çalışmasıyla ortaya çıkan bir durumdur. Bu durumda bu kullanıcılardan biri engellenir, yani ilk kullanıcının işleminin bitmesini beklemesi gerekir.

İşlem, bir bütün olarak gerçekleştirilen bir dizi hesaplama ve verilerle yapılan işlemlerdir (en çarpıcı örnek, bir belge yürütülürkendir). İşlem işlemlerinden herhangi birinin tamamlanmaması, işlemin tamamının iptal edilmesiyle sonuçlanır.

Bu nedenle, çok kullanıcılı bilgi tabanlarındaki kullanıcılar genellikle bu kilitler nedeniyle çalışmanın imkansız olduğundan şikayet edebilirken, aslında kodda bu yerde gerekli olmayan (fazlalık) kilitler olabilir.
Ayrıca yapılandırma kodunda, kendileri engellemiyor olabilir, örneğin, burada http://kb.1c.ru/articleView.jsp?id=30 (makale, kitabın bir parçasıdır) hakkında okuyabilirsiniz. Belousov, A.V. Ostroverh "1C: Enterprise: 8.0'dan 8.1'e".). Bunun gibi basit bir örnek kullanarak kilitler arasındaki farkı açıklamanın basitleştirilmiş bir yolunu sunuyorum:

1C:Enterprise modundaki yapılandırmanızda, aynı ürün bileşimine sahip iki özdeş fatura oluşturun. Ancak, farklı giriş depolarını belirttiğinizden emin olun.
Kaydırma işleme kodunda, ekranda bir mesaj görüntüleyen bir satır (veya kaydırma işleminin yürütülmesini 21 saniye geciktirebilecek başka bir kod) eklemeniz gerekir (kilit zaman aşımı, varsayılan parametreler ise 20 saniye sonra gerçekleşir) ).
İki belge gönderin.
Bir zaman aşımı meydana gelirse ve mantıksal olarak mallar farklı depolara ulaşırsa, uygulamada yedek kilitler vardır. İş mantığı (sağduyu düşünün) burada kilit olmamalıdır.
Şimdi bu iki irsaliyede aynı depoları yaparsak. Ardından, eş zamanlı bir davranış girişiminin sonucu olarak oluşturulan kilitler, GEREKLİ bir kilitle sonuçlanacak ve bu İYİ!

Onlar. fatura stok bakiyesinde değişiklik yaparken diğeri beklemek zorundadır.

Elbette bu basit örnek bile pek çok soru işareti bırakıyor. Örneğin, belgeler bir tedarikçiden ise ve üzerindeki borç "hareket ederse". Ve eğer sadece depodaki kalıntılar hareket etmiyorsa, aynı zamanda birkaç kayıt defteri, ancak çeşitli türlerdeki belgeler.
Ama en önemli soru İŞ MANTIĞINDA HANGİ BLOKLAMA OLMAMALIDIR. Bu iş mantığını kilitler bağlamında kim ve nerede reçete ediyor? Ama sırayla her şey hakkında konuşalım.

Veri bütünlüğünü sağlama açısından gerekli olmayan ve aynı zamanda sistemin genel performansını düşüren, kilitlerde bekleyen toplam "boşta" süreyi artıran aşırı - gereksiz - kilitler.
Gerekli kilit, iki kullanıcı aynı kaynakları (veri nesneleri) yakaladığında gerçekleşir. Kullanıcılar çakışmayan kaynaklarla çalışıyorsa ancak kilitte bir bekleme varsa, kilit gereksiz kabul edilir.

Kilit fazlalığı için en anlaşılır kriterler şunlardır:

1. Karşılıklı engelleme;

2. Engelleme seviyesi (alanı) gerekenden daha yüksektir (engelleme seviyesinin arttırılmasının özel bir durumu olarak, sözde tırmanma);

3. Kilit süresi, kilit nesnesinin "gerçek" kullanımından daha uzundur.

1C:Enterprise meta verileri bağlamında sorunların gruplandırılması hakkında bilgi aldıktan sonra, öncelikle nesnelere dikkat etmenizi öneririm:

  • sabitler
  • sonraki
  • Muhasebe kayıtları
  • Birikim kayıtları
  • Bilgi kayıtları
  • Hesaplama kayıtları

1) Yakın zamana kadar, sabitlere hiçbir şey yazılmaması yönünde iyi bilinen bir tavsiye vardı. Aşırı durumlarda, bunu bir kullanıcı altından yapın ve ardından kullanıcı bir sabiti, yalnızca bunu değil, aynı zamanda başka herhangi bir sabiti "yazarken" diğer kullanıcıların "bekleyeceğini" unutmayın. Bu nedenle, iletimin işlenmesinde sabitlerin kullanılması özellikle tehlikelidir. Tüm sabitlerin değerleri saklanır v bir kaynak.

Şekil, MS SQL Server 2005 veritabanı tablosundaki SCP yapılandırma sabitlerinin fiziksel konumunu göstermektedir.

Bu, bir sabit bloke edilirse, tüm sabitlerin bloke edileceği anlamına gelir. DBMS, tablonun TÜM tek SATIRINA bir kilit uygular, yani. tüm sabitler için.

Ancak platformun son sürümlerinde sabitlerin saklanması değişmiştir. Artık her sabit ayrı bir tablodur. Ancak kendinizi fazla kaptırmayın, binlerce tablo oluşturursanız, ana tabanda bir kilit yakalayabilirsiniz.

Dikkat, yapılandırmanız uzun süredir mevcutsa, yapılandırıcıyı Test Etme ve Düzeltme bölümünde "yeniden yapılandırma" yaparak depolama formatını değiştirebilirsiniz.

2) Sekans meta verisi nesnesini kullanmayı reddedin. En azından operasyonel davranış sırasındaki hareketlerden, operasyon dışı (ek davranış) ile yürütmek için. SCP'nin en son sürümlerinde nasıl uygulandığını görün.

3) Sistem, çok kullanıcılı bir modda muhasebe kaydındaki hareketlerin etkin bir kaydını gerçekleştirirse, o zaman tavsiye edilir:

  • bu kayıt için bölünmüş toplamlar modunu etkinleştirin;
  • operasyonel çalışma sırasında kasa bakiyesi kontrolünü kullanmayın.

4) Birikim kaydında, "operasyonel" veri elde etmeye gerek olmadığı durumlarda, toplamların bölünmesini etkinleştirebilirsiniz, bu, veri kaydının paralelliğini artıracak ve bir bütün olarak işi hızlandıracaktır. Ölçümlerde maksimum ayrıntıyla "kalıntıların" elde edilebilmesi için ölçümleri dikkatle izleyin.

5) Platform tarafından oluşturulan bazı gereksiz kilitlerden yalnızca tarafından kurtulabilirsiniz. Yapılandırmaların otomatik çalışma modunda, platform, kaynakların bloke edilmesini "devralır". Otomatik modu kaygısız kullanmanın bedeli, indeks aralıklarının sınırlarındaki kilitler, boş bir masadaki kilitler, kilit yükseltmedir.

Bu kilitler, işlemdeki verilerden tamamen kaybolur. Yani, yönetilen modda çalışırken bu kilitlenme mümkün olmayacaktır.

Daha önce defalarca “yönetilen engelleme”, “yönetilen mod” dedim. İki tür engelleme olduğunu anlamalısınız:
DBMS kilitleri, sorgular yürütüldüğünde DBMS düzeyinde otomatik olarak ayarlanır.
1C:Kuruluş kilitleri, veriler yazılırken (değiştirilirken) otomatik olarak ve veriler okunurken her zaman manuel olarak ayarlanır.

Titiz bir okuyucu, 1C'nin de nesne ve nesne olmayan kilitlere ayrıldığını söyleyecektir, ancak şimdi bu yaklaşıma dokunmayacağız.

Ancak, bir 1C uzmanının niteliklerine ve deneyimine daha fazla gereksinim getirdiğini not ediyorum.

6) Eksik dizinler (özellikle karmaşık sorgularda) genellikle gerekenden daha yüksek düzeyde kilitlenmelerin oluşmasındaki ana faktördür. Onlar. bir paradoks, bir yandan sorguyu optimize etmeden önce kilitlere bakmanız gerektiğini söyledim ve şimdi de kilitleri optimize etmek için sorguyu optimize etmeniz gerektiğini söylüyorum. Bir mazeretim var, yapılandırmayı yönetilen kilitlere taşımak, optimum altı sorgularda bile fazla kilitleri azaltır. Bunun nedeni, DBMS kilit yöneticisine aşırı bir kilit elde etmesi için daha az neden sağlayan işlem yalıtım seviyesinin düşürülmesidir.

Aşırı kilitlenmelerin ana nedenleri (yukarıdakileri özetlemek gerekirse)

— tasarım hataları
(paralellik derecesi “verilerin ne kadar ince dilimlendiği” ile belirlenir: tablonun iki satırıyla paralel çalışma mümkündür, bir satırla çalışma yalnızca sıralı olarak gider)
(meta verilerin kullanımındaki hatalar: kayıt sabitleri, diziler, muhasebe kayıtlarında operasyonel muhasebe)
- otomatik modun (platform - DBMS bağlantısı) hatası nedeniyle aşırı engelleme.
— yetersiz sorgu performansı
(örneğin, bir tablo taranırken tüm tablo engellenir - yedek alan
ve engelleme süresi uzar - fazla süre, ek engelleme, yükseltmeyi engelleme olasılığını artırır)

Gördüğünüz gibi, kilitleri optimize etme görevi "çok yönlüdür". Sorunu tetikleyen “bağlamı” mümkün olan en iyi şekilde temsil etmek gerekir. Hangi kaynaklarda, hangi kodda. Bu kilit ne kadar gerçekçi veya gereksiz mi?

Bir çocuk ve bir yetişkinin boğaz ağrısı var. Doktor “Neyin var?” Bu bariz fark, doktoru sorunu tanımlamanın farklı yöntemlerine yönlendirir.
Bir çocukla, doktor uymak zorundadır birçok test edin, veri toplayın, birleştirin, analiz yapın ve ancak bundan sonra önerilerde bulunun. Oysa bir yetişkinle birkaç soru soracak ve ilk verilerin sayısı az olduğu için sorunu analiz etme ve tanımlama süresi önemli ölçüde daha az olacaktır. Sonuç olarak, tavsiyeler çok daha erken verilecektir.

Hizmetlerimizi kullanın ve sorunu analiz etmek ve ücretsiz olarak bir çözüm bulmak için daha fazla fırsatınız olacak!

Donarsa ve yanıt vermeyi durdurursa program nasıl kapatılır. Programlar neden donuyor? Kim suçlanacak ve ne yapmalı? Bu yazıda, bu sorunun ana nedenlerini ve çözümlerini analiz etmeye çalışacağız.

Açık program, eylemlerinize yanıt vermeyi durdurdu, imleç dondu veya bir kum saatine dönüştü, programın penceresinde "Yanıt vermiyor" yazısı görüntüleniyor, her şeye tıklıyor musunuz, gerginsiniz ve ne yapacağınızı bilmiyor musunuz?

Öncelikle sakin olun ve yazıyı okuyun. Kesinlikle herkes bu durumda olmuştur, tüm programlar insanlar tarafından yazılmıştır, bu yüzden mükemmel değildirler. Asıl anlamamız gereken bu gibi durumlarda nasıl doğru davranılacağı ve bunun neden olduğudur.

Öncelikle, programın gerçekten donmuş olup olmadığını ve yukarıda açıklanan tüm semptomların gözlemlenip gözlemlenmediğini veya az önce kaynak yoğun bir uygulama mı yoksa sisteminizin takılmadığı, ancak sadece yavaşladığı bir program mı başlattığınızı bulmanız gerekir.

Program donarsa ne yapılmamalıdır?

Pek çok acemi kullanıcının yaptığı ve böylece zamanlarını boşa harcadığı en yaygın hatalara bir göz atalım.

- Bağır, klavyeye bas (kesinlikle onun hatası değil).
- Aynı programı veya diğer programları tekrar çalıştırmaya gerek yok - bu sadece durumu daha da kötüleştirecektir.
- Gücü çekin, kapatın, yeniden başlatın (bu aşırı bir yöntemdir).

Program donarsa ne yapmalı

1. Daha radikal yöntemlere geçmeden önce, askıya alınan programa sağ tıklayıp uygun öğeyi seçerek görev çubuğunda kapatmayı deneyin.
2. Yardımcı olmazsa kanıtlanmış yönteme gidin, bunun için görev yöneticisini başlatmamız gerekiyor. Görev yöneticisini Ctrl + Shift + Esc (Windows 7) Ctrl + Alt + Del (Windows XP) tuş bileşimiyle arayabilirsiniz.

"Uygulamalar" sekmesiyle ilgileniyoruz, burada bilgisayarda çalışan tüm uygulamalar şu anda görüntüleniyor. Donmuş bir uygulama arıyoruz (benim örneğimde bu bir program) ve → Görevi sonlandır'a tıklayın. Genellikle bu yeterlidir! Yardımcı olmadı → nokta 3.
3. Program askıda kalmaya devam ederse ne yapmalıyım? Bir sonraki sekmeye gidin → "İşlemler". Gerçek şu ki, bilgisayarınızda çalıştırdığınız herhangi bir programla bazı işlemler veya işlemler ilişkilidir. Ve şu anda donmuş olan programın, program kısayoluna sağ tıklayıp → "Özellikler" öğesini seçerek öğrenebileceğiniz kendi süreci de vardır. Örneğimde, süreç şu şekilde → VideoConverter.exe

İşlemler sekmesini seçerek → işleminizi arayın (benim durumumda bu “VideoConverter.exe”) ve tıklayın → “işlemi sonlandır” veya emin olmak için → işleme sağ tıklayın → “İşlem ağacını sonlandır”

Standart Windows araçlarını kullanarak sorunu donmuş bir programla bu şekilde çözebilirsiniz. Dondurulmuş bir programı üçüncü taraf programları kullanarak da kapatabilirsiniz, örneğin, program

BT uzmanları tarafından iyi bilinen, kullanıcıların "1C'yi taktığı" şikayetinin birçok nedeni vardır. Doğru bir "teşhis" yapmak için - bir sorunu tanımlamak ve analiz etmek için - yeniden oluşturulması gerekir, çünkü yeniden üretilemeyen bir sorunun çözülmesi kural olarak neredeyse imkansızdır. 1C donmasının semptomlarını anladıktan sonra verimli bir sisteme doğru ilk adımı atacağız.

Çok uzun sistem başlangıcı

Bilgisayardaki veritabanları listesine IB'yi ekledikten sonra ilk kez bir kullanıcı altında yoğun bir yapılandırmanın uzun süre başlatılması normal bir olgudur. İlk çalıştırma sırasında yapılandırma önbelleğe alınır. İkinci ve sonraki başlatmalar daha hızlı olmalıdır.

Uzun süren bir sistem başlatma, yapılandırmanın mimari uygulamasında sorunlara işaret edebilir. Yapılandırmanın çoğu, yalnızca istenen meta veri nesnesine ilk kez erişildiğinde çerçeve tarafından okunur. Uzun bir başlangıç, çok sayıda meta veri nesnesi kullanma olasılığını gösterir (çeşitli ortak modüllere yapılan çok sayıda çağrı, işleme vb.).

Unutulmamalıdır ki herhangi bir modülün metnine ilk kez erişildiğinde derlenir. Bu işlem ayrıca zaman alır ve bu, özellikle çok sayıda modül varsa fark edilir. Böylece, yavaş başlatma sorunu, amacı sistem başlangıcında yürütülen tüm isteğe bağlı algoritmaların yürütülmesini devre dışı bırakmak olan konfigürasyon değiştirilerek (optimize edilerek) çözülür.

Başlangıçtaki yapılandırmanın internetten veri okumaya çalışıyor olma olasılığı vardır. Ayrıca sistem başlatma süresini de artırır.

Çok uzun açılış süreleri

Formların uzun süre açılmasının nedeni şunlar olabilir:

  1. Form üzerinde çok sayıda kontrol - formu oluşturmak ve form öğelerinin konumunu bağlamak için zaman harcanır;
  2. Form başlatma sırasında algoritmaların yürütülmesi. Form oluşturulurken bazı koşulların kontrol edilmesi ve/veya ilgili nesnelerin veri tabanından okunması mümkündür.

İlk problem, formu basitleştirerek "tedavi edilir". Örneğin, bazı kontroller ayrı formlara yerleştirilebilir ve bu da kullanıcı için daha da kullanışlı olabilir. Örneğin, formda "Şehir", "Sokak", "Ev" vb. adres alanı varsa, adresi ayrı bir biçimde düzenlemek daha iyidir.

İkinci sorun, formun oluşturulması ve açılması sırasında gerçekleştirilen eylemlerin analiz edilmesi ve bu algoritmaların optimize edilmesi ile çözülmüştür. Algoritmalardan bazıları eski olabilir ve bazıları basitleştirilebilir ve optimize edilebilir, örneğin veritabanındaki verilere erişimi ortadan kaldırmak veya en aza indirmek.

Etkileşimli bir eylem olarak, kullanıcının bir form öğesinde bir değer seçme girişimini düşünün. Buna yanıt olarak sistem "bir şey düşünüyor". Bu, aşağıdaki nedenlerle olabilir:

  1. Belirli bir eylemde çalışan algoritmalar, değer seçim modunu etkileyen ilişkili verileri inceler veya hesaplar;
  2. Bu değeri seçmek için açılan seçme formu, başlatıldığında veritabanındaki tüm nesneleri okur.

İlk sorunu çözmek için "Performans Ölçümü"nü kullanmalı, kaynak yoğun algoritmalar bulmalı ve bunları optimize etmelisiniz.


İkinci sorun, genellikle seçme formunun uygulanmasının basit bir şekilde analiz edilmesiyle çözülebilir. Örneğin, dinamik liste özelliğinin "Dinamik Veri Okuma" olarak ayarlandığından, "Ana Tablo" özelliğinin doğru ayarlandığından ve listenin uygulanmasının açıkça kaynak yoğun algoritmalar kullanmadığından emin olmalısınız.

Seçim formunu açarken, ilgili herhangi bir verinin veri tabanından okunduğu durumlar da vardır (örneğin, "Terminasyon" seçim formunu açarken, depolardaki mal bakiyesi okunur). Tipik olarak, bu en iyi çözüm değildir. Form açıldıktan sonra ilgili verilerin okunması en iyi şekilde eşzamansız olarak yapılır. Bu kullanıcı için daha az rahatsızlığa neden olacaktır, çünkü. form gösterildikten sonra, kullanıcı açılan formu algılamak için biraz zaman harcayacaktır ve bu süre ilgili verileri yüklemek için harcanabilir.

Güncellemelere çok yavaş yanıt

Bununla birlikte, önemsiz belirtilerden biri, bazı sistem sorunları hakkında bilgi verebilir: 1C güncellemesi, yedeklemeyi başlatırken donar. Bu, esas olarak İnternet üzerinden güncelleme yaparken olur ve büyük olasılıkla, yapılandırmanın uzun süredir güncellenmediğini ve üst üste yuvarlanan sürümlerin donmaya neden olduğunu gösterir. Güncellemeleri zamanında yükleyerek böyle bir sorunun önüne geçebilir ve böyle bir durumla karşılaşırsanız yedekleme işlemini yarıda kesebilirsiniz. Konfigüratörü başlattıktan sonra, veritabanı normal modda yapılan değişikliklerle başlayacaktır.

1C 8.3'ün, platformun önceki sürümlerinden daha fazla kaynak yoğun donanım gerektirdiği için güncellemeler sırasında en sık donduğuna dikkat edilmelidir. RAM miktarına dikkat etmeye ve gerekirse artırmaya değer - bu, prensip olarak, "yapılandırmayı güncellerken 1C donuyor" sorununu çözmeye yardımcı olmalıdır.

Nesnelerin uzun süreli kaydı/belgelerin gönderilmesi

Bu durumda, "fotoğraf işleme" pratik olarak hariç tutulur, çünkü nedenler, nesnedeki büyük miktarda veriden başlayıp kilitlerde beklemeye kadar çok çeşitli olabilir.

Ancak BU durumda bile, analiz için bir yön belirlemek mümkündür.

Günün saatine veya kullanıcı sayısına (kaba, öznel bir tahmine göre) bağlı olarak kayıt süresinde önemli değişikliklerin olmaması, nesnenin kodunda veya veri hacminde bir sorun olduğunu gösterir. Analiz için “Performans Ölçümü” aracını kullanmak mantıklıdır.

Belirsiz bağımlılıklarla kayıt süresindeki önemli bir değişiklik, sorunun görünümünün istatistiksel bir analizini gerektirir, örn. performans analizi. En kolay yol, günlük kullanımını analiz etmektir. Buradaki ek bir avantaj, 1C:Enterprise 8 platformunun günlük verilerinin bir SQLite biçim dosyasına kaydedilmesini desteklemesidir. Bu, günlük verilerini ayrıştırmak için SQL sorgularını kullanmanıza izin verecektir. Her nesne yazma işleminin bir işlemde gerçekleştirildiği ve her işlemin kendi kimlik numarası olduğu gerçeği göz önüne alındığında, günlük verilerinden nesne yazma zamanını almak oldukça mümkündür.


İstatistiksel analizin sonucu, nesne kayıt süresinin kullanıcı sayısına değil günün saatine bağlı olduğunu gösteriyorsa, 1C sunucusunun ve veritabanı sunucusunun iş yükünü analiz etmek gerekir. Gereksiz kaynakları kullanan sunucuda rutin işlemler çalışıyor olabilir.

Nesnelerin yazma süresi kullanıcı sayısına bağlıysa, sorunlar büyük olasılıkla kodda (muhtemelen kilitlerde beklemede) veya donanımın iş hacmindedir. Bunları çözmek için, böyle bir sorunu çözmek için birleşik kurallar olmadığından, "1C: Teknolojik Uzman" yetkinliğine sahip bir uzmanı dahil etmelisiniz.

Bir program size yanıt vermeyi durdurduysa, ne fareye ne de klavyeye yanıt vermiyorsa ve hatta belki de "program yanıt vermiyor" yazısı belirmişse, buna donmuş program denir.

Bazen donmuş bir program işinize müdahale etmez ve bazen tam tersine, donmuş bir program nedeniyle tüm işletim sisteminin çalışması yavaşlayabilir, her durumda sorun çözülmeli, bir şeyler yapılmalı yapıldı.

Ne yapılmamalı:

1) Fişi prizden çekin bu durumda yapabileceğiniz en büyük hatadır. Bir bilgisayar için ani bir elektrik kesintisi çok fazla stres demektir. Bu öğe ayrıca, sistem birimindeki başlat düğmesini kullanarak bilgisayarı kapatmayı ve güç kaynağı anahtarına basarak kapatmayı da içerir. Bu yöntemlerin özü aynıdır, güç kaynağını kesersiniz.

2) Sıfırlama düğmesine basın- bu düğme, sistem biriminin ön tarafında bulunur ve yeniden başlatmayı zorlamak için kullanılır. Diğer yöntemler yardımcı olmadığında, yalnızca en umutsuz durumlarda basılmalıdır.

3) Ekstra hareketler yapın- donmuş bir program nedeniyle işletim sisteminiz çok yavaşlamaya başladıysa, gereksiz herhangi bir işlem durumu yalnızca daha da kötüleştirecektir. Gereksiz eylemlerle, donmuş bir programı yeniden başlatmayı (bu hiçbir durumda yapılmamalıdır), başka programları başlatmayı, başlat menüsünü veya başka bir menüyü açmayı kastediyorum. Durum özellikle kritikse, imleç donabileceği ve sorunu çözmek daha zor olacağı için fareyi hareket ettirmemelisiniz.

4) Çok uzun süre bekleyin- Kural olarak, programın donduğunu anlamak için beş dakika beklemek yeterlidir, zayıf bir bilgisayarınız varsa, 15 ila 20 dakika verin, daha fazla beklemek genellikle işe yaramaz.

5) Sinirlenmek- Ayağınızla sistem birimine tekme atmak veya klavyeyi masaya vurmak soruna yardımcı olmaz. Bu paragrafı özellikle yazdım, çünkü bilinmeyen bir nedenle insanlar bazen bunu yapıyor (muhtemelen geçmişimiz tüplü TV'nin çalışmak istemediğini etkiliyor, genellikle elleriyle ona vuruyorlar ve bu yardımcı oluyordu). Bilgisayar tüplü TV değildir, onu yenmeye gerek yok.

Ne yapılmalı

Sağ üst köşedeki çarpı işaretine tıklamak ve alt + f4 kombinasyonu yardımcı olmazsa, programı kapatmayı denemeniz gerekir, o zaman aşağıdakileri yapmanız gerekir:

Görev yöneticisini aramak için tuş kombinasyonuna basın:

Windows xp için “Ctrl + Alt + Del”.

Windows 7 için "Ctrl + Shift + Esc".

Görev yöneticisinde, "Uygulamalar" sekmesine gidin, programınız görev bölümünde görüntüleniyorsa, onu seçin ve "Görevi bitir" düğmesine tıklayın. Hemen bir tepki yoksa bu butona tekrar basmanıza gerek yok, sadece biraz beklemeniz yeterli. Bir süre sonra, verilerin kaybolabileceğine dair bir uyarı içeren bir pencere açılacaktır, “Şimdi Bitir” düğmesine tıklamanız gerekecektir. Örnek olarak, ekran görüntüsüne bakın (Çalışma programını tamamladım, bu nedenle metniniz farklı olacak, ancak prensip aynı).

Bu yöntem programı sonlandırmayı başaramazsa, askıdaki programa sağ tıklayın ve açılır menüden "İşlemeye Git" seçeneğini seçin. Otomatik olarak "İşlemler" sekmesine yönlendirileceksiniz, istenen işlem zaten seçilmiş olacak, sadece "İşlemi Sonlandır" düğmesine tıklamanız yeterli.

Askıya alınan program "Uygulamalar" sekmesinde görüntülenmiyorsa, "İşlemler" sekmesine gitmeniz, askıya alınan programın sürecini bulmanız ve sonlandırmanız gerekir. Bir işlemi ada göre aramak en kolayıdır, ayrıca işlemci yükünün derecesine göre de arama yapabilirsiniz, genellikle bu yüzde askıda kalan bir uygulama için yüksektir.