MySQL স্লেভ "সিস্টেম লক" এ আটকে আছে


8

আমার মাইএসকিউএল স্লেভ এতে প্রচুর সময় ব্যয় করছে Slave_SQL_Running_State: System lock। আমি দেখতে পাচ্ছি যে সিস্টেমটি বর্তমানে আমি / ও লিখিতভাবে আবদ্ধ, এবং এটি লগটি প্রক্রিয়াকরণ করছে, যদিও ধীরে ধীরে। Show processlistযখন এই অবস্থায় থাকে তখন "ইভেন্টটি প্রেরণের জন্য অপেক্ষা করা" এবং "সিস্টেম লক" ছাড়া অন্য কিছু দেখায় না।

আমার সমস্ত সারণী (সিস্টেম সারণী ব্যতীত) ইনোডিবি, এবং বাহ্যিক লকিং অক্ষম। দাস এই অবস্থায় কি করছে?

এখানে কিছু তথ্য যা অনুরোধ করা হয়েছে:

প্রথমত, এটি ইবিএসের সমস্ত স্টোরেজ সহ অ্যামাজন ইসি 2 উদাহরণে মাইএসকিউএল 5.6 সম্প্রদায়।

mysql> show processlist;
+----+-------------+-----------+---------------+---------+--------+----------------------------------+------------------+
| Id | User        | Host      | db            | Command | Time   | State                            | Info             |
+----+-------------+-----------+---------------+---------+--------+----------------------------------+------------------+
|  1 | system user |           | NULL          | Connect |  26115 | Waiting for master to send event | NULL             |
|  2 | system user |           | NULL          | Connect | 402264 | System lock                      | NULL             |
| 14 | readonly    | localhost | theshadestore | Query   |      0 | init                             | show processlist |
+----+-------------+-----------+---------------+---------+--------+----------------------------------+------------------+
3 rows in set (0.00 sec)

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 184.106.16.14
                  Master_User: replicant
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: bin-log.000764
          Read_Master_Log_Pos: 505452667
               Relay_Log_File: relay-log.000197
                Relay_Log_Pos: 345413863
        Relay_Master_Log_File: bin-log.000746
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 345413702
              Relay_Log_Space: 19834085375
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 402263
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 307009
                  Master_UUID: b1bf9a19-dac0-11e2-8ffa-b8ca3a5bce90
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: System lock
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
1 row in set (0.00 sec)

1
আপনার স্টোরেজ নিয়ে কিছু চলছে? যদি এটি স্থানীয় ডিস্ক হয়, আপনি কি কোনও স্মার্ট সতর্কতা পেয়ে যাচ্ছেন, বা এটি একটি অবনমিত RAID অ্যারেতে সম্ভবত রয়েছে?
21

থেকে কয়েক প্রাসঙ্গিক এন্ট্রি প্রদান করুন mysqld.logযখন রেপ্লিকেশন প্রথম সময়ে কপর্দকশূন্য এবং থেকে নিম্নোক্ত পোস্টটি আউটপুট: MySQL> show slave স্থিতি \ জি; mysql> সম্পূর্ণ প্রক্রিয়া দেখান;
অ্যালেক্সাস

এটি একটি ইসি 2 ইবিএস ভলিউম। ডেমসগে কোনও ত্রুটি নেই।
গ্রেগ

1
দ্রষ্টব্য যে এটি কেবল 5.6 এর বাগ হতে পারে, অন্য সংস্করণটির (উদাহরণস্বরূপ 5.5) সাথে পরীক্ষা করে দেখুন: forums.mysql.com/read.php?22,598354,598354
দ্য

1
এখানে সিস্টেম লক স্টেটের সংজ্ঞা দেওয়া আছে। দেখে মনে হচ্ছে এটি আপনার সিস্টেমের সাথে I / O লেখার সীমাবদ্ধ হতে পারে। সিস্টেম লক - থ্রেডটি অনুরোধ করতে চলেছে বা টেবিলের জন্য অভ্যন্তরীণ বা বাহ্যিক সিস্টেম লকের জন্য অপেক্ষা করছে। শো প্রোফাইলে, এই রাষ্ট্রটির অর্থ থ্রেডটি লকটির জন্য অনুরোধ করছে (এটির জন্য অপেক্ষা করছে না)। থেকে: dev.mysql.com/doc/refman/5.6/en/general-thread-states.html
jbrahy

