পোস্টগ্রিসএসকিউএল লেনদেনের জন্য কয়েক ঘন্টা প্রতিশ্রুতিবদ্ধ


11

আমি এমন একটি সমস্যায় পড়ছি যার মাধ্যমে আমার একজন ব্যবহারকারী থেকে আমার পোস্টগ্রিজ এসকিউএল সার্ভারের সাথে দুটি সংযোগ রয়েছে যা প্রায় 4 ঘন্টা ধরে চলছে এবং বেশ কিছুদিন ধরে প্রতিশ্রুতিবদ্ধ অবস্থায় রয়েছে (কমপক্ষে 1 ঘন্টা যা আমি এটি দেখছিলাম) । এই সংযোগগুলি অন্যান্য কোয়েরিকে চলমান থেকে অবরুদ্ধ করছে তবে সেগুলি অবরুদ্ধ নয়।

প্রশ্নে দুটি সংযোগ এখানে।

postgres=# select * from pg_stat_activity where usename = 'xxxxx';
 datid | datname | procpid | usesysid | usename | current_query | waiting |          xact_start           |          query_start          |         backend_start         |  client_addr  | client_port
-------+---------+---------+----------+---------+---------------+---------+-------------------------------+-------------------------------+-------------------------------+---------------+-------------
 20394 | xxxxxx  |   17509 |    94858 | xxxxx   | COMMIT        | f       | 2014-01-30 05:51:11.311363-05 | 2014-01-30 05:51:12.042515-05 | 2014-01-30 05:51:11.294444-05 | xx.xx.xxx.xxx |       63531
 20394 | xxxxxx  |    9593 |    94858 | xxxxx   | COMMIT        | f       | 2014-01-30 06:45:17.032651-05 | 2014-01-30 06:45:17.694533-05 | 2014-01-30 06:45:16.992576-05 | xx.xx.xxx.xxx |       63605

পিআইডি 9593 হ'ল সবচেয়ে সমস্যাযুক্ত এটি যা অন্য ব্যবহারকারীরা এটির দ্বারা ব্লক হয়ে যায়। ব্যবহারকারী যতদূর স্বীকার করছেন, তিনি তার টেবিলটি কেটে ফেললেন, তারপরে প্রতিটি ব্যাচের পরে প্রতিশ্রুতিবদ্ধ এক হাজারের ব্যাচে সন্নিবেশ করিয়েছিলেন।

বর্তমানে এই পিআইডি নিম্নলিখিত লকগুলি দেখায়:

postgres=# select * from pg_locks where pid = 9593;
   locktype    | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid  |        mode         | granted
---------------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+------+---------------------+---------
 relation      |    20394 | 29173472 |      |       |            |               |         |       |          | 261/0              | 9593 | AccessExclusiveLock | t
 relation      |    20394 | 27794470 |      |       |            |               |         |       |          | 261/0              | 9593 | RowExclusiveLock    | t
 relation      |    20394 | 27794470 |      |       |            |               |         |       |          | 261/0              | 9593 | ShareLock           | t
 relation      |    20394 | 27794470 |      |       |            |               |         |       |          | 261/0              | 9593 | AccessExclusiveLock | t
 virtualxid    |          |          |      |       | 261/503292 |               |         |       |          | 261/0              | 9593 | ExclusiveLock       | t
 transactionid |          |          |      |       |            |     503213304 |         |       |          | 261/0              | 9593 | ExclusiveLock       | t

আমি এই পিআইডি মারতে পারি না (কিল কমান্ড জারি করার পরে কিছুই হয় না)। এটিকে আরও নির্ণয় করতে এবং স্পষ্টতই এটিকে সমাধান করার জন্য আমি কী করব তা নিশ্চিত নই।

কোন ইনপুট কেউ?

উবুন্টু লিনাক্স সার্ভারে পোস্টগ্রিএসকিউএল 8.4 চলছে।

সম্পাদনা করুন:

যেহেতু আমি অনুরূপ স্থানে অন্যান্য সংযোগগুলি পেয়েছিলাম যেখানে প্রতিশ্রুতিটি ঝুলছিল, আমি আরও তাকিয়ে সার্ভার লগগুলিতে নিম্নলিখিতগুলি পেয়েছি:

