タグ

ブックマーク / thinkit.co.jp (37)

  • MySQLのチューニングを戦う方へ

    連載もついに最終回となりました。 連載では、MySQLクエリーチューニングことはじめで予告した通り、「チューニング箇所の洗い出しのテクニック」について説明してきましたが、「チューニングの方法」については一切触れませんでした。 「連載ではチューニングそのものの方法については詳しく説明しません。それは見出しの通り「銀の弾丸」などはなく、MySQLのパフォーマンスチューニングは計測と改善を繰り返し行っていくべきものだからです。そのため、特定のケースにマッチする改善の手法よりも、繰り返し使われる計測の手法にフォーカスを当てて説明していきます。」 その理由としてこの一文が全てではありますが、今回は参考までに筆者が考えるチューニングの指標を紹介したいと思います。それがあなたの環境に当てはまるかどうかは、これまでに紹介してきたツールなどを利用して計測してみてください。 チューニングの基方針 基

    MySQLのチューニングを戦う方へ
    kamipo
    kamipo 2016/08/04
  • 「Fluentdをきっかけにビジネスが回る仕掛けがとっても気持ちイイです。」

    クラウドを活用したデータマネージメントサービスを展開するトレジャーデータのCTO、太田一樹氏にインタビューを行った。同社がメインで開発を進めるログ収集のためのオープンソースソフトウェア「Fluentd」とコアなビジネスモデルとの関係、トレジャーデータの狙っているユーザー層、更にはエンジニアの雇用から人工知能の可能性まで幅広いトピックに及んだ。 まずはCTOとしての業務領域を教えてください。 現在はCTOという肩書きで、約80名ほどの社員の中の30名ぐらいを占めるエンジニアリングとプロダクトマネージャーを統括する仕事をしています。プロダクトマネージャーというのはアメリカIT企業では普通なんですが、製品の位置付けとか顧客ニーズを理解したり、顧客向けのメッセージを作る役目です。それに加えて製品を使って頂いているお客様への対応を行うカスタマーサポートのエンジニアという人たちも統括しています。その

    「Fluentdをきっかけにビジネスが回る仕掛けがとっても気持ちイイです。」
    kamipo
    kamipo 2015/07/17
    👀
  • [ThinkIT] 第1回:同じようで違うデータ型 (1/3)

    連載では、「徹底比較!! PostgreSQL vs MySQL」で取り上げることのできなかった項目をいくつか取り上げ、再びPostgreSQLMySQLについて解説していきます。最後までお付き合いいただけると幸いです。 なお、連載での解説対象のPostgreSQLMySQLのバージョンは以下の通りです。

    kamipo
    kamipo 2012/09/18
  • NoSQL&RDBMSクラスタ MySQL Cluster

    Active-Active型&"非"共有ディスク型高可用性クラスタ MySQL Clusterは共有ディスクを使わないActive-Active型のデータベースクラスタで、トランザクションをサポートし、MySQLSQL文を利用できるリレーショナルデータベースです。単一障害点を排除して99.999%の高い可用性(年間5分程度の停止時間)を達成するための設計がされています。データを複数のサーバに分散配置することで、同時多発的に大量に発生するデータの更新を高速に処理し、スケールアウト構成によるスケーラビリティを高めています。オンラインバックアップのみならず、クラスタへのサーバの追加やバージョンアップもオンラインのまま行えるため、クラスタを完全に無停止で運用できます。 MySQL Clusterの基礎となる技術は、通信機器ベンダのエリクソンで携帯通信網の加入者データベース向けに開発された Eri

    kamipo
    kamipo 2012/02/16
  • パケット解析で何がわかる?

    Copyright © 2004-2024 Impress Corporation. An Impress Group Company. All rights reserved.

  • syslogを押さえよう!

    ログの出力方法 「第1回:必読!ログファイルとディレクトリ」では、CentOS 5.2の/var/logディレクトリ以下に存在する、ログファイルとディレクトリについて説明しました。第2回は、このさまざまなログファイルの管理について説明します。 ログの出力方法という観点からみた場合、ログは、アプリケーションが独自の方法で出力したものと、Unix/Linuxにおける標準的なログ出力方法であるsyslogを利用して出力されたものとに大別できます。 アプリケーション独自の方法で記録されたログファイルとしては、/var/log/wtmpや/var/log/lastlogといったバイナリ形式のファイルがあります。また、ApacheやSamba、Squidなど、独自のログディレクトリを持つアプリケーションの多くも、独自の方法でログを記録しています。 一方、syslog は、独自のログ出力方法を持たない、

  • [ThinkIT] 第4回:virshコマンドで仮想化を管理する! (1/3)

    Red Hat Enterprise Linux 5には、Xenを管理するコマンドラインツールとして「xmコマンド」と「virshコマンド」の2種類があります。xmコマンドはXen専用の管理ツールで以前から用意されています。virshコマンドは、XenやQEMU、KVMなど様々な仮想マシンソフトウェアを管理できるツールです。運用スクリプトを書く場合、より汎用的なvirshコマンドを内部で使った方がよいでしょう。 virshコマンドで仮想マシンの起動を行う際にはXML形式の仮想マシン定義ファイルが必要です。しかしVirtual Machine Managerで生成した仮想マシン定義ファイルはXML形式のものではなく従来のPython形式のものです。 XML形式の仮想マシン定義ファイルを簡単に作る方法は、仮想マシンが起動している状態でvirsh dumpxmlコマンドを実行してXML形式の仮想

    kamipo
    kamipo 2010/05/13
  • [ThinkIT] 第5回:カーネルをチューニングする (4/4)

    メモリ関連のチューニング項目としては以下のようなものがあります。スワップの利用やダーティなページの扱いに関するパラメータがあります。意味や効果を理解した上で設定を行う必要があります。

  • [ThinkIT] 第5回:key_buffer_sizeの違いによるパフォーマンス比較 (1/3)

    key_buffer_sizeとは、「インデックスブロック用に使用されるバッファメモリの最大値」をあらわします。MySQLのリファレンスマニュアルでは、しばしば「インデックス=キー」として表現されています。つまり「作成したインデックスをメモリ上に維持しておくために、物理メモリ上に確保するバッファの最大値」ということになります。 key_buffer_sizeはデフォルト状態では以下の通り約8Mbytesに設定されています。

    kamipo
    kamipo 2010/02/02
  • [ThinkIT] 第10回:メモリ管理で安定稼動 (1/3)

    一般に、データベースサーバにおいて、ページキャッシュ(ファイルキャッシュ)を管理することは、性能上あるいはシステム安定稼動の観点から重要です。 今回は、DB2がオンライン処理を実行中に、大規模ファイルアクセス(読み取り、書き込み)を伴う処理が実行される場合のメモリ管理を取り上げます。具体的には、Linuxページキャッシュ(ファイルキャッシュ)が大量に確保され、そのかわりにDB2のメモリがスワップされて、DB2がスローダウンしてしまうようなことを回避する方法について検討します。 DB2が利用するメモリは、そのパラメータ構成により上限のサイズを決めることができます。一方のLinux側におけるページキャッシュの最大利用量は、指定する方法がありませんので(Linuxソースコードを自身で修正することを除き)、一般的な対応方法としては以下のようなものが考えられます。 Linuxカーネルパラメータでの対

    kamipo
    kamipo 2009/10/27
    ページキャッシュ内の「更新されたダーティなデータ」をはやめにディスクに書き込んで、ページキャッシュのメモリを再利用されやすくするため、vm.dirty_ratioおよびvm.dirty_background_ratioの値を小さくする
  • [Think IT] 第4回:OpenIPMIでサーバ管理 (1/4)

    IPMI(Intelligent Platform Management Interface)はサーバのCPU、バス、ファン、温度センサ、電圧、ファンなどの基コンポーネントの監視や遠隔地からの制御などを行うためのインターフェース仕様のことです。ハードウェア管理を行うために標準的なインターフェースを利用することで、そのインターフェースを搭載したサーバはベンダーの種類に関係なく共通の手法でハードウェア管理作業を実行することが可能となります。 IPMIによってサーバを管理するには、そのハードウェアに関するIPMI設定を行う必要があります。最低限の設定としては以下があげられます。

    kamipo
    kamipo 2009/06/19
  • [ThinkIT] 第3回:不必要な起動スクリプトの削除と起動プロセスとポートのチェック (1/2)

    リスト1を見ると、今回構築するサーバーでは不要と思われるプロセスがいくつかあります。inetd、portmap、rpc.statdなどは、Xenを使うにあたっては不必要なものです。 update-rc.dは、/etc/init.d配下のスクリプトについて、/etc/rcX.d配下にリンクを作成し、プログラムを起動したり終了したりという動作を制御するためのコマンドです。 一方で、リスト2を見ると、来必要なSSHの待ち受けに使われる以外のポートでも何かの待ち受けが行われています。ポートとプロセスの関係を見るためにlsofというコマンドを使いましょう。ポート22番での接続待ちをしているプロセスを特定するためには、以下のようにします(注2)。

  • [ThinkIT] はじめてのMySQLチューニング 第3回:max_connectionsとthread_cacheのチューニングを行う (1/3)

    前回「第2回:負荷によるベンチマークを試す」の測定結果では、測定途中でmax_connectionsに達してしまい、計画していた測定を完了することができませんでした。そこでmax_connectionsを増やして、再度測定してみましょう。 max_connectionsを増やすには2通りの手段があります。まず「/etc/my.cnf」に設定を追記する方法です。設定値は450に変更します。

    kamipo
    kamipo 2009/04/18
    無闇にmax_connectionsを増やしても性能は向上しない
  • [ThinkIT] 第2回:負荷によるベンチマークを試す (1/3)

    max_connectionsとは、「MySQLサーバが許可する、MySQLクライアントの同時接続最大数」です。この値は、MySQLクライアントから無制限にコネクションが張られることによってMySQLサーバの負荷が増大し、最終的にはサービスが停止してしまう…といった事態を防ぐために、同時接続してよいMySQLクライアントの数を制限することが目的です。 さらにもう少しパフォーマンスに注目していい換えれば、MySQLサーバがもっとも良い効率で稼動できる範囲にMySQLクライアントの接続数を制限する、ということになります。 あなたの環境ではいくつに設定されているでしょうか。パラメータ設定一覧を取得するコマンドは「第1回:定量的な情報収集のススメ」で説明した通りですので、以下のように実行してみましょう。 特に意識して設定を変更していなければ、上記のようにデフォルト値である100が表示されるはずです

    kamipo
    kamipo 2009/04/18
    無制限にコネクションが張られることによってMySQLサーバの負荷が増大し、最終的にはサービスが停止してしまう…といった事態を防ぐために、同時接続してよいMySQLクライアントの数を制限することが目的
  • Red5をインストールしてデモアプリを試す

    Red5をインストールしてみよう 前回(http://www.thinkit.co.jp/article/152/1/)は、FlashでのストリーミングをキーワードにFlashクライアントとサーバー連携の技術的な概要と、それを可能にするオープンソースによるサーバーであるRed5について説明しました。今回は実際にRed5をインストールして動かしていきます。 Red5はOSFlash.org(http://osflash.org/red5)からダウンロードします。2008年10月の現時点では最新版はバージョン0.8のリリース候補版ということになっています。安定版とされているもので最新はバージョン0.7ですので、今回はバージョン0.7を選択します。 Red5はそれ単体で動くスタンドアローン型と、Tomcatなどと連動させて動かすWAR型との2つのタイプがあります。とりあえず試すという場合には、自

  • [ThinkIT] 第5回:カーネルをチューニングする (1/4)

    Linuxのチューニングの際には「第2回:Linuxの設定情報を取得する」で説明したカーネル内部のパラメータの変更をする機会が多くあります。はじめにカーネルパラメータの変更方法を説明します。カーネルパラメータの変更にはいくつかの方法があります。

  • 無料で使えるRed5とは?

    Flashストリーミングって何? 動画を使ったサービスが増えています。ひと昔前でしたらRealやWindows Mediaなどの形式が主流でしたが、最近ではFlashを採用するのが標準的なやり方になってきました。一説によるとFlashプレーヤーの普及率は99%に迫る勢いだそうで、細かいバージョンを問わなければほぼ全員の環境で使えるのがFlashということになるでしょう。 連載では、オープンソースで提供されているRed5というプロダクトを軸に、Flashでの動画再生について紹介していきます。Flashというとクライアントサイドの技術といった感が強いのですが、Red5を使うことによってサーバーサイドとも連携した、より一歩進んだFlashの世界が開けると思っています。 まずは、ストリーミングについておさらいしましょう。「動画」であることと「ストリーミング」というワードが混同されている場面もあり

  • [ThinkIT] 実践!OpenLDAP活用術 | 第1回:LDAPとは何をするもの? (1/3)

    はじめに 皆さんはLDAP(Lightweight Directory Access Protocol)という言葉をご存知でしょうか。 ここ数年で、LDAPを実装したサーバソフトウェアの知名度は上がってきていますので、ご存知の方も多いかもしれません。 例えば、Microsoft社のActive DirectoryやSun Microsystems社のSunONE Directory Server、Red Hat社のRed Hat Directory Server、そして連載で取り扱うOpenLDAPなどが代表的なLDAPを実装したソフトウェアです。しかし、これらのソフトウェア名を知っていても、実際にどんなことができるのか、というところまでご存知の方はまだまだ少ないのではないでしょうか。 連載では、LDAPの概要からOpenLDAPのインストール、設定、アプリケーションとの連携などを通し

    kamipo
    kamipo 2009/01/20
  • [ThinkIT] 第3回:トランザクションの比較 (1/4) -at- 徹底比較!! PostgreSQL vs MySQL

    トランザクション機能をサポートしているのは、PostgreSQLMySQL+InnoDBエンジンであり、MySQL+MyISAMエンジンはトランザクション機能をサポートしていません。ここでのトランザクション機能とは、複数のテーブルやレコードに影響をおよぼす処理を1つの単位とみなし、この単位での処理結果を保証する機能を指します。 具体的には、BEGIN文にてトランザクションを開始していくつかの処理を行った後、処理を確定する場合はCOMMIT文、処理を取り消す場合はROLLBACK文を使用し、トランザクションを終了させるまでの処理です。 トランザクション分離レベルとは、複数のトランザクションが同時に実行された場合に、他のトランザクションからの影響がどのくらい分離するかのレベルを意味します。 ANSI/ISO SQL規格(SQL92)では4つの分離レベル(下記コラム参照)が定義されています。P

  • [ThinkIT] 第2回:MyISAMとInnoDB (3/3)

    InnoDBのテーブルは、クラスタードインデックスと呼ばれる特別なインデックスを備えた構造にて、テーブルスペースの中に格納されます。クラスタードインデックスとは、図2に示すように、リーフと呼ぶインデックスの最下位レベルの部分がテーブルのレコードそのものになっている構成のインデックスです。よって、テーブル内のレコードはインデックス値の順に並んでいるといった特長を持ちます。Oracleでは、この構成を索引構成表と呼び、通常のテーブルと区別して提供しています。 InnoDBのクラスタードインデックスの値としては、プライマリキーが使用されるため、プライマリキーの値順にレコードが並んだ構成のテーブルとなります。プライマリキーが定義されていないテーブルの場合は、InnoDBが自動的に6バイトのローIDと呼ぶフィールドをレコードに追加し、このローIDを用いてクラスタードインデックスを構成します。 クラス

    kamipo
    kamipo 2009/01/15
    プライマリキーが定義されていないテーブルの場合は、InnoDBが自動的に6バイトのローIDと呼ぶフィールドをレコードに追加し、このローIDを用いてクラスタードインデックスを構成します。