টিম টিউন postgresql বিপুল পরিমাণে র‌্যামের জন্য


29

আমার দুটি অভিন্ন সার্ভার রয়েছে (হার্ডওয়্যারের নিরিখে), এগুলি উভয়ই উইন্ডোজ সার্ভারের ২০০২ r2 এর স্ট্যান্ডার্ড ইনস্টলেশন, ন্যূনতম সফ্টওয়্যার ইনস্টলড (মূলত আমার কোড এবং জেভিএম ইত্যাদি প্রয়োজনীয় স্টাফ) সহ।

এক সার্ভারে, আমি দ্বিতীয় সার্ভার postgresql 9.1 এ, 2007 সালে এসকিএল সার্ভার চালাচ্ছি। পারফরম্যান্স বি / এন এই 2 সার্ভারের পার্থক্যটি বিস্ময়কর, পোস্টগ্র্রেসক্লিতে এটি এতটাই খারাপ যে আমি আমার প্রাথমিক অনুশোচনা করছি "আসুন এসকিএল সার্ভার লাইসেন্সের পরিবর্তে পোস্টগ্রেএসএল ব্যবহার করি" আমার বসের ভাষণটি। আমরা একই কমান্ডের জন্য 30 সেকেন্ড বনাম 15 মিনিটের পার্থক্য নিয়ে কথা বলছি, এবং এটি কেবল এটিই একটি কমান্ড নয়, এটি কোনও প্রশ্ন বা কমান্ড আমি এটি ফেলেছি। তাদের উভয়েরই প্রায় একই তথ্য রয়েছে (রেকর্ডগুলি বিভিন্ন ক্রমে সন্নিবেশিত করা হয়েছিল) এবং উভয় ডাটাবেসে হুবহু একই কাঠামো / সূচিপত্র ইত্যাদি রয়েছে etc.

তবে আমি আশা করছি এটি কেবল পারফরম্যান্সের সুরের বিষয়। বিষয়টি হ'ল, এসকিএল সার্ভারটি সার্ভারে সমস্ত 32 জিগ র‌্যাম ব্যবহার করছে, যেখানে পোস্টগ্র্যাসেল কিছুই ব্যবহার করছে না, অবশ্যই একটি গিগের চেয়ে কম যদিও আমি আসলে এটি সূক্ষ্ম বিবরণে খুঁজে পাইনি।

আমি 20+ জিগ র‌্যাম ব্যবহার করতে কীভাবে পোস্টগ্র্যাস্কল পাব? এই সার্ভারগুলি এই ডেটাবেস স্টাফের জন্য বিশেষভাবে নির্মিত হয়েছিল, সুতরাং ডাটাবেস এবং সমর্থনকারী প্রক্রিয়াগুলি ব্যবহার না করে এমন কোনও মেষ আমার মতে নষ্ট হয়।


4
আপনি কি প্রাথমিক টিউনিংয়ে কিছু পরিবর্তন করেছেন? পদক্ষেপ 1: SET effective_cache_size=18G;(ডিফল্ট সেটিংস অত্যন্ত কম) বিটিডাব্লু: ধরে নেওয়া এটি একটি 64 বিট মেশিন (কোনও পিটিই নেই)

1
আপনি সত্যিই আমাদের অনেক সাহায্য করার জন্য পর্যাপ্ত পরিমাণ দিচ্ছেন না। "এটি স্লো" ব্যতীত আমরা আপনার ডেটাসেট সম্পর্কে কীভাবে জানতে পারি, আপনি এটি কীভাবে অ্যাক্সেস করছেন, কী ধরণের প্রশ্নগুলি সাধারণত ধীরে ধীরে চলতে থাকে, আপনার সার্ভারটি টিউন করার জন্য আপনি ইতিমধ্যে কী করেছেন (এবং সম্ভবত ভুল-সুর করেছেন)। প্রচুর কোর এবং মেমরি চ্যানেল সহ একটি লিনাক্স মেশিনে হেক, আপনি পোস্টগ্রেসকিএল ইনস্টল করার অনেক আগেই কৃপণ পারফরম্যান্স পেতে পারেন। আপনি কি সিপিইউ বা আইও আবদ্ধ? আপনার ইতিমধ্যে কোন অ-ডিফল্ট সেটিংস আছে? ধীরে ধীরে কি ধরণের প্রশ্ন?
স্কট মার্লো

