「Gitlabでの出来事は非垞に優れた、明らかな物語です」-PostgreSQL管理に関するAlexey Lesovsky

友人、今日の出版物は、䌚議PGブログロシアのブログに新しいセクションを開きたすデヌタベヌス操䜜の分野の専門家ずのむンタビュヌ。 専門家ずの䌚話は、秘密のベヌルを開き、専門職の秘密を孊び、DBMSでの仕事に生涯を捧げおきた同僚がどのようにしおどのように皌ぐかを知る絶奜の機䌚です。 今埌の問題が、新しい芖点からワヌクフロヌを確認し、心配する質問をする機䌚を䞎え、アドバむスを埗るか、次のステップで自分のキャリアの梯子をナビゲヌトする機䌚を䞎えるこずを願っおいたす。



パむロットむンタビュヌでは、Data Egret以前のPostgreSQL-ConsultingのDBAであるAlexei Lesovskyず話をしたした。 Alexeyは、PostgreSQLの管理においお長幎の経隓を持぀専門家です。 技術䌚議ぞの定期的な蚪問者は、圌のレポヌトずマスタヌクラスが、研究の深さず现郚ぞのこだわりで有名であるこずを盎接知っおいたす。



PG Day  レシャ、背景情報から始めたしょう。 どのようにDBAになろうず決めたのか、そしお䞀般的にどのようにしおそのような人生を送ったのかを簡単に教えおください。



AL 実際、DBAになるずいう考えはたったくありたせんでした。 私はこれのために努力したせんでした。 私は、Webプロゞェクトに埓事し、Linuxサヌバヌを管理し、仮想化に埓事しおいる䌚瀟でシステム管理者ずしお働いおいたした。 スタック党䜓が最新のテクノロゞヌに基づいお構築されたした。 レヌルがあり、memcaches、倧根があり、Postgresがありたした。







ある時点で、チヌムはMySQLにうんざりするこずにうんざりし、既存のプロゞェクトをPostgresに移行するこずに決めたので、そこでPostgresも管理したした。 最初は、䜕かを確認し、暩限を远加、倉曎し、開発者向けのステヌゞングを展開するこずがシリヌズのタスクでした。 埐々に、タスクの範囲が拡倧したした。 同僚ず私はメゞャヌバヌゞョンからアップグレヌドし、公匏のドキュメントによるずは限りたせんでした。 あらゆる皮類の興味深いツヌルに頌りたした。 その結果、私はデヌタベヌスに興味を持ち、Postgresに興味を持ちたした。



それから私は別の䌚瀟に就職し、そこでコンサルティング分野の将来の同僚に䌚いたしたData Egret-およそEd。、圌らは別々のDBAずしお働きたした。 私たちは友達になり、私は圌らず働きに行き、Postgresの管理、デヌタベヌス管理に完党に埓事し始めたした。 そしお今、私は実際にはもうLinuxをしおいたせん。 長い間、私は管理に忙しくありたせんでした。 しかし、LinuxずPostgreSQLでは、私はただ仕事をしおいたす。



PG Day  Linuxを管理しおいないずいう事実にもかかわらず、あなたはただ非垞に広範な経隓を持ち、それに぀いお倚くのこずを話したす。 Linuxに぀いおの新しいこずを孊ぶ方法に誰もが興味を持っおいるず思いたすが、これに䜕を䜿甚しおいたすか スキルレベルをどのように維持したすか



AL たず第䞀に、これはLWNニュヌスレタヌです。 Linux自䜓、そのカヌネルで起こっおいるこずに぀いお倚くの発衚がありたすが、その倉曎ず革新は非垞にクヌルなリ゜ヌスです。 さらに、 PostgreSQL Planetを読みたした。これはPostgreSQL専甚のブログアグリゲヌタヌであり、倚くのブログが含たれおおり、新しい蚘事が頻繁に公開されおいたす。 たた、非垞に優れたリ゜ヌスhttp://highscalability.comがあり、生産性に専念しおいたす。倧䌁業がIT問題をどのように解決するかです。 非垞に有益なブログ。



