1s 8 იყინება. რა უნდა გააკეთოს, თუ პროგრამა იყინება? სისტემის ძალიან ხანგრძლივი გაშვება

23.06.2023

ეს სტატია დაგეხმარებათ თავიდან აიცილოთ გაყინვის პროგრამები. მასში მე აღვწერ მეთოდს, რომელიც დაგეხმარებათ გაყინული პროგრამის შეწყვეტაუფლება. ყოველივე ამის შემდეგ, ხშირად პროგრამის დასასრულებლად, ადამიანები იყენებენ მათთვის ცნობილ მეთოდებს - ეს არის ციებ-ცხელების დარტყმა ალტ + f4ან უბრალოდ ღილაკი ესკდა, უმეტეს შემთხვევაში, ეს არ მუშაობს. შემდეგ თქვენ უნდა დააჭიროთ ერთადერთ ღილაკს, რომელიც აუცილებლად დაგეხმარებათ - ეს არის ღილაკი სისტემის ერთეულზე ან ლეპტოპზე გამორთვის ან გადატვირთვისთვის. ამ შემთხვევაში, თქვენ რისკავთ მონაცემების დაკარგვას არა მხოლოდ გაყინული პროგრამისგან, არამედ სხვებისგანაც, რომლებიც ღიაა.