2
পোস্টগ্র্রেস আপনার কথা বলার উপায়টিকে "র্যাম" ব্যবহার করে না। এটি প্রচুর পরিমাণে ক্যাচিংয়ের জন্য ওএস ফাইল সিস্টেম পৃষ্ঠার ক্যাশে নির্ভর করে, সুতরাং আপনি যখন কোনও সিস্টেমে চলমান সিস্টেমে র‌্যাম ব্যবহার দেখেন আপনি সাধারণত ওএস বাফার / ক্যাশে বিভিন্ন জিবি ব্যবহার করেন এবং পৃথক পোস্টগ্রিস ব্যাকএন্ড প্রক্রিয়াগুলি কেবলমাত্র কয়েকটি ব্যবহার করে দেখেন প্রতিটি কয়েক দশ এমবি।
dbenhur

1
এই লিঙ্কে দেখুন: tekadempiere.blogspot.ae/2014/09/... : এবং এখান থেকে আপনার সম্পদ ভিত্তিক সার্ভার মান খুঁজে pgtune.leopard.in.ua
Sajeev

সম্পর্কিত প্রশ্ন, আগ্রহের মধ্যে: স্ট্যাকওভারফ্লো.com
মাউন্টেন

উত্তর:


41

এর মাধ্যমে সূচনাপ্রাপ্ত অনেকগুলি টোকেবল কনস্ট্যান্ট রয়েছে postgres.conf। সর্বাধিক গুরুত্বপূর্ণগুলি হ'ল:

  • max_connections: একযোগে অধিবেশন সংখ্যা
  • work_mem : অন্তর্বর্তী ফলাফল যেমন হ্যাশ টেবিল, এবং বাছাইয়ের জন্য সর্বাধিক পরিমাণ মেমরি ব্যবহার করা উচিত
  • shared_buffers 'পিনড' বাফার স্পেসে উত্সর্গীকৃত মেমরির পরিমাণ।
  • effective_cache_size ওএস এর এলআরইউ বাফার দ্বারা ব্যবহৃত মেমরির পরিমাণ।
  • random_page_cost : ডিস্ক সিকের আপেক্ষিক ব্যয়ের জন্য একটি অনুমান।

max_connectionsপ্রয়োজনের তুলনায় উচ্চতর স্থাপন করা উচিত নয়, সংযোগগুলি ব্যর্থতার পরেও ব্যয় সংস্থানগুলি; বেশিরভাগ ক্ষেত্রে কোনও সংযোগ বাইরে অপেক্ষা করার চেয়ে ভিতরে অপেক্ষা করতে বেশি সময় ব্যয় করে। (একযোগের মূল্যে) একটি দুর্দান্ত নিয়ম-এর থাম্ব সূত্র হ'ল "স্পিন্ডেলের সংখ্যা + প্রসেসরের সংখ্যা + এক্স"

work_memকৌশলটি জটিল: প্রতিটি উপকোয়ারিতে প্রয়োগ করা যেতে পারে, তাই 5 এর সাথে একটি প্রশ্নের জন্য HASHJOINS5 * টাকা লাগতে পারে work_mem। এবং সবচেয়ে খারাপ পরিস্থিতিগুলির জন্য আপনার একাধিক সেশনও এই পরিমাণটি গ্রাস করার কথা ভাবা উচিত (এটি আবার রাখার কারণ)max_connections কম )।

shared_buffersis (IMHO) overrated। সাধারণত এটি উপলব্ধ "ফ্রি" মেমরির প্রায় 1/4 ... 1/2 সেট করার পরামর্শ দেওয়া হয়, তবে আমি এটি কম রাখি এবং সেট করিeffective_cache_size সমস্ত উপলব্ধ "ফ্রি" মেমরির জন্য ।

random_page_costডিস্কে সন্ধান + পড়ার জন্য ব্যয়। এটি তুলনামূলকভাবে sequential_disk_cost, যা 1। random_page_costএটি আধুনিক মেশিন এবং নেটওয়ার্ক স্টোরেজগুলির জন্য ডিফল্ট (4) খুব বেশি সেট করা থাকে, সাধারণত এটি 2 থেকে 1.x এর মধ্যে নামানো যায়। এসএসডি ডিস্কগুলির জন্য এমনকি এটি 1.0 এ সেট করে, যেহেতু এসএসডিগুলিতে প্রায় বিনামূল্যেই সন্ধান করা।


অসাধারণ! আমি কার্যকর_ ক্যাশে_সাইজের তাত্পর্যটি কখনই দেখিনি, সর্বদা কেবল ভাগ করা_বফার্স দিয়েই বোকা বানানো। এটি সত্যিই একটি বিশাল পার্থক্য করেছে। আমি পিগটিউনও চালিত করেছি এবং এটি শারদ_বাফারগুলির জন্য 20 গিগাবাইট 96 ব্যবহার করার পরামর্শ দিচ্ছে, তবে কার্যকর_ক্যাস_সাইজের জন্য 64 জিবি। ধন্যবাদ!