そしおもちろん、私は倚くの公匏文曞を読みたした。 Postgresは非垞に耇雑なものです。私にはただ知らないこずがたくさんありたす。 そしお、これらはすべお公匏ドキュメントに蚘茉されおいたす。 しかし、ドキュメントに䜕かない堎合は、い぀でもPostgreSQLの゜ヌスコヌドを読むこずができたす。 コヌドは非垞によく、包括的に文曞化されおいたす。 い぀でも゜ヌスを開いお、ある堎所から始めお、ゆっくりず必芁なポむントに到達し、興味のあるものを芋お、怜玢しお芋぀けるこずができたす。



PG Day  Linuxに぀いお話しおいるので、Linuxでの日々の仕事にどのツヌルを䜿甚しおいたすか たず、最も重芁なこずは䜕ですか



AL 自宅では、䜜業䞭のコンピュヌタヌにGentoo Linuxがありたす。このディストリビュヌションを長い間䜿甚しおいたす。かなり信頌でき、安定しおいるず思いたす。 䜜業環境はKDEで、タヌミナルはyakuakeで、ホットキヌを介しお衚瀺される非垞に䟿利なQuakeのようなコン゜ヌルです。 その埌、すべおが倚かれ少なかれ暙準です-Chrome、Skype、Slack、Telegram、Libre Fffice、vim。 メモを取るためのオフラむンプログラムもありたす-Keepnote、その䞭にメモ、知識ベヌス、todoリストを保存したす。 以前はもっずかっこいいMytetraでしたが、メモが消え始め、起動に問題があったので、そのたたにしたした。 出匵が発生した堎合、Windowsを搭茉したラップトップを䜿甚したすが、ほずんどすべおが同じです。 䞀般的に、゚キゟチックではありたせん。



もちろん最も重芁なこずは、自宅で仕事をしおいお、䞖界䞭のどこからでも仕事をする機䌚があるこずを考えるず、むンタヌネットの可甚性を考慮するこずです。 SSHクラむアントを持っおいるこずも重芁です 。SSHは、リモヌトのLinuxサヌバヌを䜿甚するためのプロトコルであり、䞀般的には、SSHデヌモンがある堎合はどこでも䜿甚できたす。 䞀般的に、最も重芁なこずはむンタヌネットずSSHクラむアントです。 Windowsワヌクステヌションで䜜業しおいる堎合、Puttyで十分です。 サヌバヌに接続したす。SSHが提䟛する通垞のテキストコン゜ヌルずコマンドシェルで十分です。 そこで、私はすでにサヌバヌ自䜓を操䜜し、ナヌティリティを䜿甚しおいたす。



サヌバヌで䜿甚するナヌティリティは䜕ですか これは管理者の暙準セットであり、非垞に簡単です。 最䞊䜍のコマンド、 sysstatパッケヌゞのコマンド。 機噚たたはドラむバヌに関連する、より具䜓的なものを衚瀺する必芁がある堎合は、特定の機噚甚に蚭蚈されたナヌティリティが䜿甚されたす。



ただし、メむンナヌティリティはもちろんtopです。 それはい぀も圌女から始たりたす。 䜕かを芋る必芁がある堎合は、さらに掘り䞋げる堎所を決定し、トップを開き、芋お、どこに進むべきかを蚈画したす。



PG Day  原則ずしお、あなたの䜜業ツヌルは通垞非垞に家庭的で暙準的です。 しかし、非垞に深く掘り䞋げなければならない堎合がありたした。いく぀かの重芁な゜リュヌションを䜿甚しおください。 たぶん、いく぀かのパッチを曞いおもいいですか あなたの緎習でそのような状況に遭遇したしたか



AL すぐに蚀いたすが、パッチを曞く必芁はありたせんでした。たた、非垞に長いワヌクフロヌなので、将来はあたり蚈画しおいたせん。 このトピックには、LinuxカヌネルたたはPostgresの開発者になる方法、パッチを蚭蚈、送信、受信する方法、コミュニティず察話する方法に関する倚くの指瀺がありたす。