პროგრამის გაყინვის რამდენიმე მიზეზი შეიძლება იყოს:

  • თუ თქვენ გაქვთ 64-ბიტიანი სისტემა () და აწარმოებთ პროგრამას, რომელიც განკუთვნილია 32-ბიტიანი სისტემებისთვის, მაშინ საუკეთესო შემთხვევაში პროგრამა უბრალოდ არ დაიწყება, უარეს შემთხვევაში ის გაყინავს. მიუხედავად იმისა, რომ აქ არის ნიუანსი - ხდება, რომ ასეთი პროგრამები მუშაობს, მაგრამ არასწორად ან დროთა განმავლობაში იყინება.
  • ძალიან ცოტა გაქვს შემთხვევითი წვდომის მეხსიერებადასაწყისისთვის.
  • თქვენ გაქვთ ძალიან ბევრი პროგრამა და პროცესი გაშვებული, რომლებიც უკვე იტვირთება სისტემაში.
  • თქვენ გაქვთ პროგრამები გაშვებული ფონზე, რომლებიც იკავებენ სისტემის უამრავ რესურსს
  • ვირუსები
  • ტექნიკური პრობლემები (პროცესორზე თერმული პასტა გამომშრალია, ბევრი მტვერია ჩაკეტილი, „სუსტი“ აპარატურა და ა.შ.)

    ახლა კი თქვენ გაუშვით პროგრამა და ელოდებით მის დაწყებას. და ის გაჩერდა დატვირთვის პროცესზე და "ჩუმად" იყო. კარგია, თუ ის თამაშობს მუსიკალური ფონი(ძირითადად თამაშებისთვის), მას შეუძლია მოგცეთ მინიშნება მარყუჟის სახით. თქვენ, რა თქმა უნდა, შეგიძლიათ დაელოდოთ რამდენიმე წუთს (არაუმეტეს 5) „სასწაულის“ მოლოდინში და რომ პროგრამა გაჩერდება, მაგრამ თუ არ გსურთ ლოდინი და ზუსტად იცით, რომ პროგრამა გაიყინა, მაშინ თქვენ უნდა დაიწყოთ გაყინული პროგრამების დახურვა.

    Იმისათვის, რომ შეწყვიტოს პროგრამა, რომელიც არ პასუხობს(ასე ჰქვია გაყინვას) თქვენ უნდა დაურეკოთ სამუშაო მენეჯერს. თქვენ, რა თქმა უნდა, შეგიძლიათ გამოიყენოთ ctrl+ცვლა+ესკ, მაგრამ გირჩევთ გამოიყენოთ უფრო ცნობილი და ეფექტური კლავიატურის მალსახმობი ctrl+ალტ+დელ.

    Windows 7-ში ამ კლავიშების დაჭერისას იხსნება ხუთი ვარიანტის ფანჯარა, რომელშიც უნდა აირჩიოთ ბოლო.


    ჩანართში აპლიკაციებიჩვენ ვეძებთ გაყინულ პროგრამას (როგორც წესი, მისი სტატუსი არ პასუხობს), დააწკაპუნეთ მასზე მარჯვენა ღილაკით და აირჩიეთ მენიუდან გადადით პროცესზე:


    გაიხსნება ჩანართი პროცესებითავდადებული ჩამოკიდებული პროცესით. აქ ჩვენ უბრალოდ დააწკაპუნეთ დაასრულეთ პროცესი


    და დაეთანხმეთ სისტემის გაფრთხილებას

    Შენიშვნა:
    თქვენ, რა თქმა უნდა, შეგიძლიათ აირჩიოთ Task Manager მენიუში არა გადადით პროცესზე, ა ამოცანის გაუქმებადა ეს იქნება უფრო "ნაზი" მეთოდი, მაგრამ ხანდახან ეს არ უწყობს ხელს. და მე რატომღაც მიჩვეული ვარ ასეთი პრობლემების ეფექტურად გადაჭრას.

    ასე შეგიძლიათ „ამოშალოთ“ გაყინული პროგრამა კომპიუტერის გადატვირთვის გარეშე და ხელუხლებლად შეინახოთ სხვა გაშვებული პროგრამები.

    ხდება ასე Explorer არ პასუხობს. ამით ვგულისხმობ იმას, რომ, მაგალითად, თქვენ გახსენით საქაღალდე თქვენს კომპიუტერში ან თუნდაც უბრალოდ My Computer და სისტემა გაიყინა (ის იწყებს დიდი ხნის განმავლობაში ფიქრს). ეს მე თვითონ დამემართა.
    ამ შემთხვევაში, Task Manager და ზემოთ აღწერილი მეთოდი ასევე დაგეხმარებათ.

    მაგრამ აქ მნიშვნელოვანია გახსოვდეთ ერთი დეტალი: Explorer პროცესს ეწოდება explorer.exe და როდესაც ის დასრულდება, თქვენს კომპიუტერში ყველა საქაღალდე დაიხურება. მაგრამ ეს ნახევარი უბედურებაა. მას შემდეგ, რაც თქვენ „მოკალით“ მკვლევარი, ასევე გაქრება მართვის პანელი Start მენიუთი. Ამიტომაც დაუყოვნებლივ არ დახუროთ სამუშაო მენეჯერი!დაკარგულის დასაბრუნებლად (გარდა საქაღალდეების გახსნა), დააჭირეთ ფაილი -> გაშვება


    და შეიყვანეთ explorer.exe ხაზში


    რა თქმა უნდა, დააწკაპუნეთ OK და ყველაფერი თავის ადგილს დაუბრუნდება.

    აქ არის მარტივი გზა პრობლემის გადასაჭრელად: რა უნდა გააკეთოს, თუ პროგრამა არ პასუხობს ან იყინება.

  • დაბლოკვის გავლენა 1C:Enterprise 8-ის მუშაობაზე

    გილევის გუნდი მრავალი წლის განმავლობაში მუშაობდა შესრულების საკითხებზე და წარმატებით გადაჭრა, სხვა საკითხებთან ერთად, ბლოკირებისა და ჩიხების მოლოდინების აღმოფხვრის საკითხები.

    ქვემოთ აღვწერთ ჩვენს გამოცდილებას ამ პრობლემების გადაჭრაში.

    ბლოკირების პრობლემების გამოვლენა 1C-ში

    მულტიმოთამაშის რეჟიმში მუშაობის პრობლემები სულაც არ არის დაკავშირებული ცუდ კოდთან ან ცუდ აპარატურასთან. პირველ რიგში, ჩვენ უნდა ვუპასუხოთ კითხვას - შესრულების რა პრობლემები არსებობს და რა იწვევს მათ?

    შეუძლებელია ხელით თვალყური ადევნოთ ასობით მომხმარებლის საქმიანობას, გჭირდებათ ინსტრუმენტი, რომელიც ავტომატიზირებს ასეთი ინფორმაციის შეგროვებას.

    უამრავი ინსტრუმენტია, მაგრამ თითქმის ყველა მათგანს აქვს ერთი ძალიან მნიშვნელოვანი ნაკლი - ფასი.

    მაგრამ არსებობს გამოსავალი - ჩვენ ვირჩევთ

    ჩვენ გამოვიკვლევთ საკითხს MS-ზე SQL სერვერიასე რომ, ჩვენ გვჭირდება შემდეგი სერვისები ამ ნაკრებიდან:

    1. ხანგრძლივი მოთხოვნების მონიტორინგი და ანალიზი(დაყენების შესახებ მეტი წაიკითხეთ აქ) - საჭიროა იმის შესაფასებლად, არის თუ არა გრძელვადიანი ოპერაციები სუბდ.

    სინამდვილეში, მათი არსებობის ფაქტი საშუალებას გვაძლევს ვთქვათ, რომ არსებობს შესრულების პრობლემები და პრობლემები მდგომარეობს 1C კონფიგურაციის კოდის ხაზებში, რომელსაც სერვისი აფასებს მნიშვნელობის მიხედვით. სიის სათავეში არსებული პრობლემები ჯერ უნდა მოგვარდეს. პრობლემური ხაზების ასეთი გადაწყვეტილებები ყველაზე დიდ ეფექტს მოიტანს, ე.ი. ყველაზე მეტად სარგებელს და სარგებელს მოუტანს სისტემის მომხმარებლებს.

    (დაწვრილებით აქ) საშუალებას მოგვცემს შევაფასოთ, ხანგრძლივი (გრძელი) მოთხოვნის დრო რეალურად გამოწვეულია ჩაკეტვის მოლოდინით თუ არის სხვა მიზეზები (არაოპტიმალური კოდი, გადატვირთული აპარატურა და ა.შ.) სერვისი აჩვენებს მიზეზს. ლოდინი მოთხოვნით, კერძოდ, რესურსი, რომელიც დაბლოკილია და ვინ დაბლოკა იგი. იმათ. ჩვენ გავიგებთ ბლოკირების პრობლემების არსებობას და მათ მიზეზებს.

    3. ურთიერთდაბლოკვის ანალიზი 1C და MS SQL სერვერზე(წაიკითხეთ მეტი დაყენების შესახებ აქ) - საშუალებას მოგვცემს შევაფასოთ უფრო რთული სიტუაციები რესურსების მოლოდინში, როდესაც რამდენიმე მონაწილემ უკვე მოახერხა რესურსების ნაწილის „დაკავება“ დაბლოკვით და ახლა იძულებული არიან დაელოდონ, იძულებულნი არიან დაელოდონ თითოეულს. სხვა იმის გამო, რომ მათ არ შეუძლიათ გაათავისუფლონ ოკუპირებული რესურსები მეზობლების მიერ დაბლოკილი სხვა რესურსების აღების დასრულებამდე.

    ზოგადად, ასეთი რთული სიტუაციის ხელით დალაგება შეუძლებელია.

    4. აღჭურვილობის დატვირთვის კონტროლი(წაიკითხეთ მეტი დაყენების შესახებ აქ) გვეხმარება ვუპასუხოთ კითხვებს - რამდენი მომხმარებელია სისტემაში, აქვთ თუ არა საკეტები, რამდენი საკეტი, შეუძლია თუ არა აპარატურა გაუმკლავდეს დატვირთვას?

    სერვისების დაყენება ძალიან მარტივია, მაგრამ მაშინაც კი, თუ ჯერ კიდევ გაქვთ შეკითხვები, არის!

    ზემოთ ჩამოთვლილი ხელსაწყოების გამოყენებით, ჩვენ გვაქვს ობიექტური ინფორმაცია სისტემის მუშაობის შესახებ. ეს საშუალებას გვაძლევს სწორად შევაფასოთ სიტუაცია და შემოგთავაზოთ ადეკვატური ზომები.

    სინამდვილეში, ჩვენ ვიღებთ ინფორმაციას მუშაობის ყველა პრობლემის შესახებ და შეგვიძლია ზუსტად ვუპასუხოთ კითხვებს, როგორიცაა "რამდენი პრობლემაა სისტემაში", "ზუსტად სად ჩნდება", "თითოეული პრობლემა რა ზუსტი სიხშირით ჩნდება", "რომელი პრობლემებია მნიშვნელოვანი და რომლებიც უმნიშვნელოა“. იმათ. ჩვენ ვხედავთ ყველა იმ წინაპირობას, რამაც გამოიწვია პრობლემის მიზეზი.

    სერვისები საშუალებას გაძლევთ მნიშვნელოვნად გააუმჯობესოთ თქვენი გაგება იმ პირობების შესახებ, რომლებშიც წარმოიქმნება პრობლემები, არ აიძულოთ ხელით ჩაღრმავდეთ ისეთ საკითხებში, როგორიცაა მონაცემთა ბაზის მონაცემთა შენახვის სტრუქტურა DBMS დონეზე, ჩაკეტვის მექანიზმი და ა.

    შედეგად, ჩვენ ვიღებთ შესრულების სურათს, რომელიც იზომება

    — მოთხოვნის დრო (რა თქმა უნდა, პრობლემური მოთხოვნების წონით დალაგება (მოთხოვნის დრო ამ მოთხოვნაზე ზარების რაოდენობის მიხედვით);

    — საკეტების მოლოდინის დრო;

    ასე რომ, ჩვენ გავუშვით სერვისი ბლოკირების მოლოდინების ანალიზი

    ზედა ცხრილში, სერვისი აჩვენებს დაბლოკვის „მსხვერპლთა“ სიას „მოლოდინების სიმძიმის“ მთლიანი წონის გათვალისწინებით.

    ქვედა ცხრილში, თითოეული მსხვერპლისთვის განიხილება ერთი ან მეტი მონაწილე „უაღრესად კონკურენტუნარიანი რესურსისთვის“, სადაც გაჩნდა დაბლოკვის მოლოდინი.

    ქვედა ცხრილში გახსენით დეტალები ერთ-ერთი „ტაიმაუტის“ მოვლენისთვის. როგორც მაგალითად სურათზე.

    „დამნაშავესთან“ ხაზის ხაზგასმით დავინახავთ, რომ ბოთლი იყო _Reference64 ცხრილი და წარმოიშვა პრობლემა კლასტერულ ინდექსზე „უცნობი“ არეალით. შესაძლოა, მომავალში მას დავარქვათ "ცხრილი", რადგან სინამდვილეში ეს ქცევა დამახასიათებელია ბლოკირების არეალის გაზრდის/გადიდებისთვის.

    სტრიქონი „მსხვერპლთან“ გვიჩვენებს, რომელი კოდი იყო სიტუაციის მძევალი და არ შეეძლო ყველაფრის დაბლოკვა, მხოლოდ ხაზი „გასაღებით“ (მონაცემთა დაბლოკვის ზონა ამ ცხრილში).

    ეს პრობლემა შეიძლება მოგვარდეს "სწორად" და "ადვილად".

    უფრო რთულია სწორი გზის გაყოლა - სინამდვილეში, თქვენ უნდა გადაწეროთ კოდი, მინიმუმამდე დაიყვანოთ ასეთი სიტუაციების წარმოშობის ალბათობა.

    ერთ-ერთი ფაქტორი, რაც არ უნდა უცნაურად ჟღერდეს, ხანგრძლივობის შემცირებაა.

    თქვენ შეგიძლიათ შეამციროთ ტრანზაქციის ხანგრძლივობა:

    1. ალგორითმის გადაწერა

    2. მოთხოვნის ხელახლა ჩაწერით (უფრო სწრაფი მოთხოვნა ამცირებს მაგიდებზე რთული ტრანზაქციების ჩაკეტვის ალბათობას, რაც ზოგჯერ შეიძლება არც იყოს მოთხოვნაში!)

    2.1 დაკარგული დაფარვის ინდექსის დამატება (ზოგჯერ ინდექსი არა მხოლოდ აჩქარებს მოთხოვნას, არამედ ამცირებს მონაცემთა წაკითხვის არეალს, რაც ამცირებს დაბლოკვის ალბათობას)

    3. ტრანზაქციის დროს დამუშავებული მონაცემების რაოდენობის შემცირება (ხაზოვანი სიჩქარის გარდა, ჩვენ ასევე გვახსოვს დაბლოკვის ესკალაცია)

    4. აღჭურვილობის პროდუქტიულობის გაზრდა თითოეული ნაკადის ფარგლებში

    მოთხოვნის შესრულების დრო

    1) სხვადასხვა მომხმარებელს შეუძლია სხვადასხვა მონაცემებთან პარალელურად მუშაობა
    2) სხვადასხვა მომხმარებლებმა უნდა იმუშაონ მკაცრად თანმიმდევრულად იმავე მონაცემებთან

    თუმცა, შესაძლებელია საკეტების გამოყენების ოპტიმიზაცია, რითაც შემცირდება ლოდინის საერთო დრო.

    როგორ მუშაობს დაბლოკვა (ამ აბზაცის წაკითხვა არ გჭირდებათ)

    სპეციალური SQL Server მოდული, Lock Manager, ამუშავებს საკეტებს. მისი ამოცანები მოიცავს:

    • საკეტების შექმნა და დაყენება;
    • განბლოკვა;
    • ბლოკირების ესკალაცია;
    • საკეტის თავსებადობის განსაზღვრა;
    • ჩიხების აღმოფხვრა და მრავალი სხვა.

    როდესაც მომხმარებელი ითხოვს მონაცემების განახლებას ან წაკითხვას, DBMS ტრანზაქციის მენეჯერი გადასცემს კონტროლს DBMS დაბლოკვის მენეჯერს, რათა დადგინდეს, დაიბლოკა თუ არა მოთხოვნილი რესურსები და, თუ ასეა, შეესაბამება თუ არა მოთხოვნილი დაბლოკვა მიმდინარე რესურსს. თუ საკეტები შეუთავსებელია, მიმდინარე ტრანზაქციის შესრულება გადაიდო მანამ, სანამ მონაცემები არ განიბლოკება. მონაცემების ხელმისაწვდომობის შემდეგ, დაბლოკვის მენეჯერი იძენს მოთხოვნილ დაბლოკვას და კონტროლს უბრუნებს ტრანზაქციის მენეჯერს.

    მთავარი მიზეზი, რომელიც ამცირებს შესრულებას, არის დაბლოკვა

    დაბლოკვის მოლოდინი არის მუშაობის მთავარი პრობლემა მრავალმოთამაშიან რეჟიმში. და ეს გასაგებია, რადგან ისინი ზრდის ოპერაციების მოლოდინის დროს და, შესაბამისად, რეაგირების დროს. შესაძლებელია თუ არა იმის თქმა, რომ საკეტებზე ლოდინი არ არის სწორი და შეცდომა მრავალ მომხმარებლის სისტემაში? ამის თქმა არ შეიძლება, რადგან რესურსების დაბლოკვის მექანიზმი თავად უზრუნველყოფს მონაცემთა მთლიანობას. ჩაკეტვის მექანიზმის გამოყენებით, თანმხლები მონაცემები იწერება შესაბამისად.

    განსხვავება აუცილებელ და არასაჭირო საკეტებს შორის

    როდესაც მომხმარებელი ატყობინებს შეცდომის მოლოდინში საკეტს, მაშინ მისი გადმოსახედიდან ეს ყოველთვის შეცდომაა, რადგან მაგალითად ის ერევა მის მუშაობაში - იზრდება მისი სამუშაოს დასრულებას დრო.

    გამოცდილება გვთავაზობს მარტივ წესს: თუ მოთხოვნის შესრულების დროის ნახევარზე მეტი რეალურად ელოდება დაბლოკილ რესურსს, მაშინ უნდა ნახოთ: შესაძლოა ჩაკეტვის ნაწილის ოპტიმიზაცია და რესურსის დაბლოკვის დრო შემცირდეს.

    აქ, თითქოს შემთხვევით, შემოგთავაზებთ განმარტებას:

    ბლოკზე ველოდები არის სიტუაცია, რომელიც ხდება მაშინ, როდესაც ორი მომხმარებელი ცდილობს ერთი და იგივე მონაცემების ერთდროულად გადაღებას. ამ შემთხვევაში, ერთ-ერთი მომხმარებელი იბლოკება, ანუ უნდა დაელოდოს პირველი მომხმარებლის ტრანზაქციის დასრულებას.

    ტრანზაქცია არის გამოთვლებისა და ოპერაციების ერთობლიობა მონაცემებით (ყველაზე თვალშისაცემი მაგალითია დოკუმენტის განთავსებისას) შესრულებული როგორც ერთი მთლიანობა. ნებისმიერი ტრანზაქციის ოპერაციების შეუსრულებლობა იწვევს მთლიანი ტრანზაქციის გაუქმებას.

    ასე რომ, მრავალ მომხმარებლის ინფობაზების მომხმარებლებს ხშირად შეუძლიათ უჩივიან, რომ შეუძლებელია მუშაობა ამ საკეტების გამო, მაშინ როცა კოდს შეიძლება რეალურად ჰქონდეს საკეტები, რომლებიც არ არის საჭირო ამ ადგილას (ზედმეტად).
    და ასევე კონფიგურაციის კოდში, ისინი შეიძლება არ იყოს წარმოდგენილი მათ შესახებ, მაგალითად, აქ http://kb.1c.ru/articleView.jsp?id=30 (სტატია არის წიგნის ფრაგმენტი; P.S. Belousov, A. V.Ostroverh "1C: Enterprise: 8.0-დან 8.1-მდე." მე გთავაზობთ გამარტივებულ გზას ახსნას განსხვავებები საკეტებს შორის მარტივი მაგალითიᲘსე:

    თქვენს კონფიგურაციაში 1C: Enterprise რეჟიმში შექმენით ორი იდენტური ინვოისი საქონლის იგივე შემადგენლობით. მაგრამ აუცილებლად მიუთითეთ სხვადასხვა მიმღები საწყობები.
    გამოქვეყნების დამუშავების კოდში თქვენ უნდა დაამატოთ სტრიქონი ეკრანზე გამოსახული მესიჯით (ან სხვა კოდი, რომელსაც შეუძლია შეაფერხოს გამოქვეყნების დამუშავების შესრულება 21 წამით (დაბლოკვის დრო დგება 20 წამის შემდეგ, თუ პარამეტრები ნაგულისხმევია)) .
    განათავსეთ ორი დოკუმენტი.
    თუ დრო დადგა და ლოგიკურად საქონელი სხვადასხვა საწყობში მოდის, აპლიკაციაში არის ზედმეტი ჩამკეტები. ბიზნეს ლოგიკა (განიხილეთ საღი აზრი) აქ არ უნდა იყოს დაბლოკვა.
    თუ ახლა ამ ორ ინვოისში ერთნაირ საწყობებს ვაკეთებთ. მაშინ ერთდროული შესრულების მცდელობის შედეგად შექმნილი დაბლოკვა გამოიწვევს აუცილებელ დაბლოკვას და ეს კარგია!

    იმათ. სანამ ინვოისი ცვლის ბალანსს საწყობში, მეორემ უნდა დაელოდოს.

    რა თქმა უნდა, ეს მარტივი მაგალითიც კი ბევრ კითხვას ტოვებს. მაგალითად, რა მოხდება, თუ დოკუმენტები არის ერთი მიმწოდებლისგან და მასზე დავალიანება "გადაადგილდება". და თუ მოძრაობს არა მხოლოდ საწყობში არსებული ნაშთები, არამედ რამდენიმე რეესტრი და სხვადასხვა ტიპის დოკუმენტი.
    მაგრამ ყველაზე მნიშვნელოვანი კითხვაა: რომელი ბიზნეს ლოგიკით არ უნდა არსებობდეს ბლოკირება. ვინ განსაზღვრავს ამ ბიზნეს ლოგიკას და სად ბლოკირების კონტექსტში? მაგრამ მოდით ვისაუბროთ ყველაფერზე თანმიმდევრობით.

    გადაჭარბებული საკეტები არის არასაჭირო საკეტები, რომლებიც არ არის საჭირო მონაცემთა მთლიანობის უზრუნველსაყოფად და ამავდროულად ამცირებს სისტემის მთლიან მუშაობას, ზრდის მთლიანი შეფერხების დროს - საკეტებზე ლოდინი.
    აუცილებელი ჩაკეტვა ხდება მაშინ, როდესაც ორი მომხმარებელი იძენს ერთსა და იმავე რესურსს (მონაცემთა ობიექტებს). თუ მომხმარებლები მუშაობენ არა გადახურვის რესურსებთან, მაგრამ ელოდებიან საკეტს, მაშინ დაბლოკვა ზედმეტად ითვლება.

    ზედმეტობის ჩაკეტვის ყველაზე გასაგები კრიტერიუმებია:

    1. ორმხრივი საკეტები;

    2. ბლოკირების დონე (არეალი) არის საჭიროზე მაღალი (როგორც ბლოკირების დონის გაზრდის განსაკუთრებული შემთხვევა, ე.წ. ესკალაცია);

    3. ჩაკეტვის დრო უფრო გრძელია, ვიდრე საკეტი ობიექტის „რეალური“ გამოყენების დრო.

    1C: Enterprise მეტამონაცემების კონტექსტში პრობლემების დაჯგუფების შესახებ ინფორმაციის მიღების შემდეგ, გირჩევთ ყურადღება მიაქციოთ პირველ რიგში შემდეგ ობიექტებს:

    • მუდმივები
    • ქვემიმდევრობა
    • საბუღალტრო რეგისტრები
    • დაგროვების რეგისტრები
    • ინფორმაციის რეგისტრები
    • კალკულაციის რეგისტრები

    1) ბოლო დრომდე იყო ცნობილი რეკომენდაცია, რომ არაფერი არ ჩაეწერა მუდმივებში. უკიდურეს შემთხვევაში, გააკეთეთ ეს ერთი მომხმარებლის ქვეშ და შემდეგ გახსოვდეთ, რომ სანამ მომხმარებელი "წერს" ერთ მუდმივობას, არა მხოლოდ ეს, არამედ ნებისმიერი სხვა მუდმივიც, სხვა მომხმარებლები "მოიცდიან". ამიტომ განსაკუთრებით საშიშია მუდმივების გამოყენება ტრანზაქციის დამუშავებისას. ყველა მუდმივის მნიშვნელობები ინახება ერთი რესურსი.

    სურათი გვიჩვენებს SCP კონფიგურაციის მუდმივების ფიზიკურ განთავსებას MS SQL Server 2005 მონაცემთა ბაზის ცხრილში.

    ეს ნიშნავს, რომ ერთი მუდმივის ჩაკეტვა დაბლოკავს ყველა მუდმივას. DBMS აწესებს ჩაკეტვას ცხრილის მთელ ერთ მწკრივზე, ე.ი. ყველა მუდმივებისთვის.

    თუმცა, პლატფორმის უახლეს გამოშვებებში, მუდმივების შენახვა შეიცვალა. ახლა თითოეული მუდმივი ცალკე ცხრილია. ძალიან ნუ გაიტაცებთ, თუმცა, თუ თქვენ შექმნით ათასობით ცხრილს, შეგიძლიათ მიიღოთ საკეტი სამაგისტრო ბაზაზე.

    ყურადღება, თუ თქვენი კონფიგურაცია დიდი ხანია არსებობს, მაშინ შეგიძლიათ შეცვალოთ შენახვის ფორმატი "რესტრუქტურირებით" ტესტირებაში და კონფიგურატორის შესწორებაში.

    2) შეწყვიტე Sequence მეტამონაცემების ობიექტის გამოყენება. ქირურგიული პროცედურების დროს მოძრაობებიდან მაინც, ჩატარდეს არაოპერაციული პროცედურების დროს (დამატებითი პროცედურები). ნახეთ, როგორ ხორციელდება იგი უახლესი ვერსიები UPP.

    3) თუ სისტემა ახორციელებს გადაადგილების ონლაინ აღრიცხვას სააღრიცხვო რეესტრში მრავალ მომხმარებლის რეჟიმში, მაშინ რეკომენდებულია:

    • ჯამების გამოყოფის რეჟიმის ჩართვა ამ რეესტრისთვის;
    • არ გამოიყენოთ რეესტრის ბალანსის კონტროლი ოპერატიული მუშაობის დროს.

    4) დაგროვების რეესტრში, იმ შემთხვევებში, როდესაც არ არის საჭირო „ოპერატიული“ მონაცემების მოპოვება, შეგიძლიათ ჩართოთ ჯამების დაყოფა, რაც გაზრდის მონაცემთა ჩაწერის პარალელურობას და ზოგადად დააჩქარებს მუშაობას. ყურადღებით დააკვირდით გაზომვებს, რათა "ნარჩენები" მიიღოთ მაქსიმალური დეტალებით გაზომვებში.

    5) პლატფორმის მიერ შექმნილი ზოგიერთი ზედმეტი საკეტის მოშორება შეგიძლიათ მხოლოდ . კონფიგურაციის ავტომატური მუშაობის რეჟიმში, პლატფორმა "იღებს" დაბლოკვის რესურსებს. უპრობლემოდ ფასი ავტომატური რეჟიმი- საკეტები შესაძლებელია ინდექსის დიაპაზონის საზღვრებში, ჩაკეტვა ცარიელ მაგიდაზე და საკეტის ესკალაცია.

    ეს საკეტები მთლიანად ქრება ტრანზაქციის მონაცემებიდან. ანუ ეს გადაკეტვა შეუძლებელი იქნება კონტროლირებად რეჟიმში მუშაობისას.

    მე უკვე ვთქვი "მართული საკეტები" და "მართული რეჟიმი" რამდენჯერმე. თქვენ უნდა გესმოდეთ, რომ არსებობს ორი ტიპის საკეტები:
    DBMS საკეტები ავტომატურად ინსტალირებულია DBMS დონეზე მოთხოვნების შესრულებისას.
    1C: საწარმოს საკეტები დაინსტალირებულია ავტომატურად მონაცემთა ჩაწერისას (შეცვლის) და ყოველთვის ხელით მონაცემების წაკითხვისას.

    ზედმიწევნითი მკითხველი იტყვის, რომ 1C ასევე იყოფა ობიექტურ და არაობიექტურ საკეტებად, მაგრამ ახლა ამ მიდგომას არ შევეხებით.

    მაგრამ მე აღვნიშნავ, რომ ის უფრო მეტ მოთხოვნას აწესებს 1C სპეციალისტის კვალიფიკაციასა და გამოცდილებაზე.

    6) დაკარგული ინდექსები (განსაკუთრებით in რთული კითხვები) ეს არის ზოგადად მთავარი ფაქტორი საჭიროზე მაღალი დონის დაბლოკვის წარმოქმნისას. იმათ. პარადოქსი, ერთი მხრივ, მე ვთქვი, რომ მოთხოვნის ოპტიმიზაციამდე მე ვთქვი, რომ ჯერ უნდა დაათვალიეროთ საკეტები, მაგრამ ახლა ვამბობ, რომ საკეტების ოპტიმიზაციისთვის საჭიროა შეკითხვის ოპტიმიზაცია. მე მაქვს საბაბი, კონფიგურაციის მართულ საკეტებზე გადართვა ამცირებს არასაჭირო ჩაკეტვას არაოპტიმალური მოთხოვნის შემთხვევაშიც კი. ეს ხდება ტრანზაქციის იზოლაციის დონის შემცირების გამო, რაც, თავის მხრივ, აძლევს DBMS საკეტის მენეჯერს ნაკლებ მიზეზს გადაჭარბებული დაბლოკვის დაწესებისთვის.

    გადაჭარბებული ჩაკეტვის ძირითადი მიზეზები (ზემოთ რომ შევაჯამოთ)

    - დიზაინის შეცდომები
    (პარალელიზმის ხარისხი განისაზღვრება იმით, თუ რამდენად წვრილად არის დაჭრილი მონაცემები: პარალელური მუშაობა ცხრილის ორ სტრიქონთან შესაძლებელია, ერთ მწკრივთან მუშაობა მხოლოდ თანმიმდევრულად მოხდება)
    (შეცდომები მეტამონაცემების გამოყენებაში: მუდმივების ჩაწერა, თანმიმდევრობა, ოპერაციული აღრიცხვა სააღრიცხვო რეესტრებზე)
    — გადაჭარბებული ბლოკირება ავტომატური რეჟიმის ბრალის გამო (პლატფორმა-DBMS კომბინაცია).
    - არაოპტიმალური შეკითხვის შესრულება
    (მაგალითად, ცხრილის სკანირებისას, მთელი ცხრილი იკეტება - ზედმეტი ტერიტორია
    და ბლოკირების დრო იზრდება - გადაჭარბებული დრო, დაბლოკვის დამატებითი რაოდენობა ზრდის დაბლოკვის ესკალაციის ალბათობას)

    როგორც ხედავთ, საკეტების ოპტიმიზაციის ამოცანა "მრავალმხრივია". თქვენ უნდა იყოთ მაქსიმალურად მკაფიო „კონტექსტის“ შესახებ, რამაც გამოიწვია პრობლემა. რა რესურსებზე, რა კოდზე. რამდენად არის ეს დაბლოკვა ნამდვილად საჭირო, თუ ზედმეტია?

    ბავშვს და ზრდასრულს ყელის ტკივილი აქვთ. როდესაც ექიმი სვამს კითხვას „რა სჭირს?“, ბავშვი ექიმს შეხედავს და ყვირის (მერწმუნეთ, ვიცი), ზრდასრული კი მიუთითებს დაავადების სიმპტომებზე. ეს აშკარა განსხვავებები ექიმს მიჰყავს სხვადასხვა მეთოდებიპრობლემის იდენტიფიკაცია.
    ბავშვთან ერთად ექიმმა უნდა შეასრულოს ბევრიტესტები, მონაცემების შეგროვება, მათი შერწყმა, ანალიზის ჩატარება და მხოლოდ ამის შემდეგ გააკეთეთ რეკომენდაციები. ზრდასრულთან კი ის დასვამს რამდენიმე კითხვას და, რადგან საწყისი მონაცემების რაოდენობა მცირეა, ანალიზისა და პრობლემის დადგენის დრო მნიშვნელოვნად ნაკლები იქნება. შედეგად, რეკომენდაციები გაცილებით ადრე გაიცემა.

    ისარგებლეთ ჩვენი სერვისებით და გექნებათ მეტი შესაძლებლობა, გააანალიზოთ პრობლემა და იპოვოთ გამოსავალი უფასოდ!

    IN Ბოლო დროსმომხმარებლები და ადმინისტრატორები სულ უფრო და უფრო იწყებენ ჩივილს, რომ ახალი 1C კონფიგურაციები შემუშავებულია საფუძველზე მართული აპლიკაცია, იმუშავეთ ნელა, ზოგიერთ შემთხვევაში მიუღებლად ნელა. ნათელია, რომ ახალი კონფიგურაციები შეიცავს ახალ ფუნქციებს და შესაძლებლობებს და, შესაბამისად, უფრო მოთხოვნადია რესურსებით, მაგრამ მომხმარებელთა უმეტესობას არ ესმის, რა გავლენას ახდენს პირველ რიგში 1C-ის მუშაობაზე ფაილის რეჟიმში. შევეცადოთ გამოვასწოროთ ეს ხარვეზი.

    ჩვენში, ჩვენ უკვე შევეხეთ დისკის ქვესისტემის მუშაობის გავლენას 1C სიჩქარეზე, თუმცა ამ კვლევასშეშფოთებული ადგილობრივი გამოყენებააპლიკაციები ცალკე კომპიუტერზე ან ტერმინალის სერვერი. ამავდროულად, მცირე განხორციელების უმეტესობა მოიცავს ფაილების მონაცემთა ბაზასთან მუშაობას ქსელში, სადაც მომხმარებლის ერთ-ერთი კომპიუტერი ან გამოყოფილი კომპიუტერი გამოიყენება სერვერად. ფაილის სერვერიეფუძნება ჩვეულებრივ, ყველაზე ხშირად ასევე იაფ კომპიუტერს.

    1C-ზე რუსულენოვანი რესურსების მცირე შესწავლამ აჩვენა, რომ ამ საკითხს გულმოდგინედ აარიდებთ თავს, თუ პრობლემები წარმოიქმნება, ჩვეულებრივ რეკომენდებულია კლიენტ-სერვერზე ან ტერმინალის რეჟიმში გადასვლა. ასევე თითქმის საყოველთაოდ მიღებულია, რომ მართულ აპლიკაციაზე კონფიგურაციები ჩვეულებრივზე ბევრად ნელა მუშაობს. როგორც წესი, არგუმენტები "რკინაა": "ბუღალტრული აღრიცხვა 2.0 უბრალოდ გაფრინდა და "ტროიკა" ძლივს გადავიდა, რა თქმა უნდა, ამ სიტყვებში არის გარკვეული სიმართლე, ასე რომ, მოდით შევეცადოთ გაერკვნენ.

    რესურსის მოხმარება, ერთი შეხედვით

    სანამ ამ კვლევას დავიწყებდით, ჩვენ საკუთარ თავს დავსახავდით ორ მიზანს: გაერკვია, არის თუ არა მართული აპლიკაციებზე დაფუძნებული კონფიგურაციები უფრო ნელი ვიდრე ჩვეულებრივი კონფიგურაციები, და რომელ კონკრეტულ რესურსებს აქვთ პირველადი გავლენა შესრულებაზე.

    ტესტირებისთვის ჩვენ ავიღეთ ორი ვირტუალური მანქანა Windows კონტროლისერვერი 2012 R2 და Windows 8.1, შესაბამისად, მათ აძლევს მასპინძელი Core i5-4670 2 ბირთვს და 2 GB ოპერატიული მეხსიერებას, რაც შეესაბამება დაახლოებით საშუალო საოფისე მანქანას. სერვერი განთავსდა RAID 0 მასივზე ორიდან, ხოლო კლიენტი განთავსდა ზოგადი დანიშნულების დისკების მსგავს მასივზე.

    როგორც ექსპერიმენტული საფუძვლები, ჩვენ შევარჩიეთ Accounting 2.0, გამოშვების რამდენიმე კონფიგურაცია 2.0.64.12 , რომელიც შემდეგ განახლდა 3.0.38.52 , ყველა კონფიგურაცია ამოქმედდა პლატფორმაზე 8.3.5.1443 .

    პირველი, რაც ყურადღებას იპყრობს, არის ტროიკის საინფორმაციო ბაზის გაზრდილი ზომა, რომელიც მნიშვნელოვნად გაიზარდა, ისევე როგორც RAM-ის გაცილებით დიდი მადა:

    ჩვენ მზად ვართ მოვისმინოთ ჩვეულებრივი: "რატომ დაამატეს ეს ამ სამს", მაგრამ ნუ ვიჩქარებთ. კლიენტ-სერვერის ვერსიების მომხმარებლებისგან განსხვავებით, რომლებიც საჭიროებენ მეტ-ნაკლებად კვალიფიციურ ადმინისტრატორს, ფაილის ვერსიების მომხმარებლები იშვიათად ფიქრობენ მონაცემთა ბაზის შენარჩუნებაზე. ასევე, ამ მონაცემთა ბაზების მომსახურე (წაიკითხეთ განახლება) სპეციალიზებული კომპანიების თანამშრომლები იშვიათად ფიქრობენ ამაზე.

    იმავდროულად, 1C საინფორმაციო ბაზა არის საკუთარი ფორმატის სრულფასოვანი DBMS, რომელიც ასევე მოითხოვს შენარჩუნებას, და ამისათვის არსებობს ინსტრუმენტიც კი ე.წ. საინფორმაციო ბაზის ტესტირება და კორექტირება. შესაძლოა, სახელმა სასტიკი ხუმრობა შეასრულა, რაც გარკვეულწილად გულისხმობს, რომ ეს არის ინსტრუმენტი პრობლემების გადასაჭრელად, მაგრამ დაბალი შესრულება ასევე პრობლემაა, ხოლო რესტრუქტურიზაცია და რეინდექსირება, ცხრილის შეკუმშვასთან ერთად, ცნობილი ინსტრუმენტებია მონაცემთა ბაზების ოპტიმიზაციისთვის ნებისმიერი DBMS ადმინისტრატორისთვის. . შევამოწმოთ?

    არჩეული მოქმედებების გამოყენების შემდეგ, მონაცემთა ბაზამ მკვეთრად "დაკარგა წონა", კიდევ უფრო პატარა გახდა, ვიდრე "ორი", რომელიც არავის არასდროს ჰქონია ოპტიმიზირებული და RAM-ის მოხმარება ასევე ოდნავ შემცირდა.

    შემდგომში, ახალი კლასიფიკატორებისა და დირექტორიების ჩატვირთვის, ინდექსების შექმნის შემდეგ და ა.შ. მონაცემთა ბაზის ზომა გაიზრდება, მთლიანობაში მონაცემთა ბაზა იქნება "სამი" მეტი ბაზა"ორი". თუმცა, ეს არ არის უფრო მნიშვნელოვანი, თუ მეორე ვერსია კმაყოფილი იყო 150-200 MB ოპერატიული მეხსიერებით, მაშინ ახალ გამოცემას სჭირდება ნახევარი გიგაბაიტი და ეს მნიშვნელობა უნდა იქნას გათვალისწინებული პროგრამასთან მუშაობისთვის საჭირო რესურსების დაგეგმვისას.

    წმინდა

    ქსელის გამტარუნარიანობა ერთ-ერთი ყველაზე დიდია მნიშვნელოვანი პარამეტრებიქსელური აპლიკაციებისთვის, განსაკუთრებით, როგორიცაა 1C ფაილის რეჟიმში, მნიშვნელოვანი რაოდენობის მონაცემების გადატანა ქსელში. მცირე საწარმოების ქსელების უმეტესობა აგებულია იაფი 100 მბიტი/წმ აღჭურვილობის საფუძველზე, ამიტომ დავიწყეთ ტესტირება 1C შესრულების ინდიკატორების შედარებით 100 მბიტ/წმ და 1 გბიტ/წმ ქსელებში.

    რა ხდება გაშვებისას ფაილის მონაცემთა ბაზა 1C ქსელში? კლიენტი საკმარისად ჩამოტვირთავს დროებით საქაღალდეებს დიდი რიცხვიინფორმაცია, განსაკუთრებით თუ ეს პირველი, „ცივი“ დასაწყისია. 100 მბიტ/წმ-ზე, მოსალოდნელია, რომ არხის სიგანეზე შევაჯამოთ და ჩამოტვირთვას შეიძლება მნიშვნელოვანი დრო დასჭირდეს, ჩვენს შემთხვევაში დაახლოებით 40 წამი (გრაფიკის გაყოფის ღირებულებაა 4 წამი).

    მეორე გაშვება უფრო სწრაფია, რადგან ზოგიერთი მონაცემი ინახება ქეშში და იქ რჩება გადატვირთვამდე. გიგაბიტიან ქსელზე გადასვლამ შეიძლება მნიშვნელოვნად დააჩქაროს პროგრამის ჩატვირთვა, როგორც „ცივი“ და „ცხელი“, ასევე დაცულია მნიშვნელობების თანაფარდობა. ამიტომ, ჩვენ გადავწყვიტეთ გამოგვეხატა შედეგი ფარდობითი მნიშვნელობებით, თითოეული გაზომვის უდიდესი მნიშვნელობა 100%-ად ავიღეთ:

    როგორც გრაფიკებიდან ხედავთ, Accounting 2.0 იტვირთება ნებისმიერი ქსელის სიჩქარით ორჯერ უფრო სწრაფად, 100 მბიტ/წმ-დან 1 გბიტ/წმ-ზე გადასვლა საშუალებას გაძლევთ ოთხჯერ დააჩქაროთ ჩამოტვირთვის დრო. განსხვავებები ოპტიმიზებული და არაოპტიმიზებული "ტროიკის" მონაცემთა ბაზებს შორის ამ რეჟიმშიუხილავი.

    ჩვენ ასევე შევამოწმეთ ქსელის სიჩქარის გავლენა მძიმე რეჟიმებზე მუშაობაზე, მაგალითად, ჯგუფური გადარიცხვების დროს. შედეგი ასევე გამოიხატება ფარდობით მნიშვნელობებში:

    აქ უფრო საინტერესოა, 100 მბიტ/წმ ქსელში "სამი" ოპტიმიზირებული ბაზა მუშაობს იმავე სიჩქარით, როგორც "ორი", ხოლო არაოპტიმიზებული ორჯერ ცუდ შედეგს აჩვენებს. გიგაბიტზე კოეფიციენტები იგივე რჩება, არაოპტიმიზებული "სამი" ასევე ნახევრად ნელია, ვიდრე "ორი", ხოლო ოპტიმიზებული ერთი მესამედით ჩამორჩება. ასევე, 1 გბიტ/წმ-ზე გადასვლა საშუალებას გაძლევთ სამჯერ შეამციროთ შესრულების დრო 2.0 გამოცემისთვის და ნახევრად 3.0 გამოცემისთვის.

    იმისათვის, რომ შევაფასოთ ქსელის სიჩქარის გავლენა ყოველდღიურ მუშაობაზე, ჩვენ გამოვიყენეთ შესრულების გაზომვათითოეულ მონაცემთა ბაზაში წინასწარ განსაზღვრული მოქმედებების თანმიმდევრობის შესრულება.

    სინამდვილეში, ყოველდღიური ამოცანებისთვის, ქსელის გამტარუნარიანობა არ არის შეფერხება, არაოპტიმიზებული "სამი" მხოლოდ 20% -ით ნელია ვიდრე "ორი", და ოპტიმიზაციის შემდეგ აღმოჩნდება იგივე უფრო სწრაფი - რეჟიმში მუშაობის უპირატესობებია. აისახა თხელი კლიენტი. 1 გბიტ/წმ-ზე გადასვლა არ აძლევს ოპტიმიზებულ ბაზას რაიმე უპირატესობებს და არაოპტიმიზებული და ორივე იწყებს მუშაობას უფრო სწრაფად, რაც აჩვენებს მცირე განსხვავებას მათ შორის.

    ჩატარებული ტესტებიდან ირკვევა, რომ ქსელი ახალი კონფიგურაციებისთვის არ არის ბარიერი და მართული აპლიკაცია ჩვეულებრივზე უფრო სწრაფად მუშაობს. თქვენ ასევე შეგიძლიათ რეკომენდაცია გაუწიოთ 1 გბიტ/წმ-ზე გადართვას, თუ მძიმე ამოცანები და მონაცემთა ბაზის ჩატვირთვის სიჩქარე გადამწყვეტია თქვენთვის, ახალი კონფიგურაციები საშუალებას გაძლევთ ეფექტურად იმუშაოთ თუნდაც 100 Mbit/s ნელი ქსელებში.

    რატომ არის 1C ნელი? ჩვენ მას შემდგომში განვიხილავთ.

    სერვერის დისკის ქვესისტემა და SSD

    წინა სტატიაში ჩვენ მივაღწიეთ 1C შესრულების ზრდას SSD-ზე მონაცემთა ბაზების განთავსებით. იქნებ სერვერის დისკის ქვესისტემის მუშაობა არასაკმარისია? ჩვენ გავზომეთ დისკის სერვერის მუშაობა ჯგუფური მუშაობის დროს ერთდროულად ორ მონაცემთა ბაზაში და მივიღეთ საკმაოდ ოპტიმისტური შედეგი.

    მიუხედავად შემავალი/გამომავალი ოპერაციების შედარებით დიდი რაოდენობით წამში (IOPS) - 913, რიგის სიგრძე არ აღემატებოდა 1,84-ს, რაც ძალიან კარგი შედეგია ორდისკიანი მასივისთვის. ამის საფუძველზე შეგვიძლია ვივარაუდოთ, რომ ჩვეულებრივი დისკებისგან დამზადებული სარკე საკმარისი იქნება ნორმალური ოპერაცია 8-10 ქსელის კლიენტი მძიმე რეჟიმში.

    ასე რომ, საჭიროა SSD სერვერზე? ამ კითხვაზე პასუხის საუკეთესო გზა არის ტესტირება, რომელიც ჩვენ განვახორციელეთ მსგავსი მეთოდით. ქსელის კავშირიყველგან 1 გბიტი/წმ, შედეგი ასევე გამოიხატება ფარდობით მნიშვნელობებში.

    დავიწყოთ მონაცემთა ბაზის ჩატვირთვის სიჩქარით.

    შეიძლება ვინმესთვის გასაკვირი ჩანდეს, მაგრამ სერვერზე SSD არ ახდენს გავლენას მონაცემთა ბაზის ჩატვირთვის სიჩქარეზე. აქ მთავარი შემზღუდველი ფაქტორი, როგორც წინა ტესტმა აჩვენა, არის ქსელის გამტარუნარიანობა და კლიენტის შესრულება.

    მოდით გადავიდეთ გადაკეთებაზე:

    ზემოთ უკვე აღვნიშნეთ, რომ დისკის შესრულება საკმაოდ საკმარისია მძიმე რეჟიმებში მუშაობისთვისაც კი, ამიტომ SSD-ის სიჩქარეზეც არ იმოქმედებს, გარდა არაოპტიმიზებული ბაზისა, რომელიც SSD-ზე დაეწია ოპტიმიზებულს. სინამდვილეში, ეს კიდევ ერთხელ ადასტურებს, რომ ოპტიმიზაციის ოპერაციები აწყობს ინფორმაციას მონაცემთა ბაზაში, ამცირებს შემთხვევითი I/O ოპერაციების რაოდენობას და ზრდის მასზე წვდომის სიჩქარეს.

    ყოველდღიურ ამოცანებში სურათი მსგავსია:

    მხოლოდ არაოპტიმიზებული მონაცემთა ბაზა სარგებლობს SSD-ით. თქვენ, რა თქმა უნდა, შეგიძლიათ შეიძინოთ SSD, მაგრამ ბევრად უკეთესი იქნება, იფიქროთ მონაცემთა ბაზის დროულ შენარჩუნებაზე. ასევე, არ დაივიწყოთ დანაყოფის დეფრაგმენტაცია საინფორმაციო ბაზებისერვერზე.

    კლიენტის დისკის ქვესისტემა და SSD

    ჩვენ გავაანალიზეთ SSD-ის გავლენა ადგილობრივად დაყენებული 1C-ის მუშაობის სიჩქარეზე, რაც ითქვა, ასევე მართებულია ქსელის რეჟიმში მუშაობისთვის. მართლაც, 1C საკმაოდ აქტიურად იყენებს დისკის რესურსებს, მათ შორის ფონური და რუტინული ამოცანებისთვის. ქვემოთ მოყვანილ სურათზე ხედავთ, თუ როგორ წვდება Accounting 3.0 საკმაოდ აქტიურად დისკზე ჩატვირთვის შემდეგ დაახლოებით 40 წამის განმავლობაში.

    მაგრამ ამავე დროს, უნდა იცოდეთ, რომ სამუშაო სადგურისთვის, სადაც აქტიური მუშაობა ხორციელდება ერთი ან ორი საინფორმაციო მონაცემთა ბაზის საშუალებით, ჩვეულებრივი მასობრივი წარმოების HDD-ის შესრულების რესურსები საკმაოდ საკმარისია. SSD-ის შეძენამ შეიძლება დააჩქაროს ზოგიერთი პროცესი, მაგრამ თქვენ ვერ შეამჩნევთ რადიკალურ აჩქარებას ყოველდღიურ მუშაობაში, რადგან, მაგალითად, დატვირთვა შეზღუდული იქნება გამტარუნარიანობაქსელები.

    ნელი HDDშეუძლია შეანელოს ზოგიერთი ოპერაცია, მაგრამ თავისთავად არ შეიძლება გამოიწვიოს პროგრამის შენელება.

    ოპერატიული მეხსიერება

    იმისდა მიუხედავად, რომ ოპერატიული მეხსიერება ახლა უხამსად იაფია, ბევრი სამუშაო სადგური აგრძელებს მუშაობას იმ მეხსიერების რაოდენობით, რომელიც იყო დაინსტალირებული შეძენისას. სწორედ აქ ელის პირველი პრობლემები. გამომდინარე იქიდან, რომ საშუალო "ტროიკა" მოითხოვს დაახლოებით 500 მბ მეხსიერებას, შეგვიძლია ვივარაუდოთ, რომ 1 GB ოპერატიული მეხსიერების საერთო რაოდენობა არ იქნება საკმარისი პროგრამასთან მუშაობისთვის.

    ჩვენ შევამცირეთ სისტემის მეხსიერება 1 გბ-მდე და გავუშვით ორი საინფორმაციო ბაზა.

    ერთი შეხედვით, ყველაფერი არც ისე ცუდია, პროგრამამ მადა დაიკლო და კარგად ჯდება ხელმისაწვდომ მეხსიერებაში, მაგრამ არ უნდა დაგვავიწყდეს, რომ ოპერატიული მონაცემების საჭიროება არ შეცვლილა, მაშ სად წავიდა? დისკზე გადატვირთვა, ქეში, სვოპ და ა.შ., ამ ოპერაციის არსი არის ის, რომ არასაჭიროა ამ მომენტშიმონაცემები იგზავნება სწრაფი ოპერატიული მეხსიერებიდან, რომლის რაოდენობაც არ არის საკმარისი, დისკის მეხსიერების შენელებისთვის.

    სად მივყავართ? ვნახოთ, როგორ გამოიყენება სისტემის რესურსები მძიმე ოპერაციებში, მაგალითად, დავიწყოთ ჯგუფური გადაცემა ერთდროულად ორ მონაცემთა ბაზაში. პირველი სისტემაზე 2 GB ოპერატიული მეხსიერებით:

    როგორც ვხედავთ, სისტემა აქტიურად იყენებს ქსელს მონაცემების მისაღებად და პროცესორი დისკის დამუშავების დროს უმნიშვნელოა, მაგრამ არ არის შემზღუდველი ფაქტორი;

    ახლა მოდით შევამციროთ მეხსიერება 1 გბ-მდე:

    სიტუაცია რადიკალურად იცვლება, ძირითადი დატვირთვა ახლა მყარ დისკზე მოდის, პროცესორი და ქსელი უმოქმედოა, ელოდება სისტემას, რომ წაიკითხოს საჭირო მონაცემები დისკიდან მეხსიერებაში და იქ გაგზავნოს არასაჭირო მონაცემები.

    ამავდროულად, სუბიექტური მუშაობაც კი ორ ღია მონაცემთა ბაზაზე 1 GB მეხსიერების სისტემაზე აღმოჩნდა უკიდურესად არასასიამოვნო დირექტორიები და ჟურნალები, რომლებიც იხსნება მნიშვნელოვანი დაგვიანებით და დისკზე აქტიური წვდომით. მაგალითად, საქონლისა და მომსახურების ჟურნალის გახსნას დაახლოებით 20 წამი დასჭირდა და მთელი ამ ხნის განმავლობაში თან ახლდა დისკის მაღალი აქტივობა (ხაზგასმულია წითელი ხაზით).

    იმისათვის, რომ ობიექტურად შევაფასოთ RAM-ის გავლენა მართულ აპლიკაციაზე დაფუძნებული კონფიგურაციების შესრულებაზე, ჩვენ განვახორციელეთ სამი გაზომვა: პირველი მონაცემთა ბაზის ჩატვირთვის სიჩქარე, მეორე მონაცემთა დატვირთვის სიჩქარე და ჯგუფის ხელახალი გაშვება ერთ-ერთ მონაცემთა ბაზაში. . ორივე მონაცემთა ბაზა სრულიად იდენტურია და შეიქმნა ოპტიმიზებული მონაცემთა ბაზის კოპირებით. შედეგი გამოიხატება ფარდობით ერთეულებში.

    შედეგი თავისთავად მეტყველებს: თუ დატვირთვის დრო იზრდება დაახლოებით მესამედით, რაც ჯერ კიდევ საკმაოდ ასატანია, მაშინ მონაცემთა ბაზაში ოპერაციების შესრულების დრო სამჯერ იზრდება, ასეთ პირობებში რაიმე კომფორტულ სამუშაოზე საუბარი არ არის საჭირო. სხვათა შორის, ეს ის შემთხვევაა, როდესაც SSD-ის ყიდვამ შეიძლება გააუმჯობესოს სიტუაცია, მაგრამ ბევრად უფრო ადვილია (და იაფიც) გაუმკლავდე მიზეზს და არა შედეგებს და უბრალოდ იყიდო RAM-ის სწორი რაოდენობა.

    ოპერატიული მეხსიერების ნაკლებობა არის მთავარი მიზეზი, რის გამოც ახალ 1C კონფიგურაციებთან მუშაობა არასასიამოვნო აღმოჩნდება. კონფიგურაციები ბორტზე 2 გბ მეხსიერებით უნდა ჩაითვალოს მინიმალურად შესაფერისად. ამასთან, გაითვალისწინეთ, რომ ჩვენს შემთხვევაში შეიქმნა „სათბურის“ პირობები: მუშაობდა სუფთა სისტემა, მხოლოდ 1C და სამუშაო მენეჯერი. რეალურ ცხოვრებაში, ბრაუზერი ჩვეულებრივ ღიაა სამუშაო კომპიუტერზე, საოფისე კომპლექტი, მუშაობს ანტივირუსი და ა.შ. და ა.შ., ასე რომ, განაგრძეთ 500 მბ საჭიროება მონაცემთა ბაზაზე პლუს გარკვეული ზღვარი, რათა მძიმე ოპერაციების დროს არ შეგხვდეთ მეხსიერების ნაკლებობა და შესრულების მკვეთრი დაქვეითება.

    პროცესორი

    გაზვიადების გარეშე, ცენტრალურ პროცესორს შეიძლება ეწოდოს კომპიუტერის გული, რადგან ეს არის ის, რომელიც საბოლოოდ ამუშავებს ყველა გამოთვლას. მისი როლის შესაფასებლად, ჩვენ ჩავატარეთ ტესტების კიდევ ერთი ნაკრები, იგივე რაც RAM-ისთვის, რაც ამცირებს ხელმისაწვდომი რაოდენობას. ვირტუალური ხელსაწყობირთვები ორიდან ერთამდე, ხოლო ტესტი ჩატარდა ორჯერ 1 GB და 2 GB მეხსიერების მოცულობით.

    შედეგი საკმაოდ საინტერესო და მოულოდნელი აღმოჩნდა, მეტიც ძლიერი პროცესორისაკმაოდ ეფექტურად იღებდა დატვირთვას რესურსების ნაკლებობის პირობებში, დანარჩენ დროს რაიმე ხელშესახები სარგებელის გარეშე. 1C Enterprise (ფაილის რეჟიმში) ძნელად შეიძლება ეწოდოს აპლიკაციას, რომელიც აქტიურად იყენებს პროცესორის რესურსებს. რთულ პირობებში კი პროცესორი იტვირთება არა იმდენად თავად აპლიკაციის მონაცემების გაანგარიშებით, არამედ ზედნადები ხარჯების სერვისით: დამატებითი შეყვან/გამომავალი ოპერაციები და ა.შ.

    დასკვნები

    მაშ, რატომ არის 1C ნელი? უპირველეს ყოვლისა, ეს არის ოპერატიული მეხსიერების ნაკლებობა, ამ შემთხვევაში, ძირითადი დატვირთვა მოდის მყარ დისკზე და პროცესორზე. და თუ ისინი არ ანათებენ შესრულებით, როგორც ეს ჩვეულებრივ ხდება საოფისე კონფიგურაციებში, მაშინ მივიღებთ სტატიის დასაწყისში აღწერილ სიტუაციას - "ორი" კარგად მუშაობდა, მაგრამ "სამი" უღმერთო ნელია.

    მეორე ადგილზეა ქსელის შესრულება ნელი 100 მბიტი/წმ არხი შეიძლება იქცეს ნამდვილ ბოსტნეულად, მაგრამ ამავდროულად, თხელი კლიენტის რეჟიმს შეუძლია შეინარჩუნოს მუშაობის საკმაოდ კომფორტული დონე ნელ არხებზეც კი.

    მაშინ ყურადღება უნდა მიაქციოთ დისკზე SSD-ის ყიდვა ნაკლებად სავარაუდოა, რომ იყოს კარგი ინვესტიცია, მაგრამ დისკის ჩანაცვლება უფრო თანამედროვეთ კარგი იდეა იქნება. განსხვავება თაობებს შორის მყარი დისკებიშეიძლება შეფასდეს შემდეგი მასალის გამოყენებით: .

    და ბოლოს პროცესორი. უფრო სწრაფი მოდელი, რა თქმა უნდა, არ იქნება ზედმეტი, მაგრამ მისი შესრულების გაზრდას აზრი არ აქვს, თუ ეს კომპიუტერი არ გამოიყენება მძიმე ოპერაციებისთვის: ჯგუფური დამუშავება, მძიმე ანგარიშები, თვის ბოლოს დახურვა და ა.შ.

    ვიმედოვნებთ, რომ ეს მასალა დაგეხმარებათ სწრაფად გაიგოთ კითხვა "რატომ არის 1C ნელი" და მოაგვაროთ ის ყველაზე ეფექტურად და ზედმეტი ხარჯების გარეშე.

    • ტეგები:

    გთხოვთ, ჩართოთ JavaScript სანახავად

    როგორ დავხუროთ პროგრამა, თუ ის იყინება და წყვეტს პასუხს. რატომ იყინება პროგრამები? ვინ არის დამნაშავე და რა უნდა გააკეთოს? ამ სტატიაში შევეცდებით გავაანალიზოთ ამ პრობლემის ძირითადი მიზეზები და გადაწყვეტილებები.

    ღია პროგრამამ შეწყვიტა თქვენს ქმედებებზე რეაგირება, კურსორი გაიყინა ან გადაიქცა ქვიშის საათად, თავად პროგრამის ფანჯარაში გამოჩნდება შეტყობინება "არ პასუხობს", აწკაპუნებთ ყველაფერზე, ნერვიულობთ და არ იცით რა გააკეთოთ?

    პირველ რიგში, დამშვიდდით და დაასრულეთ სტატიის კითხვა. აბსოლუტურად ყველა აღმოჩნდა ამ სიტუაციაში ყველა პროგრამა დაწერილია ხალხის მიერ, ამიტომ ისინი არ არიან იდეალური. მთავარი, რაც უნდა გვესმოდეს, არის ის, თუ როგორ მოვიქცეთ სწორად ასეთ შემთხვევებში და რატომ ხდება ეს.

    პირველ რიგში, თქვენ უნდა გაარკვიოთ, არის თუ არა პროგრამა ნამდვილად გაყინული და შეინიშნება თუ არა ზემოთ აღწერილი ყველა სიმპტომი, ან უბრალოდ გაუშვით რესურსზე ინტენსიური აპლიკაცია ან პროგრამა, საიდანაც თქვენი სისტემა არ იყინება, არამედ უბრალოდ ანელებს.

    რა არ უნდა გააკეთოთ, თუ პროგრამა იყინება

    მოდით შევხედოთ ყველაზე საერთო შეცდომებირასაც ბევრი დამწყები მომხმარებელი აკეთებს, რითაც კარგავს დროს.

    - ყვირილი, კლავიატურაზე დარტყმა (ეს ნამდვილად არ არის მისი ბრალი).
    - არ არის საჭირო იგივე პროგრამის ხელახლა გაშვების მცდელობა ან განსაკუთრებით სხვა პროგრამები - ეს მხოლოდ გააუარესებს სიტუაციას.
    — გამორთეთ დენი, გამორთეთ, გადატვირთეთ (ეს უკანასკნელი მეთოდია).

    რა უნდა გააკეთოს, თუ პროგრამა იყინება

    1. ვიდრე უფრო რადიკალურ მეთოდებზე გადახვიდეთ, სცადეთ მისი დახურვა დავალების ზოლში გაყინულ პროგრამაზე მაუსის მარჯვენა ღილაკით დაჭერით და შესაბამისი ელემენტის არჩევით.
    2. თუ ეს არ დაგვეხმარება, გადადით აპრობირებული მეთოდზე ამისთვის დაგვჭირდება ამოცანების მენეჯერის გაშვება. შეგიძლიათ დაურეკოთ დავალების მენეჯერს კლავიშთა კომბინაციის Ctrl + Shift + Esc (Windows 7) Ctrl + Alt + Del (Windows XP).

    ჩვენ გვაინტერესებს "აპლიკაციების" ჩანართი კომპიუტერზე ამჟამად გაშვებული ყველა აპლიკაცია. ჩვენ ვეძებთ გაყინულ აპლიკაციას (ჩემს მაგალითში ეს არის პროგრამა) და დააჭირეთ → დავალების დასრულება. როგორც წესი, ეს საკმარისია!! არ დამეხმარა → პუნქტი 3.
    3. რა უნდა გააკეთოს, თუ პროგრამა კვლავ გაყინავს? გადადით შემდეგ ჩანართზე → "პროცესები". ფაქტია, რომ ნებისმიერ პროგრამას, რომელსაც თქვენ აწარმოებთ თქვენს კომპიუტერში, აქვს მასთან დაკავშირებული გარკვეული პროცესები ან პროცესები. და პროგრამას, რომელიც ამჟამად გაყინულია, ასევე აქვს საკუთარი პროცესი, რომელიც შეგიძლიათ გაიგოთ პროგრამის მალსახმობზე მაუსის მარჯვენა ღილაკით და აირჩიეთ → "თვისებები". ჩემს მაგალითში ეს არის პროცესი → VideoConverter.exe

    პროცესების ჩანართის არჩევა → მოძებნეთ თქვენი პროცესი (ჩემს შემთხვევაში ეს არის „VideoConverter.exe“) და დააწკაპუნეთ → „პროცესის დასრულება“ ან, უბრალოდ დარწმუნებული რომ იყოთ, → დააწკაპუნეთ პროცესზე → „დასრულების პროცესის ხე“

    ასე, დახმარებით სტანდარტული საშუალებები Windows, პრობლემის მოგვარება შეგიძლიათ გაყინული პროგრამით. თქვენ ასევე შეგიძლიათ დახუროთ გაყინული პროგრამა გამოყენებით მესამე მხარის პროგრამები, როგორც პროგრამის მაგალითი

    თუ რომელიმე პროგრამამ შეწყვიტა რეაგირება, ის არ პასუხობს არც მაუსს და არც კლავიატურას და შესაძლოა გამოჩნდეს შეტყობინება „პროგრამა არ პასუხობს“, ამას ეწოდება გაყინული პროგრამა.

    ზოგჯერ ხდება ისე, რომ გაყინული პროგრამა ხელს არ უშლის თქვენს მუშაობას, მაგრამ ზოგჯერ, პირიქით, ერთი გაყინული პროგრამის გამო, მთელი OS-ის მუშაობა შეიძლება შენელდეს, ნებისმიერ შემთხვევაში, პრობლემა უნდა მოგვარდეს, რაღაც უნდა იყოს შესრულებულია.

    რა არ უნდა გააკეთოს:

    1) გამორთეთ შტეფსელი სოკეტიდან- ეს არის ყველაზე დიდი შეცდომა, რაც შეიძლება დაუშვა ამ სიტუაციაში. ელექტროენერგიის უეცარი გათიშვა ძალიან სტრესულია თქვენი კომპიუტერისთვის. ეს ელემენტი ასევე მოიცავს კომპიუტერის გამორთვას სისტემის ერთეულზე დაწყების ღილაკის გამოყენებით და გამორთვას კვების წყაროს გადამრთველის დაჭერით. ამ მეთოდების არსი იგივეა, თქვენ წყვეტთ ელექტროენერგიის მიწოდებას.

    2) დააჭირეთ გადატვირთვის ღილაკს– ეს ღილაკი მდებარეობს სისტემის ერთეულის წინა მხარეს და ემსახურება იძულებით გადატვირთვას. მასზე დაჭერა უნდა მოხდეს მხოლოდ ყველაზე უიმედო სიტუაციებში, როდესაც სხვა მეთოდები არ დაეხმარება.

    3) გააკეთეთ არასაჭირო მოძრაობები– თუ თქვენი პროგრამა იწყებს შენელებას გაყინული პროგრამის გამო ოპერაციული სისტემა, მაშინ ნებისმიერი არასაჭირო ქმედება მხოლოდ გააუარესებს სიტუაციას. არასაჭირო ქმედებებში ვგულისხმობ გაყინული პროგრამის გადატვირთვას (არავითარ შემთხვევაში არ უნდა გააკეთოთ ეს), სხვა პროგრამების გაშვება, დაწყების მენიუს ან სხვა მენიუს გახსნა. თუ სიტუაცია განსაკუთრებით კრიტიკულია, მაშინ უბრალოდ არ უნდა აწიოთ მაუსი, რადგან კურსორი შეიძლება გაიყინოს და პრობლემის გადაჭრა უფრო რთული იქნება.

    4) დაელოდეთ ძალიან დიდხანს– როგორც წესი, საკმარისია დაელოდოთ ხუთი წუთი, რათა გაიგოთ, რომ პროგრამა გაყინულია, თუ გაქვთ სუსტი კომპიუტერიმიეცით 15-20 წუთი, როგორც წესი, მეტი ლოდინი უსარგებლოა.

    5) იყავი ნერვიული- წიხლებით სისტემის ერთეულიან კლავიატურის მაგიდაზე დარტყმა არ უშველის საქმეს. მე კონკრეტულად დავწერე ეს პუნქტი, რადგან გაურკვეველი მიზეზების გამო ზოგჯერ ამას აკეთებენ ადამიანები (ალბათ ჩვენი წარსულის გამო, როცა ტელევიზორს არ სურდა მუშაობა, ჩვეულებრივ, ხელით ურტყამდნენ და ამან უშველა). კომპიუტერი არ არის მილის ტელევიზორი, ასე რომ არ დაარტყა მას.

    რა უნდა გაკეთდეს

    თქვენ უნდა სცადოთ პროგრამის დახურვა, თუ ზედა მარჯვენა კუთხეში ჯვარზე დაწკაპუნება და alt + f4 კომბინაცია არ დაგვეხმარება, მაშინ უნდა გააკეთოთ შემდეგი:

    დავალების მენეჯერის გასახსნელად დააჭირეთ კლავიშთა კომბინაციას:

    Windows xp-სთვის "Ctrl + Alt + Del".

    Windows 7-ისთვის "Ctrl + Shift + Esc".

    დავალების მენეჯერში გადადით "აპლიკაციების" ჩანართზე, თუ თქვენი პროგრამა ნაჩვენებია დავალების განყოფილებაში, აირჩიეთ იგი და დააჭირეთ ღილაკს "დასრულება". თუ დაუყოვნებლივ არ არის რეაქცია, თქვენ არ გჭირდებათ ამ ღილაკის ხელახლა დაჭერა, თქვენ უბრალოდ უნდა დაელოდოთ ცოტას. გარკვეული პერიოდის შემდეგ, გამოჩნდება ფანჯარა, რომელიც აფრთხილებს, რომ მონაცემები შეიძლება დაიკარგოს, თქვენ უნდა დააჭიროთ ღილაკს "დასრულება ახლა". მაგალითად, იხილეთ ეკრანის სურათი (მე დავასრულე სამუშაო პროგრამაასე რომ, თქვენი ტექსტი განსხვავებული იქნება, მაგრამ პრინციპი იგივეა).

    თუ ამ გზით ვერ შეწყვეტთ პროგრამას, დააწკაპუნეთ გაყინულ პროგრამაზე მაუსის მარჯვენა ღილაკით და ჩამოსაშლელი მენიუდან აირჩიეთ „გადასვლა პროცესზე“. თქვენ ავტომატურად გადახვალთ "პროცესების" ჩანართზე, საჭირო პროცესი უკვე მონიშნული იქნება, თქვენ უბრალოდ უნდა დააჭიროთ ღილაკს "პროცესის დასრულება".

    თუ გაყინული პროგრამა არ არის ნაჩვენები "აპლიკაციების" ჩანართში, მაშინ უნდა გადახვიდეთ "პროცესების" ჩანართზე, იპოვოთ გაყინული პროგრამის პროცესი და დაასრულოთ იგი. პროცესის მოძებნის უმარტივესი გზაა დასახელების მიხედვით, თქვენ ასევე შეგიძლიათ მოძებნოთ პროცესორის დატვირთვის ხარისხი, როგორც წესი, ეს პროცენტი დიდია.