1
এফডব্লিউআইডাব্লু, আমি পোস্টগ্র্রেস ডক্সে প্রস্তাবিত এগুলি এবং অন্যান্য সেটিংস দিয়েছিলাম এবং আমাদের সার্ভারের জন্য একটি বিশ্লেষণ করেছি
mlissner

উত্তরের জন্য আপনাকে অনেক ধন্যবাদ। work_memযখন আমি max_connectionsডিফল্ট 100 এবং সার্ভার র‌্যামটি 32 গিগাবাইট (ডেডিকেটেড পোস্টগ্রিস সার্ভার) হয় তখন কী প্রস্তাবিত তা জানতে পারি ? আমি জানতাম আমার প্রতিদিনের প্রশ্নের উপর ভিত্তি করে এই টিউন করা দরকার। আমি কেবল ভাবছি যে আপনি যদি আমাকে "এক আকারের সমস্ত উত্তর ফিট করে" মান (বা একটি সূচনা পয়েন্টের মান) বলতে পারেন। 50MB খুব বড়? অনেক ধন্যবাদ.
সাগোন00

এটি আপনার মেশিনে সাধারণ সমবর্তী ক্রিয়াকলাপের উপর নির্ভর করে। 50 মিলিয়ন (তাদের 10..20M এর শীর্ষে) থাকা 100 টি সেশনগুলি প্রতিটি ফিট করতে পারে। বা, এটি নাও পারে। একটি ছাপ পেতে vmstat বা উপরে নজর রাখুন। প্লাস: এটি আপনার প্রশ্নের (এবং অন্যদের) উপর নির্ভর করে। শুধু পরিকল্পনা দেখুন।
ওয়াইল্ডপ্ল্যাসার

@ উত্তরপ্লেজার দ্রুত উত্তর দেওয়ার জন্য আপনাকে অনেক ধন্যবাদ। আমি একটি আকর্ষণীয় ওয়েবসাইট পেয়েছি pgtune.leopard.in.ua । আমি মনে করি এর ভিত্তিতে এর পরামর্শ এবং টিউন থেকে আমি 40MB প্রারম্ভিক পয়েন্ট হিসাবে ব্যবহার করব। চিয়ার্স।
সাগন00

20

পোস্টগ্রিএসকিউএল কনফিগারেশন টিউন করার জন্য আপনাকে প্যাগটিউন ব্যবহার করার কথা বিবেচনা করুন । পিজফাউন্ড্রি থেকে:

pgtune wimpy ডিফল্ট postgresql.conf গ্রহণ করে এবং ডেটাবেস সার্ভারটিকে তার হার্ডওয়ারের মতো শক্তিশালী হতে প্রসারিত করে

পোস্টগ্রিসকিউএলএর ডিফল্ট কনফিগারেশনটি অত্যন্ত রক্ষণশীল এবং সেই সরঞ্জামটি এই সঠিক পরিস্থিতির সাথে সহায়তা করার জন্য তৈরি। ডকুমেন্টেশনটি হালকা পঠনযোগ্য এবং সরঞ্জামটি ব্যবহার করা বেশ সোজা।

মনে রাখবেন যে pgtune এর সঠিক পরামর্শ ব্যবহার করার প্রয়োজন নেই। এর সেটিংসের সাথে খেলতে এবং কনফ ফাইলের ফলস্বরূপ পরিবর্তনগুলি আপনাকে পোস্টগ্র্রেএসকিউএল এর কনফিগারেশন এবং কীভাবে এটি ম্যানুয়ালি টুইট করতে হয় তার আরও ভাল ধারণা দেয়।


8
Pgtune এর সর্বশেষ আপডেটটি ২০০৯ সালে হয়েছিল, এটি ৫ বছর আগে এবং এখনও গণনা করা হচ্ছে। আমি ভাবছি এটি 9.1-9.2-9.3 সিরিজের জন্য এখনও বৈধ কিনা।
sorin

9
pgtune এখন অনলাইনে
Alfabravo

3