Jan 30 02:29:45 server001 kernel: [3521062.240540] postgres      D 0000000000000000     0 23220   8154 0x00000004
Jan 30 02:29:45 server001 kernel: [3521062.240550]  ffff8800174c9d08 0000000000000082 ffff88041cd24728 0000000000015880
Jan 30 02:29:45 server001 kernel: [3521062.240559]  ffff8806c678b110 0000000000015880 0000000000015880 0000000000015880
Jan 30 02:29:45 server001 kernel: [3521062.240567]  0000000000015880 ffff8806c678b110 0000000000015880 0000000000015880
Jan 30 02:29:45 server001 kernel: [3521062.240575] Call Trace:
Jan 30 02:29:45 server001 kernel: [3521062.240582]  [<ffffffff810da010>] ? sync_page+0x0/0x50
Jan 30 02:29:45 server001 kernel: [3521062.240590]  [<ffffffff81528488>] io_schedule+0x28/0x40
Jan 30 02:29:45 server001 kernel: [3521062.240596]  [<ffffffff810da04d>] sync_page+0x3d/0x50
Jan 30 02:29:45 server001 kernel: [3521062.240603]  [<ffffffff815289a7>] __wait_on_bit+0x57/0x80
Jan 30 02:29:45 server001 kernel: [3521062.240610]  [<ffffffff810da1be>] wait_on_page_bit+0x6e/0x80
Jan 30 02:29:45 server001 kernel: [3521062.240618]  [<ffffffff81078540>] ? wake_bit_function+0x0/0x40
Jan 30 02:29:45 server001 kernel: [3521062.240627]  [<ffffffff810e4480>] ? pagevec_lookup_tag+0x20/0x30
Jan 30 02:29:45 server001 kernel: [3521062.240634]  [<ffffffff810da665>] wait_on_page_writeback_range+0xf5/0x190
Jan 30 02:29:45 server001 kernel: [3521062.240644]  [<ffffffff81053668>] ? try_to_wake_up+0x118/0x340
Jan 30 02:29:45 server001 kernel: [3521062.240651]  [<ffffffff810da727>] filemap_fdatawait+0x27/0x30
Jan 30 02:29:45 server001 kernel: [3521062.240659]  [<ffffffff811431b4>] vfs_fsync+0xa4/0xf0
Jan 30 02:29:45 server001 kernel: [3521062.240667]  [<ffffffff81143239>] do_fsync+0x39/0x60
Jan 30 02:29:45 server001 kernel: [3521062.240674]  [<ffffffff8114328b>] sys_fsync+0xb/0x10
Jan 30 02:29:45 server001 kernel: [3521062.240682]  [<ffffffff81012042>] system_call_fastpath+0x16/0x1b

আমি উচ্চ আই / ও লোডের পরেও অনুরূপ এন্ট্রি দেখেছি। দুর্ভাগ্য বা সত্যই কিছু সংযোগ আছে কিনা তা এখনও নিশ্চিত নয়।
21-24

2
আমি সার্ভারে একটি ডিস্ক বা I / O সাবসিস্টেম ত্রুটিটিকে দৃ strongly়ভাবে সন্দেহ করি।
ক্রেগ রিঞ্জার

@ ক্রেইগ্রিঞ্জার - আমি মনে করি আপনি ঠিক বলেছেন। আশ্চর্যের বিষয় হ'ল 2am এ আমি এই সতর্কতাগুলি লগ ফাইলে পেয়েছিলাম এবং তার পর থেকে, সমস্ত দিন লগগুলিতে আরও বার্তা পাওয়া যায় নি - তবে, ডাটাবেস সংযোগগুলি এখনও স্তব্ধ হয়ে আছে যেন পোস্টগ্র্রেএসকিউএল সেই ত্রুটিগুলি থেকে সেরে উঠেনি। ওএস এবং এই জাতীয় রাতের একটি আপডেট করতে যাচ্ছেন (4 বছরের পুরানো কার্নেল চলছে)।
ETL

@ETL এটিও পরীক্ষা dmesgকরে দেখুন - I / O ত্রুটিগুলি, টাইমআউটগুলি, এইচবিএ ত্রুটিগুলি ইত্যাদির জন্য দেখুন a নতুন ব্যাকআপ নিন এবং আপনার ডিস্কগুলি, রেড সাবসিস্টেম ইত্যাদি পরীক্ষা করুন
ক্রেগ রিঞ্জার

পোস্টগ্রিস ডি এর ঠিক উপরেই আরেকটি বার্তা থাকা দরকার ... কল ট্রেস প্রিন্টক, যেটি বলতে চাইবে যেমন সিপিইউ লক, প্রসেসটি 120 সেকেন্ডের বেশি সময় ধরে আটকে আছে ইত্যাদি সমস্যাটি কী তা আরও স্পষ্টভাবে নির্দেশ করবে যদিও ট্রেসটি হ'ল ইতিমধ্যে মোটামুটি পরিষ্কার - এটি একটি fsync (2) এর মতো দেখাচ্ছে। অন্তর্নিহিত ডিভাইসটি মনে হচ্ছে ভাঙা বা খুব ধীর?
জোসিপ রডিন

উত্তর:


1

আমি তখন থেকে 9.4 সংস্করণ এবং সম্পূর্ণ নতুন সার্ভারে আপগ্রেড করেছি যাতে আমি এটি আরও ডিবাগ করতে পারি না। তবে আমি বিশ্বাস করি সমস্যাটি একটি ড্রাইভ নিয়েই ছিল। আমি একটি খারাপ ড্রাইভ পেয়েছি যা মেশিন দ্বারা খারাপ হিসাবে রিপোর্ট করা হয়নি।

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