You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
この記事はSilbird Advent Calendar 2017 8日目の記事となります。 弊社では、稼働中のサービスの永続化データ格納先としてAmazon RDS for SQL Serverを利用しています。 その中で経験したDB領域の拡張と縮小について、大きな2つのトラブル事例とその対応内容をご紹介しようと思います。 DB領域の拡張、縮小はサービスを一時的止める(メンテナンスに入れる)た状態でないとできないと思われがちですが、サービス稼働中のまま実行することができます。 [事例1] DB自動拡張中に応答停止 1つめはDBの自動拡張についてです。 DBの初期容量は、想定ユーザー数やアクセス数をもとにある程度余裕を持って見積もっていると思います。しかし、Webサービスの世界ではその見積もりどおりにユーザーが増えていくとは限りません。サービス運営者としては嬉しい悲鳴ですが、ユーザー数・滞
はじめに アクセスが急増すると、応答時間が著しく悪化するサイトはありませんか? 普段は200ミリ秒以内で安定してアクセスをさばいているのに、イベントやらキャンペーンやらを開始した瞬間から、普段の2倍や3倍のアクセスが殺到し、その結果、レスポンスタイムが3秒とか9秒とかかかるようになってしまうことってありますよね。 あるサイトの実状 つい先日まで、そんなサイトが私の目の前にもありました。自社で運営している某ソーシャル系のサイトなんですが、イベント開始時刻と同時にアクセス数が急増するのです。とはいえ、所詮は普段の2倍とか3倍程度の数なのだから、少なくとも1秒以内にレスポンスを返せるくらいの性能は維持したいものです。 しかし実際は困ったことに、応答に3秒以上もかかってしまう処理が大量に発生してしまう状況に陥ってしまっていました。これはきっと、どこかにボトルネックがあるに違いありません。 仮説を立
このエントリーは、MySQL Casual Advent Calendar 2011 – MySQL Casual の第 19 日目のエントリーです。 皆さんこんにちは、n0ts こと、Naoya Nakazawa です。 今日は、みなさん日頃からカジュアルに MySQL を運用して、日々生活されていることと思います。MySQL は、非常に安定したオープンソースソフトウェアだと思いますが、どんなものでもときにはおかしくなったりするものです。 「備えあれば憂いなし」ということで、僕は日頃から Nagios というオープンソースソフトウェアを利用して、MySQL がおかしくなっていかいか日々カジュアルに監視しています。 今日は、カジュアルに MySQL を Nagios を使って監視する方法を紹介したいと思います。なお、今回は CentOS 5.7 x86_64 というカジュアルな Linux
アプリケーションエンジニアの人には「なんか重い」という状況に遭遇したらインフラの人にタスクを投げる、という人もいるかも知れません。けど、その重さのどこに原因があるのか。CPUか、ネットワークか、IOかくらいの診断はできた方がアプリ開発においても有益です。 「せっかくつくったシステムがなんか重い」 そんな時にアプリケーションエンジニアとしてできることを書きます。 本職のインフラの人にはぬるい内容だと思います。何を隠そう僕自身がアプリ寄りの人間なので、突っ込んだ話はできないのです。あしからずご了承ください。 なんかサーバが重いなー まずはロードアベレージを調べる サーバが重いと思ったら、まず真っ先にすべきことは対象ホストにSSH接続してロードアベレージを調べることでしょう。ロードアベレージとは 実行されずに待たされているプロセスの数 のことで、多すぎるとやばいと認識しておきましょう。ロードアベ
11. 通信システム リアルタイム通信が不要であればHTTP 送受信(POST)するデータ形式は? XML, JSON, MessagePack, Google Protocol Buffers, 独自シリアライズ 通信の頻度とデータ量、デシリアライズ処理の重 さ、開発&デバッグのやりやすさなどから検討(慣 れないうちはJSONオススメ) 11 12. 想定負荷 例)DAU(Daily Active Users) 10万 10万 x 20 Login/日= 200万 Login/日 = 23 Login/秒 3倍して 23 x 3 ≒ 70 Login/秒 これが日々のピーク Webサーバ1台で12程度さばけると仮定すると、Webサーバ6台 となる。(この時点はざっくり) 基本的にログインが最も重い(多くのデータを読み込み、送信 する必要がある)ので、まずはログインの負荷を目安に考える。
とある勉強会でSunのエンジニアの人のプレゼンを直接聞く機会があったのでメモったことを公開します。基本的な事が多いんだろうけど、非常に参考になりました。 パフォーマンスとは スループット レスポンスタイム/レイテンシ スケーラビリティ 上記のコンビネーション アーキテクチャとは Connection Thread Pool Query Cache Parser SQLクエリをパース Optimizer Storage Engines アプリによって最適なエンジンを選択すべき サーバのコネクション&スレッド my.cnf max_connection (100) 多すぎるとメモリを消費しきる可能性あり thread_cache_size (8) スレッドをコネクションの切断後にもキャッシュしておく数 一般的には max_connections / 3 sort_buffer_size(2M)
もうこれは文化の違いです。MySQL なんてオモチャはダメという 人もいれば、MySQL で何十億レコードでもいけるよ! という人も います。 以下、おもうところをつらつらと書いてみます。 ●機能 違いは多々ありますが、個人的には表層的な問題と思い ますので、ここでは触れません。 ●経験の有無 わたしは Oracle・MySQL 使いですが、DB2 とか SQLServer を使ってと言われると尻込みします。DB2 や SQLServer が 悪いと言っているわけではありません。よく知らない世界 だからです。 上司の方も知らない世界に飛び込むのは怖いでしょう。MySQL を 推したいのであれば、その不安を解消するために、 「わたしが詳しいので社内教育しますよ」 「有償サポートありますよ」 「圧倒的にコストが違いますよ」 「まずはプロトタイプ開発で MySQL 使ってみませんか?」 など、上
こんにちは!インフラエンジニアの柳瀬です! 先日、東京にもオープンしたAmazon VPCがこれから注目を集めてくるに違いないと確信しているのですが、『実はその素晴らしさがあまり認知されていないのではないか?』と思う事があります。 Amazon VPCとはどのようなサービスでしょうか? AmazonとVPN接続が出来るサービス! と直感的に思ってしまいますが、これは個人的に半分だけ正解だと思っています。 といいますのも、VPN接続だけでなく他にもとても素晴らしい使い方が出来るからです。 今回はみなさん良くご存知のCMSであるWordPressを例にして便利な機能を使ってみたいと思います。 まず最初に今回のエントリで紹介する機能は以下となります。 VPC内に公開用と非公開用の2つのサブネットを作成するフロントのWebサーバは公開用へ、DBサーバは非公開用へ配置するDBサーバのメンテナンスはN
最近マイブームのEntity Framework。データベースマイグレーションなんかも簡単にできちゃうし、とても便利なフレームワーク(O/Rマッパー)です。 Entity Framework Code Firstに関する解説なんかも書いちゃったりしてます( http://densan-labs.net/tech/codefirst/ )。 O/Rマッパーはとても便利なものですが、どんなクエリをSql Serverに対して発行しているかをキチンと理解して使わないと、時々痛い目を見ます。例えば、EFを使ってデータをInsertするには、以下のようなコードを書きます。 using (var context = new DbContext()) { context.Models.Add(new XXXModel{ ... }); context.SaveChanges(); }単純にデータをSql
UnixおよびLinux系サーバの特長の1つは、SSHサービスを実行することでシステム管理者が安全にリモート接続をできるようにしてあることだ。もっともセキュリティ管理者に言わせれば、こうしたSSHサービス自体に対する攻撃も現在では当たり前の手口となってしまっている、ということになるだろう。そこで本稿では、SSHサービスを実行するマシンをブルートフォースアタック(総当たり攻撃)から防護する手段を解説することにする。そのために利用するのは、pam_ablプラグインというSSH用のプラグイン可能認証モジュール(PAM:pluggable authentication module)である。 pam_ablの入手については、モジュールをダウンロードしてコンパイルを自分で行うか、リポジトリからバイナリパッケージをダウンロードして直接インストールすればいい。モジュールをコンパイルする場合は、ソースのダ
拡張され続ける InnoDB のデータファイルのサイズを小さくする方法 2006-07-07-2: [MySQL] MySQL でトランザクションを可能にするストレージエンジンとして InnoDB があります. InnoDB のデータファイルは,MyISAM テーブルと異なって,デフォルトでは ibdata1 というファイルにデータが蓄積されていくとこになります. MySQL の datadir に自動拡張する 10 MB の ibdata1 ファイルが 1 つと、5 MB の ib_logfile ログファイルが 2 つ作成されます - 7.5.3. InnoDB 起動オプション http://dev.mysql.com/doc/refman/4.1/ja/innodb-start.html この ibdata1 は,大量のデータを追加していくと,自動的にサイズを拡張していきます. ただ
あとで書く、と言った手前なので書くとします。 DSASの中の人がすごい勢いで LVS の話を書いてくれてます。この辺。LVS を使うと Linux と箱でロードバランサが作れちゃいます。普通に買ったら数百万とかしちゃうやつ。 DSAS の中のひとに感謝しつつ、いい機会なのでやってみよう! と思っていろいろ試して昨日あたりからはてなの中でも LVS + keepalived で動かしはじめてます。いまのところ問題なし。 そのロードバランサをどこに使ってるかですが、普通ロードバランサというとインターネットからの入り口のところに置いてウェブサーバーの負荷分散に使うイメージがあります。が、今回ははてなでは MySQL のスレーブの手前に置くという役割でとりあえず使いはじめました。 +-----------+ +-----------+ | mod_perl | | mod_perl | +----
よく訓練されたアップル信者、都元です。AWSにおいては、ネットワーク環境をあまり気にせず、数クリックで簡単にサーバを構築できるのは一つのメリットだと言えます。しかし、本格的に運用するシステムに関しては、ネットワーク環境をコントロールする需要も出てきます。AWS Virtual Private Cloud (VPC)を使えば、AWS上に仮想ネットワークを定義し、その上に各種サーバを配置することができます。 深く考えずに非VPC環境に構築してしまったAWSサーバ環境は、簡単にはVPC環境に移行することはできません。従って弊社では、小さなシステムであっても、最初からVPC環境にシステムを構築することを推奨しています。「非VPCが許されるのは小学生までだよねー」とボスが申しておりました。かといって、ネットワークの構成をゼロから考えて構築するのもひと苦労であるため、本エントリーでは、システムの初期段
MySQLを5.5にバージョンアップしました。 MySQLを起動すると、 Faildに!!!! ログを調べてみたら「default-character-set」ってオプションて何?みたいなのが出てました。。 で、調べたら解決しましたのでメモ。 [mysql]MySQL 5.5.3-m3, 5.5.4-m3 同時リリース ここに書いてあるとおり、MySQLサーバのほうは 「default-character-set」というオプションが廃止されて、 「character-set-server」になった模様。 で、下記のようにmy.cnfを修正してMySQLを起動したら無事に再起動できました。 # vi /etc/my.cnf # default-character-set=utf8 ←ここはコメントアウト character-set-server=utf8 # ここを追加 ちなみ
EPELリポジトリ導入(EPEL)を参照してEPELリポジトリを導入する※CentOS7の場合 [root@centos ~]# yum -y install phpMyAdmin ← phpMyAdminインストール [root@centos ~]# vi /etc/httpd/conf.d/phpMyAdmin.conf ← phpMyAdmin用Apache設定ファイル編集 <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 Require ip ::1 Require ip 192.168.1.0/24 ← 追加(内部ネットワーク(例:192.168.1.0/24)から
YAPC::Asiaのスライドで予告していた通り、実際に弊社のいくつかのサービスで使っている my.cnf を公開しました。 github: https://github.com/kazeburo/mysetup/tree/master/mysql 今回、公開した理由はMySQl Beginners Talksの発表の中でも触れている通りです。MySQLのソースコード中に含まれるサンプルのmy.cnfが最近のサーバハードウェアや運用に合わなくなって来ているという状況で、自分の設定にイマイチ自信が持てていない人は少なくないはず。そこで各社秘伝のタレ的な my.cnf をOpen & Shareすることで、モダンなmy.cnfを作り上げる事ができるんじゃないかという考えの下、今回 github にて公開しました。 ファイルは4つあり、それぞれ MySQL 4.0、5.1、5.5、そしてテスト中
MySQLのインストールが終了した2台がある状態より設定を開始します。 マスターとスレーブの2台がある状態からスタートです。 事前準備 事前に2台のサーバーのデータが同じである必要があります。 mysqldump等でダンプを行い、データベースが完全に同じ状態とします。 マスターの設定 設定ファイルの編集 vi /etc/mysql/my.cnf 以下のように編集 server-id = 1 ↓ server-id = 18 (←ユニークな適当な数字へ変更) また以下を設定ファイル内のどこかに追記(ある場合はそのままでOK) log-bin = mysql-bin アカウントの作成 レプリケーション用のアカウントをマスターに作成する。 このアカウントはREPLICATION SLAVE権限を持っている必要がある 以下はすべての接続を許す’repl’ユーザーを作成する例。(グ
MySQL is a widely used and fast SQL database server. It is a client/server implementation that consists of a server daemon (mysqld) and many different client programs/libraries. You can check the same tips from here.Here is very useful tips for all mysql DBA’s,Developers these tips are noted from MySQL Camp 2006 suggested by mysql community experts. Kaj (Most Excellent Obvious Facilitator) Index s
しわっす!DBA 兼オペレーションエンジニア兼タスクマネージャやってる riywo です。何のネタを書こうかなぁと考えたのですが、正直ネタを仕込む時間もなかったので僕がいつもやってることをさらっと紹介するということで勘弁して下さい>< MySQL がおかしい! 03:14 hidek: なんかエラー出まくってるんだけど! 03:14 zigorou: MySQL と通信してるとこっぽい 03:15 riywo: 見ます こんなやりとりは皆さん日常茶飯事ですよね?ね?ね?こんな時に、DB に責任を持つものとして真っ先に対応するのが僕らの仕事です。でも、じゃあ具体的にこのあと何をしましょう?既にサービスはエラーだらけで一刻を争う状態です。 (対応開始) まずはエラーメッセージ 今回の様な場合はアプリのエラーログにどばっと MySQL に関するエラーが出ているでしょう。まずはそれを見ることが始ま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く