প্রতিটি জিজ্ঞাসা বা কমান্ড ধীরে ধীরে চলতে থাকলে আমি সন্দেহ করি:

  • আপনি চালিত প্রতিটি প্রশ্নের জন্য আপনি ডাটাবেসের সাথে সংযুক্ত হন;
  • আপনি কোনও ধরণের প্রমাণীকরণ পদ্ধতি কনফিগার করেছেন, যা কাজ করে না এবং নির্দিষ্ট প্রমাণীকরণ পদ্ধতিটি শেষ না হওয়া পর্যন্ত এটি আপনার প্রশ্নগুলিকে থামিয়ে দেয়।

আপনি কি দয়া করে আমাদের বলতে চান যে কোনও ক্যোয়ারি চালাতে কত সময় লাগে select version()? যদি তাত্ক্ষণিক হওয়া উচিত (আমার ওয়ার্কস্টেশনে 0,16 মিমি)।


2

যদি প্রতিটি জিজ্ঞাসা হয় যে খুব ধীর গতির কিছু সার্ভার বা কোনও কিছুর সাথে মারাত্মক ভুল। আমার অভিজ্ঞতায় প্রতিটি ডিবিতে কয়েকটি জিনিস রয়েছে যা এটি অন্যের চেয়ে ভাল, তবে পারফরম্যান্স ওয়াইস pgsql এমএসকিএল সার্ভারের মতো একই অঞ্চলে সহজেই আসে।

সুতরাং, আপনি কী ওএস চালাচ্ছেন pgsql? কি হার্ডওয়্যার? আপনি ইতিমধ্যে কি সেটিংস পরিবর্তন করেছেন? আপনার ডেটাসেটটি কত বড়? দুর্বল ক্যোয়ারির উদাহরণ এবং বিশ্লেষণ বিশ্লেষণের ফলাফল কী (আপনার ক্যোয়ারীটি এভাবে চালান:

বিশ্লেষণ নির্বাচন নির্বাচন করুন ... এখানে কোয়েরি বাকি আছে ...;

Http://explain.depesz.com/ এ আউটপুট পোস্ট করুন এবং লিঙ্কটি এখানে পোস্ট করুন।


1
হ্যাঁ, প্রতিটি ক্যোয়ারী / কমান্ড ধীরে ধীরে চলমান, এবং হ্যাঁ "কিছু" মারাত্মক ভুল তাই আমার প্রশ্ন। সমস্যাটি হ'ল এমএসকিএল সার্ভারে উপলভ্য র‌্যামের পুরো ব্যবহার করছে (এত ভারী ক্যাচিং) যেখানে পিএসকিএল নেই। আমি মন্তব্য এবং পরামর্শের প্রশংসা করি, তবে আপনি অবশ্যই আমার প্রশ্নের বেশিরভাগ অংশ এবং বিষয় লাইনটি নিজেই মিস করেছেন ... আমি কেবল জানতে চাই যে উপলব্ধ মেষটি ব্যবহার করতে কীভাবে পিএসকিএল পাওয়া যায়; বর্তমানে অন্যদের দ্বারা তালিকাভুক্ত কিছু পরামর্শ চেষ্টা করছে ...
ব্যবহারকারীর 85116

1
আপনার র‌্যাম ব্যবহার করা সমস্যা নয়। পোস্টগ্র্যাস্কল বেশিরভাগ ক্যাশে করার জন্য ওএসের উপর নির্ভর করে। সুতরাং, সমস্ত র‌্যাম ব্যবহার করার প্রয়োজন নেই। আবার, আপনি আমার বক্তব্য বেশিরভাগই মিস করেছেন। আপনাকে সহায়তা করার জন্য আপনি আমাদের মূল্যবান কিছু দিচ্ছেন। আমি জীবিকার জন্য 5000 টিপিএস পোস্টগ্র্যাস্কল ক্লাস্টার চালনা করি। আপনি আমার পরামর্শ নিতে পারেন, বা ভাবছেন যে আপনি জানেন কীভাবে pgsql কাজ করে এবং তর্ক করতে পারে।
স্কট মার্লো

@ ব্যবহারকারী 11৮১১6, দয়া করে স্কট শুনুন, ইতিমধ্যে আমাদের মাইএসকিউএল সহ একটি ওয়ার্কফ্লো রয়েছে যা সুপার লেটেন্সি নির্ভর, সমস্ত ডাটাবেস র‍্যামে ক্যাচ করা আপনার সমস্যার সমাধান করবে না, এটি কেবল এটি কম দৃশ্যমান করে। আপনার যদি ডিবি স্ট্রাকচারে একই সমস্যা থাকে তবে পোস্টগ্রিস আপনার জন্য এটি ঠিক করে না বা এটি লুকানোর চেষ্টা করবে না।
কেভর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.