উত্তর:


2

বিতরণকৃত স্টোরেজ ফেসপামে ডেটাবেসগুলি চলছে । আমি ইসি 2 ইবিএস স্টোরেজ সিস্টেমের শীর্ষে চলমান ফাইল সিস্টেমটি বেঞ্চমার্ক করব। সম্ভবত সবচেয়ে সহজ পদ্ধতি হ'ল এরকম কিছু ব্যবহার করা s=$(date +%s); dd if=/dev/zero of=<database-dir> bs=1M count=512; e=$(date +%s); echo "scale=4; 512 / ( $e - $s )" | bc। এটি ধরে নিয়েছে যে আপনার কাছে অবকাশের জন্য 512 এমবি রয়েছে। এখন, এই বেঞ্চমার্কিংয়ের ক্ষেত্রে সমস্যাটি হল যে (1) এটি ক্যাশিং প্রভাবগুলিকে বিবেচনা করে না এবং (২) রেজোলিউশনটি খুব ভাল নয়। তবে যদি এই পরীক্ষাটি ধীর হয় তবে সমস্যাটি অবশ্যই ইসি 2 ইবিএসের সাথে। যদি পরীক্ষাটি দ্রুত বা নামমাত্র হয় তবে আমাদের আরও খনন করতে হবে এবং আরও পরিশীলিত কৌশল ব্যবহার করতে হবে।

বনি ++ প্রোগ্রামটি কিছুটা পর্যাপ্ত তবে এটি (এএফআইএকি) ওএস বাফারগুলি লেখার এবং পঠনের মধ্যে ফ্লাশ করে না। তবুও, আপনার মতো কিছু নিয়ে ধারণা পাওয়া উচিত bonnie++ -u mysql -r 8 -s 16:512 -n 1 -b -d <mysql-data-directory>। আমি যখন স্থানীয় স্টোরেজে চলমান কোনও ভিএম-এ এটি করি তখন আমি পাই:

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine   Size:chnk K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
test        16M:512  1173  99 +++++ +++ +++++ +++  3187  99 +++++ +++ +++++ +++
Latency              1553us      23us     330us     750us     173us    6372us
Version  1.96       ------Sequential Create------ --------Random Create--------
test                -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                  1  1850  20 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
Latency             27428us      24us    1188us   30258us      36us    1107us

এনএফএসের মাধ্যমে কোনও ভিএম-তে চালানোর সময় আমি যা পেয়েছি তা এখানে:

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine   Size:chnk K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
test        16M:512  1273  98 +++++ +++ +++++ +++  3053  99 +++++ +++ +++++ +++
Latency              1372us      28us     380us     832us      19us    9473us
Version  1.96       ------Sequential Create------ --------Random Create--------
test                -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                  1   754  11 +++++ +++   728   8   751  12 +++++ +++   791   8
Latency             12695us      47us    5306us    3710us      30us    3278us

0

আপনার দাস ইসি 2 উদাহরণটি কি এই ক্ষেত্রে মাস্টারের সাথে একই আকার?

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


দাস অবশ্যই ধীর। আমি ভাবছি যে দাস কী কোয়েরি নিয়ে কাজ করছে তা জানার উপায় আছে কিনা, ঠিক কীভাবে মাস্টারটিতে 'প্রসেসলিস্ট দেখান' কী কোয়েরি চলছে তা দেখায়।
গ্রেগ

1
এটি লগ রিপ্লে। পূর্বে সরবরাহ করা আউটপুটটিতে আপনি স্লেভ এবং মাস্টার কোথায় আছেন তা দেখতে পারেন। পড়ুন_মাস্টার_লগ_পোস: 505452667 রিলে_লগ_পোস: 345413863
জাজনেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.