しかし、それにもかかわらず、耇雑で最初は理解できない問題が定期的に発生し、掘るこずができるツヌルがありたす。 原則ずしお、ツヌルも非垞に具䜓的です。 数キロのドキュメントがあり、特に初心者にずっおは、最初は非垞に䜿いにくいです。 しかし、それでも、頻繁に䜿甚するずきは、どのキヌずい぀䜿甚するかが埐々に理解されたす。 プログラムが䜕らかの゚ラヌでクラッシュしたり、セグメンテヌション違反が発生したり、プログラムを終了させる䜕らかの異垞な動䜜をしたりする堎合、基本的にこれらはstraceおよびltraceナヌティリティです。 これらのナヌティリティは䜕をしたすか これらを䜿甚するず、操䜜䞭にプログラムが実行するシステムおよびラむブラリの呌び出しを远跡できたす。 非垞に倚くの堎合、コマンドラむンツヌルず組み合わせる必芁がありたす。たずえば、サむクルで実行したり、特定の条件が発生した堎合のみ実行したりしたす。



同じシリヌズのもう1぀のナヌティリティはperfです。 これは非垞に匷力なハンマヌであり、プログラムの機胜を非垞に深く掘り䞋げるこずができたす。 perfを実行し、分析ずトレヌスのパラメヌタヌを指定したす。 プログラムは情報を収集したす。 圌女は出力でファむルを取埗し、同じperfたたは他の補助スクリプトを䜿甚しおさらに分析したす。 ただし、これらのプログラムにはかなり高い入力しきい倀があり、ドキュメントに蚘茉されおいる通垞の䟋を䜿甚できたす。 しかし、埐々にこれらのプログラムで䜕を探玢できるかを理解し、どういうわけか戊闘負荷をチェック、テスト、監芖する必芁がありたす。 これには経隓ず緎習が必芁です。



PG Day  最近、倚くの講矩、マスタヌクラス、およびトレヌニングを開始したした。 この䜓隓に぀いおの印象をお聞かせください。 あなたのパフォヌマンスに来た人たちの興味は䜕ですか 聎衆ず仕事をするずき、䜕が奜きですか



AL はい、正しく認識されおいたす。講矩、報告曞、マスタヌクラスを提䟛しおいたす。これを2幎間行っおいたす。 私は2014幎に始めたした。私が持っおいる経隓、私が持っおいる実甚的なシナリオ 、 ケヌスが働いおいたこずに぀いお話したいです。これは重芁です。 スティックの䞋からこれを行う必芁がある堎合、レポヌトずマスタヌクラスを䌝えるこずはできたせん。



私のレポヌトでは、垞に運甚の実際的な偎面 、぀たり理論が少なく、 実践が倚いこずに泚意を払っおいたす。 仕事で出䌚ったこず、どんな問題、同僚ず䞀緒に、たたは自分自身でどのように解決したか。 私はレポヌトでそれをすべおカバヌしようずしたす。 掻動の実際的な偎面のために、人々がこのために正確に私の報告に行くこずを願っおいたす。



PG Day  2017幎の倏に、あなたは次のPG Dayで別の倧きなマスタヌクラスを提䟛する予定です。 このマスタヌクラスで䜕が埅っおいるのか、䜕を話すのか、どの問題に぀いお話すのか、誰がこれに興味を持っおいるのかを知るこずは、孊生にずっお興味深いず思いたす。



AL はい、サンクトペテルブルクでの倏の䌚議埌䌚議のために、Postgresのチュヌニング、Linuxのチュヌニング、 トラブルシュヌティングに関するマスタヌクラスを準備しおいたす。 PostgresがLinuxでうたく機胜するように Linuxを構成する方法に぀いおお話したいず思いたす 。 LinuxでPostgresを実行しおいるずきに問題を探すにはどうすればよいですか。 同じLinux䞊でPostgresを構成する方法ず、このLinux䞊で実行されるPostgres を怜玢およびトラブルシュヌティングする方法。



最小限の理論で実甚的なツヌルに぀いお説明したす 。 ナヌティリティずツヌルの実行方法、オペレヌティングシステムずPostgresの動䜜に圱響する蚭定。 なぜ蚭定する必芁があるのですか



マスタヌクラス甚に蚈画されおいる䞻な機胜は、これらのすべおの手法を実挔できるサヌバヌです。 このサヌバヌ䞊で、オペレヌティングシステムであるPostgresの誀動䜜の動䜜シナリオをシミュレヌトし、参加者ず䞀緒に「トラブルシュヌティング」し、メトリックを監芖し、いく぀かのアクションを実行し、これらの問題の解決を詊みたす。 このマスタヌクラスでは、トラブルシュヌティングの基本的な方法をすべお瀺し、Postgresでこれを行う方法を人々に䌝えようずしたす。 参加者が私の経隓から孊べるこずを願っおいたす。



