Postgresql 8.3: প্রতি ক্যোয়ারীতে রিসোর্স খরচ সীমাবদ্ধ করুন


12

আমি উবুন্টু 8.04 হার্ডির জিওপ্যাসিয়াল ডেটা সঞ্চয় করতে PostgreSQL 8.3 + PostGIS 1.3 ব্যবহার করছি ।

পোস্টজিআইএসের এই বিশেষ সংস্করণটিতে buffer()খুব জটিল বিভাগগুলিতে গণনা করার সময় একটি বাগ থাকে , যার ফলে পুরো মেশিনটি আটকে না যাওয়া পর্যন্ত ক্যোয়ারীটিকে আরও এবং আরও বেশি মেমরি নিয়ে যায়।

আমি একটি পোস্টগ্রিজ এসকিউএল প্রক্রিয়া খুঁজছি যা এটি করতে পারে:

  • একটি নির্দিষ্ট ক্যোয়ারী দ্বারা ব্যবহৃত মেমরির খরচ (এবং সম্ভবত অন্যান্য সংস্থানগুলি) সীমাবদ্ধ করুন।
  • যাদের এক্সিকিউশন সময়টি একটি নির্দিষ্ট প্রান্তিকের চেয়ে বেশি হয়ে যায় সেগুলি স্বয়ংক্রিয়ভাবে বন্ধ করুন।

কোন ধারনা?


আপনি এমন কোনও সংস্করণ ব্যবহার করছেন কেন যাতে আপনার কামড়ে একটি বাগ থাকে? এমন একটি সংস্করণ ব্যবহার করুন যা স্থির হয়ে গেছে এবং আপনার সমস্যাটি চলে গেছে।
ফ্র্যাঙ্ক হিকেন্স

সত্য, তবে কখনও কখনও আমাদের কোডগুলিতে বাগ রয়েছে বা টুওউওকে বেশি সময় নেবে এমন কোয়েরি রয়েছে। আমি চাই যে লগ ত্রুটির বার্তাটি দিয়ে তারা মারা যায়।
আদম মতান

উত্তর:


9

মেমরির খরচ সীমাবদ্ধ করতে, মূল কনফিগারেশন প্যারামিটার work_mem। যেহেতু এটি ক্রিয়াকলাপ অনুসারে নয়, কোয়েরি অনুসারে প্রযোজ্য, আপনি এন পরিমাণে মেমরির পরিমাণ ব্যয় করতে চাইলে আপনি এটি সহজেই সেট করতে পারবেন না, তবে পছন্দসই ফলাফল পেতে আপনাকে কিছুটা টুইট ও টিউন করতে হবে।

এটি সার্ভার কোড বা এক্সটেনশনে বাগ এবং অন্যান্য মেমরির ফাঁসের ক্ষেত্রে তবে সহায়তা করে না। প্রক্রিয়া-নির্দিষ্ট সংস্থান দ্বারা নিয়ন্ত্রিত সীমাবদ্ধতার সাথে আপনি এটি নিয়ন্ত্রণ করতে পারেন ulimit। তবে আপনি যদি সীমাতে পৌঁছান এবং মেমরির বরাদ্দ ব্যর্থ হয়, আপনি কী হতে চান? এটি সম্ভবত খুব সুন্দর আচরণ করবে না। এই বাগগুলি ঠিক করা বা আলাদা সংস্করণ ব্যবহার করা ভাল।

স্টপ ক্যোয়ারী, যার মৃত্যুদন্ডের সময়টি একটি প্রান্তিক সময় পেরিয়ে গেছে `স্টেটমেন্ট_টাইমআউট 'প্যারামিটার ব্যবহার করুন, যেমন,

SET statement_timeout TO '10min';

গ্রেট। শুধু আমি যা খুঁজছিলাম।
আদম মতান

2

কটাক্ষপাত আছে Postgres উইকি :

কোনও নির্দিষ্ট ব্যবহারকারী, ক্যোয়ারী, বা ডাটাবেস কী কী সংস্থান গ্রহণ করে, বা অনুরূপভাবে অগ্রাধিকার সেট করতে কোনও ব্যবহারকারী / ক্যোয়ারী / ডাটাবেস অন্যের চেয়ে বেশি সংস্থান লাভ করে তা সীমাবদ্ধ করার জন্য পোস্টগ্রাএসকিউএল-তে কোনও সুবিধা নেই। সীমিত অগ্রাধিকার কী সম্ভব তা অর্জন করতে অপারেটিং সিস্টেমের সুবিধা ব্যবহার করা প্রয়োজন।

আপনি প্রতি ব্যবহারকারী বা প্রতি ডাটাবেসে পারফরম্যান্স সেটিংস সামঞ্জস্য করতে পারেন তবে নির্দিষ্ট প্রশ্নগুলি কখন বাতিল করতে হবে তা নয়।


+1 পুরো ক্লাস্টার কত পরিমাণে মেমরি ব্যবহার করতে পারে তার সর্বাধিক সেট করার বিষয়ে কী?
আদম মতান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.