サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
k-1-ne-jp.blogspot.com
急にサーバーにsshで繋がらなくなった・・・(; ・`д・´) サーバーが落ちたのかと思いサーバー会社に再起動の依頼を出そうかと思ったら 某氏が別のユーザーならログインできるとのことΣ(゚Д゚ υ) アリャ 以下、sshでログインできないアカウント名をuser1、 ログインできるアカウント名をuser2とする。 $ ssh user1@192.168.0.2 user1@192.168.0.2's password: Write failed: Broken pipe -vvオプションをつけて再度実行してみる。 $ ssh -vv user1@192.168.0.2 OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010 debug1: Reading configuration data /home/user1/.ssh/config debug1:
前回の「GridViewを使ってみる(SDカードの画像表示) 」で、 SDカードに保存されている画像が大量に有った場合に、 画像が表示がされるまでにだいぶ待たされる事になってしまいます。 そこで、今回はGridViewのデータを動的に追加できる方法を調べてみました! ついでにGridViewのクリックイベントもつけてあります(ΦωΦ)フフフ… ■AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.gridview3" android:versionCode="1" android:versionName="1.0" > <uses-sdk andr
前回のViewPagerを使ってみるの続きでViewPagerについてになります。 前回は初期化されたアダプターのデータを表示させただけでした、 今度は動的にViewPagerのビューの中身を変更したり、 ビューの更新、追加を行いたいと思います。(`・ω・´)シャキーン (削除は微妙になってしまいました・・・orz) ■AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.viewpager2" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVe
今回は、GridViewをネット上に置かれている画像で表示したいと思います。 流れとしては次のようになります。 1.APIにリクエストを投げて、その結果をJSON形式で受け取り解析する。 2.解析したデータを元に、表示する画像情報を取得してAdapterにセットする。 3.セットされたデータを元にAdapter内でVolleyを利用して画像を1つずつ読み込む。 という形になります。 画像の読み込みにはVolleyを使いますので、こちらの記事を参考にして設定を行ってください。 「Volleyを使ってみる(ダウンロード&設定など) 」 ■リクエストを受け付けるAPI側のソースコード(PHP) 画像にはGoogle先生の画像を拝借させて頂いていますシーッ! d( ゚ε゚;) (画像は任意のやつを設定してください) また、json形式のデータに変換するためにZend_Jsonを利用しています! <
今まであまり意識していなかったのですが、 とある案件でMySQLのサーバーでHDDのパーティションを切って運用しています。 その時に、負荷テストとして大量なレコードをテーブルに作成しようとした際に、 あっという間にHDDが100%になってしまい、SQLが実行できない現象が発生してしまいました(´;ω;`)ウッ… その時のエラー内容が次のようになります。 #126 - Incorrect key file for table '/tmp/#sql_448f_0.MYI'; try to MySQLがSQL実行時に一時的な作業ファイルとして作成するファイルみたいですが、 このファイルがあっという間にHDDを圧迫してしまい、SQLが落ちるという現象でした。 以下の手順でHDDの容量が少ない環境などで簡単に試すこと出来ます! ■テストテーブル作成 CREATE TABLE `tmp` ( `id`
今回は、Fragment利用時の画面回転のライフサイクルについてになります。 前回の「Fragmentを使ってみる(ライフサイクルについて)」の続きな感じです(ΦωΦ)フフフ… 画面の回転が発生するとActivityで次の流れで実行されActivityが再構築されます。 1.onPause 2.onStop 3.onDestroy 4.onCreate 5.onStart 6.onResume FragmentはActivityと同様のライフサイクルを持っているため、 上記の流れと同じイベントが発生されます。 そのため、画面が回転されるたびにFragmentのonCreateViewも毎回呼ばれてしまいます。 その状態でonCreateでFragmentの初期化処理として、 ネット上からデータを持ってきたりとか行うような処理があった場合に、 画面が回転されるたびに、毎回実行されてしまい非効
データの復旧時やslaveの追加時のセットアップ用にdumpファイルをリストアする際に なるべく時間をかけずにやれる方法です!m9( ゚Д゚) ドーン! リストアの性能を上げるために次の項目を一時的に無効化します。 ・一般クエリログの無効化 ・バイナリーログの無効化 ・Double Writeの無効化 ・コミット時のディスクフラッシュの無効化 vi /etc/my.cnf #ダブルライトバッファの無効化 skip_innodb_doublewrite #slaveでバイナリーログを出力している場合には設定をコメントアウトして無効化にする #log_slave_updates # /etc/init.d/mysqld restart Stopping mysqld: [ OK ] Starting mysqld: [ OK ] ■一般ログの無効化 mysql> SHOW GLOBAL VA
前回の「masterha_master_switchについて(前編) 」からの続きで、 masterha_master_switchコマンド実行時に--master_state=aliveを指定した場合のファイルオーバーについてになります。 --master_state=aliveは前回と違いmasterを停止しなくても フェイルオーバーを実行できるため検証が楽チンです( ´∀`)bグッ! ■--master_state=aliveが指定された場合に利用されそうなオプションについて ※誤解などがあるかもしれないので詳細やその他オプションは公式のドキュメントを読んでください! masterha_master_switchのドキュメント - conf 設定ファイルの指定 - master_state alive or deadが設定できる。 deadはmasterが停止している場合に設定する
今回は、FragmentとActivityのやりとりを試したいと思います(`・ω・´)シャキーン 動作的には、上部のFragmentをクリックすると、下部のFragmentのテキストを変更して、 下部のFragmentをクリックすると、上部のFragmentのテキストを変更するようにしました( ̄ー ̄)ニヤリ 各FragmentのイベントをActivityが受け取り、 そのイベントを別のFragmentに伝えるような流れになっています。 ■AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.fragment6" android:versionCode
ブログなんて今までやったことがなく、読み専門だったんですけど、 技術的なブログではソースコードを載せる事が結構あると思います。 なのでソースコードを整形してくれる機能は、 一般的にブログの機能として備わっているのかと思ったら、 そうじゃないことにやってみて初めて知りました・・・:(;゙゚'ω゚'): そんなわけなので、BloggerにSyntaxHihglighterの導入φ(`д´)メモメモ... ■手順1 Syntax Highlighter Scripts Generatorで整形が必要な言語を選択する。 Generateボタンを押したらテキストエリアにコードが表示されるからコピペする。 ■手順2 コピペしたコードを、テンプレート>HTML編集で、12行目ぐらいにある<title>タグの後に挿入する。 終わりっと。 色々と出来るみたいですがとりあえず基本的な機能があれば良いので、 今
もしかしたら後々、はMySQL MHAで利用するかもしれないので、 MyDNSサーバーを試してみました(`・ω・´)シャキーン MyDNSはDNS情報をMySQLやPostgreSQLなどで管理が出来るらしいです(・∀・)イイネ!! DNSラウンドロビンを使って振り分けを行える、その際に重みをつけることも可能。 ただし、振り分け先の死活監視は行わない。 後は、phpで動くDNS情報登録画面があるとか! 似たものとして、GREE製のPrimDNSとか、PowerDNS、AmazonRoute53などがあります。 PowerDNSもやってみたいけどとりあえず、 DeNAでMyDNSは使われているそうなので、こちらからテストを試したいと思います。 こちらの会社さんでは、スマートフォンゲーム開発で利用されているそうです。 「Lord of Knights の裏側見せます!~Unity + PHP
久々にkagoya vpsのテスト環境にログインしてみたら・・・mysqlがとまっとる!!! 何か少し前にサーバーの再起動を行います的なメールが来ていたので、 その影響で止まっていたのかな? 早速、起動を試した際におきた問題の話です:(;゙゚'ω゚'): masterは簡単に起動できたのですが、 slave側で起動後にslave startを実行してみたらエラーになってしまいました。 エラー内容は次のような内容になっていました。 mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Master_Host: *********** Master_User: slave Master_Port: 3306 Connect_Retry:
memcachedをphpから利用するモジュールで、 memcacheモジュールとmemcachedモジュールという2つがあって、 頭がごちゃごちゃしたのでまとめておきたいと思います:(;゙゚'ω゚'): 社内でlibmemcachedって何に必要なんだっけ・・・? memcachedサーバー側で必要でクライアント側にはいらないんじゃないっけ? とか混乱してたのはナイショシーッ! d( ゚ε゚;) ■PECL::memcache ・PECL::memcacheのURL ・PHP4.3.3以上で使用可能 ・インストール時に他のライブラリに依存しない ・分散が出来る。(複数サーバーに対応)(PECL::Memcacheが2.0以降)※1 ・cas対応(3.0.0以降)※2 ■PECL::memcached ・PECL::memcachedのURL ・PHP5.2.0以上で使用可能。 ・memc
スローログの解析には、mysqldumpslowや、Maatkitなどがあるみたいです。 今回はその中のmysqldumpslowを使ってみました!( ̄ー ̄)ニヤリ 基本的にはスローログのファイルに対して次のコマンドを実行するだけです!( ´∀`)bグッ! #一番時間がかかっているクエリ mysqldumpslow -s t /var/lib/mysql/mysql-slow.log #実行回数の多い順 mysqldumpslow -s c /var/lib/mysql/mysql-slow.log #合計実行時間順に10件表示 mysqldumpslow -s t -t 10 /var/lib/mysql/mysql-slow.log #平均実行時間順に10件表示 mysqldumpslow -s at -t 10 /var/lib/mysql/mysql-slow.log #一番時間
zabbixでMySQLを監視するためにテンプレートを適用したいと思います。 zabbixをインストールしただけではMySQLのテンプレートは無いので、 以前の記事を参考に、監視テンプレート追加してください。 また、MySQLの監視を行いたいサーバーにzabbixエージェントがインストールされていない場合には こちらの記事を参照してインストールまで行ってください。 ■手順1 MySQL監視対象サーバーでzabbixエージェントの設定の編集。 vi /etc/zabbix/zabbix_agentd.conf #Zabbixサーバーからのリモートコマンドを許可するかどうかを設定します。0:許可しない,1:許可する EnableRemoteCommands=1 #実行されたシェルコマンドの警告をログに記録するかを指定。0:無効,1:有効 LogRemoteCommands=1 #処理がタイムア
以前こちらでバーチャルドメインの設定を行いましたが、バーチャルドメイン設定は正規表現を用いて行う事もできます。 例えば、会員100人のメールアドレスがID番号で「1~100@mail.aaaa.com」などになる場合、1~100のうちどのアドレスにメールを受信したとしても同じユーザーに転送したい(同じプログラムを起動したい)事はあると思います。 その場合、以前の設定方法だと100行記述が必要でしたが、決まったルール内で可変となる場合は正規表現を用いて転送設定を行うと短い記述で設定が出来ます。 ここでは例として 「1111@mail.aaaaa.com」「2@mail.aaaaa.com」「33333333@mail.aaaaa.com」など 「数字@mail.aaaaa.com」宛てのメールを受信した場合、ユーザー「yamada」に転送する設定を行います。 pcreが表示されれば問題ありま
引用:サーバにDoS耐性を付ける http://stanaka.hatenablog.com/entry/20070204/1170553603 ウェブサービスでは、アクセスが集中して、サイトが落ちる、というのは、よくある話です。 純粋に人気が出てアクセス集中するなら、サーバ管理側の責任と言われても、しかたないと思います。 しかし、botやF5アタックによる突発的な集中アクセスで、落ちてしまう、というのは、運営側としても、あまり納得がいくものではありません。 そのような突発的なアクセスに対応するために、大量のアクセスをしてくるクライアントを検出し、優先度を落すか、アクセス禁止にする方法などがあります。 というわけで、Apacheモジュールでそれを検出するためのmod_dosdetectorを開発しました。 ◆インストール手順 1.mod_dosdetector-0.2のダウンロード # w
MySQLTunerというMySQLをチューニングのアドバイスをしてくれるものがあるらしいので使ってみました! ■gitからのダウンロード用 https://github.com/rackerhacker/MySQLTuner-perl/ mysqltuner.pl を実行するだけ。 # git clone git://github.com/rackerhacker/MySQLTuner-perl.git # cd MySQLTuner-perl # perl mysqltuner.pl ■直接ダウンロード用 # wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl # chmod +x mysqltuner.pl # ./mysqltuner.pl ■実行結果 -------- Reco
やっとMySQL-MHAを試してみました(`・ω・´)シャキーン ■MySQL MHAとは DeNAの松信嘉範氏が作られたものです! 機能や概要について ※MHA for MySQLとDeNAのオープンソースの話から抜粋になります。 主な特徴 ・マスターの稼働監視からフェイルオーバーまでを自動でできる フェイルオーバーを手動で行なうことも可能 ・フェイルオーバーが秒単位で可能 アクティブ/アクティブ型のため (障害検知に10秒程度→マスター修復に4秒ほどらしい) ・非同期レプリケーションにもかかわらず、スレーブ間での同期が取れている ・任意のスレーブを新マスターにできる ・いくつかの箇所から外部スクリプトを呼ぶ機能(拡張ポイント)がある 電源OFFやIPアドレスのフェイルオーバーなどに使う ・MySQL5.0以降であれば標準のMySQLで動作する ・インストール/アンインストールにあたり現
■memcachedとは? memcachedを知り尽くすから抜粋 http://gihyo.jp/dev/feature/01/memcached/0001 memcachedは,LiveJournalを運営していたDanga Interactive社で,Brad Fitzpatrick氏が中心となって開発されたソフトウェアです。 現在ではmixiやはてな,Facebook,Vox,LiveJournalなど,さまざまなサービスでWebアプリケーションのスケーラビリティを向上させる重要な要素になっています。 多くのWebアプリケーションは,RDBMSにデータを格納し,アプリケーションサーバでそのデータを引き出してブラウザ等に表示させています。 しかしデータが大量になったり,アクセスが集中すると,RDBMSの負荷があがり,データベースのレスポンスが悪化し,Webサイトの表示が遅延するなど大
今回はMySQLで出力されるログのローテート設定を行いたいと思います。 MySQLのログには、エラーログ、一般クエリログ、スローログがあります。 エラーログは、MySQLの起動時などにエラーが発生した場合に記述されるログ。 一般クエリログは、MySQLが実行した全てのSQLのログ。 スローログは、実行されたSQLが指定された実行時間を超えた場合や、 インデックスなどが使われていないSQLが実行された場合などに記述されるログ。 と、なっています。 上記のログを設定していない場合にはmy.cnfで設定行い再起動しておく。(再起動すると各ログファイルが作成される) ログローテーションの設定でログのファイル名の拡張子を利用して、 まとめて設定するので拡張子は.logで統一しておく。 #エラーログ log-error = /var/lib/mysql/mysql-error.log #一般クエリログ
たま~に、更新系の重いSQLを実行してしまい、 Waiting for table metadata lockが大量に発生してしまった場合に、 プロセスをこっそりkillしたり・・・orz 大人の事情でその重いSQLを殺せず、Waiting for table metadata lockが発生している方を殺したり・・・((((;゚Д゚))))ガクガクブルブル そういうときに大量のプロセスを殺す際に、今まではSHOW PROCESSLIST;を打って、 そこに表示されるプロセスIDを一つ一つコピペをしてやっていました。 ただ、その際にSHOW PROCESSLIST;が表示してくれる表は次のように表示されるので、 mysql> show processlist; +---------+----------+---------------------+----------+------
前回テーブルスペースについて調べてみた後に、 運用中のサーバーの設定をやファイルを確認してみたら・・・innodb_file_per_tableが使われていない!!!:(;゙゚'ω゚'): という事なので、早速設定の方を試してみましたワッショイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワッショイ ■手順1.現状のibdata1のサイズの確認をしてみる # ls -alt /var/lib/mysql/|grep ib -rw-rw---- 1 mysql mysql 277899902976 11月 10 16:16 2012 ibdata1 -rw-rw---- 1 mysql mysql 5242880 4月 16 15:06 2012 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 4月 6 12:05 2012 ib_logfile1 2778
前回、HAProxyによるフェイルオーバーを行ったので、 続けて今回は自動でmaster,slaveの切り替えを行いたいところですが、 その前に手動での切り替えを行いたいと思います(`・ω・´)シャキーン 今回の構成ははmaster1台(server-idは10)、 slave2台構成(slave1はserver-idが20,slave2はserver-idが30)のレプリケーションを行っている環境で、 slaveをmasterに変更し、masterをslaveに変更してみたいと思います( ´∀`)bグッ! その前に注意点として、次の点があるそうです。 MySQLドキュメントから一部抜粋 http://dev.mysql.com/doc/refman/5.1/ja/replication-solutions-switch.html スレーブを --log-bin はあるけれども --lo
タイトルから何か連想した人は友達になれそうです(ΦωΦ)フフフ… さて、いつかの記事で大量なレコード作る実験をしていた時に、 実験をしておきながらせっかちな自分は SQLが終わるのを待てずに、SQLのプロセスをkillしてしまいました。(`・ω・´)シャキーン またなぜかkillしたのにずっとSHOW PROCESSLISTに残ってしまっていたので、 MySQLの再起動すれば消えるだろう?的な発想でMySQLを再起動したときの泣ける話です(´;ω;`)ウッ… MySQLを停止しようとしたら、 # /etc/init.d/mysqld stop Timeout error occurred trying to stop MySQL Daemon. Stopping mysqld: [FAILED] となり、停止に失敗してしまいました。 プロセスを見てみると、 # ps aux|grep -i
■LVSとは LVS(Linux Virtual Server)は、Linuxサーバにおいて、 HPC、HA、ロードバランサの機能を動作させるソフトウェア群とのことです。 ・IPアドレスに届いたパケットを必要に応じて、リアルサーバーに転送する。 ・転送先のリアルサーバーを複数指定できる。 ・パケットの転送では、各リアルサーバーに均等に分散することや、重み付けをして分散も出来る。 転送方法には、NAT(Network Address Translation)、ダイレクト・ルーティング(DSR方式)、IP-IPカプセル化(トンネリング)がある。 ■パケットの転送方法の違いについて ・NAT(Newtwork Address Translation) エンドユーザーからパケットを受け取ると、送信先とIPアドレスが、選択されたリアルサーバーのものに置き換えられる。 返信パケットが通る際にも置き換え
前回はmysql-proxyによるslaveの負荷分散でしたが、 今回はHAProxyによる負荷分散&フェイルオーバーを行いたいと思います ・HAProxyとは 一部抜粋 http://dexlab.net/pukiwiki/index.php?Memo%2FLinux%2Fhaproxy L7ロードバランサ。アプリケーション層のHTTPやSMTP等が対象。 対するL4ロードバランサはネットワーク層のTCP/UDP等が対象 メリット DB Slave, memcacheノード追加/変更/削除時にアプリケーション側を変更しなくて良い。常にローカル(127.0.0.1:xxxx)へアクセスすれば良い 負荷分散/フェイルオーバー機能を担保してくれるため、アプリ側で実装しなくて良い 上記ノード変更時にサービス停止の可能性が減る 負荷分散/フェイルオーバー機能を持たないソフトでも利用できる場合がある
今回はレプリケーション環境にて、slaveのロードバランサー用にmysql-proxyを導入してみました。 mysql-proxy自体には、更新系と参照系のクエリをそれぞれマスタとスレーブに振り分けて負荷分散する、 R/W Splittingと呼ばれるものがあるそうですが、バグなどがありまだ動作が確実じゃない?みたいなので、 今回はアプリ側からslaveを参照するときだけmysql-proxyを経由して接続し、 負荷分散を行い用途に利用しました。 構成的には、web1台、master1台、slave2台、mysql-proxy用のサーバー1台の計5台構成のサーバーで設定を行いました。 (web,master,slave1,slave2,mysql-proxy) 負荷分散の仕組みとしては、HAProxyを利用したやり方もあります。 HAProxyはこちらに書いてあります。 こっちの方がフェイ
ここでは、メールの受信をトリガーにしてphpプログラムを起動させる設定をしていきます。 プログラムの起動設定は、「/etc/aliases」に直接指定する方法と任意のファイルをincludeさせてその中で指定する方法の2つありますので、順に設定方法を見ていきます。 一.「/etc/aliases」に直接指定する方法
次のページ
このページを最初にブックマークしてみませんか?
『ケーワン・エンタープライズのエンジニアメモ(`・ω・´)ゞビシッ!!』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く