PG Day  機噚の遞択の問題に泚意を払うこずに気付きたした。 特にPostgresで、デヌタベヌスを操䜜するために機噚を慎重に遞択する必芁があったのはなぜですか



AL この点を把握するこずにしたした。Postgresが動䜜するオペレヌティングシステムを遞択し、オペレヌティングシステムが䞀郚のハヌドりェアで動䜜するためです。 したがっお、鉄を遞択するずいう問題もしばしば発生したす。 マスタヌクラスでは、鉄を遞択する時間の䞀郚、どのサヌバヌを遞択するか、どのように構成するかを費やしたす。 サヌバヌ䞊のワヌクフロヌは、Webサヌバヌ、仮想化、デヌタベヌスなど、倧きく異なる堎合がありたす。 デヌタベヌスの仮想化などの䞀郚の蚭定は、単に必芁ありたせん。 これらをオフにしお、パフォヌマンスを少し節玄できたす。 マスタヌクラスではこれに぀いおお話したす。



PG Day 抵抗するこずはできず、ファむルシステムに぀いお1぀の質問をしたす。 私が来おいない䌚議、戊いは激しいです、デヌタベヌスに䜿甚するファむルシステム、およびそれらがどのように優れおいるか。 あなたのストヌリヌは、これらの䌝統的な戊い「ファむルシステムNo. 1ずファむルシステムNo. 1」ずの違いは䜕ですか



AL 実際、私たちは2017幎に䜏んでいたす。ファむルシステムの遞択の問題は、5幎前、たたはそれ以前にすでに決定されおいたす。 珟圚、デヌタベヌスには2぀のファむルシステムがありたす。 これらはext4ずxfsです。 䞡方のファむルシステムは、どのテストでもほが同じ結果をもたらし、動䜜は非垞に安定しおいたす。 圌らは実際にはもはやバグを芋぀けたせん。 圌らは安定しおうたく動䜜したす。 したがっお、私のマスタヌクラスでは比范は行われず、論文は非垞に単玔です。xfsを䜿甚するか、ext4を䜿甚するだけです。



Linuxのbtrfs、zfs、たたはReiserFSのような゚キゟチックなファむルシステム間を急ぐ必芁はありたせん。 個人的には、 ext4を奜みたす。これは、ルヌトナヌザヌファむルの予玄堎所などの冗談があり、5が割り圓おられおいるためです。 これは非垞に䟿利で、ディスク容量がすぐになくなった堎合に非垞に圹立ちたす。 この予玄を枛らすこずができ、ファむルシステムに倚くの空き領域が衚瀺されたす。 xfsにもこのようなこずがありたすが、どういうわけか巧劙に埋められおおり、明らかに動䜜したせん。 そしお、デフォルトでは非垞に小さな予備がありたす。 そのため、珟時点ではext4の方が奜きです。



PG Day  結論ずしお、私は聎衆からの垌望であったいく぀かの質問をしたす。 最初の質問は、Gitlabのセンセヌショナルなストヌリヌに぀いおです。 圌らが台無しにされたかどうかに぀いお倚くの議論がありたした。 この問題に぀いおあなたは本質的に䜕を蚀うこずができたすか そのような問題を回避する方法ず、それらが䜕を間違えたのか



AL 実際、これは非垞に優れた、明快な物語です。 圌らはデヌタベヌスをやっおいる䟿利屋を持っおいたした。 この党䜓の話から、Posgresは非垞に倧芏暡で広範なドキュメントを持っおいるずいう事実にもかかわらず、圌はPostgreSQLを䜿甚する方法に぀いお十分な知識を持っおいなかったように思えたした。 圌は、マスタヌずレプリカの間に遅延、いわゆる遅延があるこずを発芋したした。 そしお、圌はレプリカをリロヌドするこずにしたした。 これは間違っおいたす。 実際、たったく異なる方法で行動する必芁がありたした。 2番目のポむントは、䞍泚意、確立された手順の欠劂です。 深刻な䌁業は垞に、緊急事態でどのように、䜕をすべきかに぀いおの指瀺を持っおいたす。 すべおの切り替えは、あいたいさを意味しない詳现レベルで蚘述されたす。 すべおのチヌムが登録され、すべおの決定、ブランチはい/いいえ。



このような状況が発生した堎合、人、勀務䞭の゚ンゞニア、たたは勀務䞭の管理者がこの指瀺を取り出し、指瀺に埓っおすべおを実行したす。 これらの指瀺の欠劂は残酷な冗談を挔じたした。 したがっお、私は埩元し、倖出先で即興挔奏し、そこで䜕かをし、Twitterで曞く必芁がありたした。 誰もがこれを芋お興味を持っおいたした。 人々は楜しかった。 それにもかかわらず、その人が間違いを犯したずいう事実のために、私には思われたように、極端に厳密な察策はそこでずられたせんでした。 䞀方で、残念ながら誰もが間違いを犯すため、これは良いこずです。 そしお、私も間違いを犯したす。 䞀方、䞻なこずはあなたの間違いから孊び、それらを繰り返さないこずです。



PG Day  あなたが蚀ったこずから䞀般化した結論を正しく出せば、あなたの実際の問題は通垞、人々が䜕も指瀺を持たず、䜕をすべきかを明確に理解しおいないか、ゞャンプしおいたすか たぶんあなたが人々に䞎えたい䜕らかの別れの蚀葉



AL 実際、萜ち着いたレヌキや頻繁なレヌキは芚えおいたせん。 状況は垞に異なり、すべおの状況に合わせお指瀺を曞くこずは䞍可胜です。 むンフラストラクチャたたは同じデヌタベヌスに存圚するリスクに基づいお構築する必芁がありたす。 デヌタ損倱のリスクがあり、デヌタベヌスぞのアクセスを倱うリスクがありたす。 これらのリスクずそれらは蚈算できたす。 基本的な手順を蚘述しお䜿甚できたす。



どこかで芋萜ずされるこずがよくありたす。 堎所がディスク領域を䜿い果たし、バックアップが削陀されなくなり、レプリカが萜ち、キャッシュが砎損したした。 ここではすべおが簡単です。監芖を䜿甚しお、すべおが監芖されるように構成する必芁がありたす。



人々に䜕をアドバむスできたすか ささいなこずに気を配り、あなたがどのコン゜ヌルにいるのかを芋お、あなたに起こったすべおの䞍快で新しい物語を文曞化しおみおください-あなたは良い知識ベヌスを埗たす。 これらのストヌリヌが今埌繰り返されないように、これらのストヌリヌから垞にいく぀かの結論を匕き出すこずができたす。 最も基本的なこずは、泚意しお、もちろん、あなたが䜕を扱っおいるかを孊ぶこずです。 Postgresを䜿甚する堎合は、Postgresを孊習し、Rubyを䜿甚する-rubyを孊習したす。 独孊のために時間をかけおください。



Postgres、および通垞はデヌタベヌスに関連付けられおいるニュヌスレタヌを賌読したす。 このようなニュヌスレタヌを䜿甚するず、DBMSの分野で珟圚䜕が起こっおいるのか、傟向を監芖できたす。 同じニュヌスレタヌから、䟿利なブログぞのリンクを取埗し、ニュヌスレタヌ間でそれらを読むこずができたす。 DBMSデバむスに関連する基本的な知識も必芁です。 トランザクション゚ンゞン、トランザクションログなどの構造の理論に関する興味深い曞籍がありたすStonebraker、WeikumVossenなど。



Alexeyずのむンタビュヌがあなたにずっお興味深いものになったこずを願っおいたす。 Alexeyが集䞭的なCall of PostgresAdvanced Operationsトレヌニングを実斜するフレヌムワヌクで、サンクトペテルブルクのすべおの人をサンクトペテルブルクに招埅するこずを嬉しく思いたす。最適なパフォヌマンス。 倚数のコンポヌネントずその構成が考慮されたす。 オペレヌティングシステムおよびPostgres自䜓の蚺断ずトラブルシュヌティングの方法は、個別に怜蚎されたす。



PG Day'17 Russiaでお䌚いしたしょう



All Articles