質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.40%

  • HTML

    9940questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • Ruby

    8496questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    7916questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • CSS

    6464questions

    CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

サイトの表示を早くするにはどうすればよいでしょうか?

受付中

回答 4

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,202

Mkato

score 82

前提・実現したいこと

現在作成中のサイトの表示を早くしたいです。

発生している問題・エラーメッセージ

現在ruby on railsでサイト作成を行っておりますが、サイトの表示が遅いです。

体感でも遅いと思うのですが、Chrome DevToolsで確認しました。
TTFBが問題あるのかと考えますが、詳しくないのでよく分かってませんが。。。

トップページの表示
トップページ

フォーム入力ページ
フォーム

その他のページ(プライバシーポリシーなどの殆どテキストページ)もTTFBは6-24sになります。(ms)では御座いません。
content downloadは1-30ms程になります。

素人なりに調べるとTTFBはサーバ性能によるところが大きいので、サーバを変えた方がいいといった書き込みがあったり、キャッシュを使えば大丈夫との書き込みもあったりで。。。

サクラのVPSを利用していますが、サーバを変えた方がよいでしょうか?
それともサーバのココを確認しろ!!といった所御座いますでしょうか?

宜しくお願いします。

サーバの状況

CentOS 6.7
ruby 2.1.3
Rails 4.2.3
nginx 1.8.0
unicorn

契約しているサーバ
sakura VPS 2G
メモリ 2GB
ストレージ 200GB(HDD)
CPU 仮想3Core

サイトの内容

サイトはトータル10ページ程で、web上には公開していますが、他サイトからのリンク等は行っていません。
(新規ドメインで、公開したばかりと考えて頂ければと思います。)
サイトは殆どテキストでいくつかのページでお問い合わせフォームの様な物がある程度です。

追加情報 3/2

matobaa様ご質問有難う御座います。
本サーバーのnginxに2サイト程追加してみました。 
新しく追加した方でもTTFBは5S-20S 程度で遅いですね。 
関係ないかもしれませんが 

sudo nginx -s stop 
sudo fuser -k 80/tcp 
sudo service nginx start 

 
で再起動も行い確認しましたが、若干早くなったのですが遅いですね。 (早くなったといっても以前より1S-3Sとかなのでタイミングの問題かと考えますが。。。) 

本サーバと同じ様なものをsakura VPSの512MBにも設定してみました。 
メモリ512MB 
SSD:20GB 
仮想1Core 
こちらのTTFBの結果は400ms-5Sと早くはないのですが、2Gのよりも早いです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2016/03/02 17:08

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

  • Mkato

    2016/03/02 17:36

    やってほしいことだけを記載した丸投げの質問との指摘を受けましたが、私の実力不足のため大変申し訳御座いません。

    何の情報をどの様に書き込みさせて頂くと良いのか分かりませんでしたので、現状で私の分かる範囲での調査した事と試した事を記載させて頂いております。
    現状では私の分かる範囲として、サイトの表示が遅くTTFBの時間が多く掛かっているのですが、その原因が分からず、困っているといった状況です。
    もし必要な情報等御座いましたらご質問頂けると幸いです。またこの方法を試してみては?などもあれば本当に助かります。

    サーバの設定等初心者ですので色々質問等の内容把握や抜けがあるかと思いますが宜しくお願いします。

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2016/03/02 21:51

    サイト見てみたけどサーバの問題だと思う、あとtokyo otaku modeってサービスあるから難しいと思うよ

    キャンセル

回答 4

+1

過去の経験なのですが、すべてのTTFBが12秒程度のゲタを履いた状態になっていたことがあります。
Webサーバ側でパケットキャプチャしてみて、やっと原因を突き止めました。このときは、Webサーバが問い合わせるDNSクエリの応答が遅かったことが原因でした。

https://technet.microsoft.com/en-us/library/cc782142(v=ws.10).aspx の図でいうところの左下がWebサーバであり、問合せ先のDNSサーバが上流DNSサーバに訊きに行く経路が塞がっていてTCPタイムアウトまで待たされていました。こんなのふつーわかんねぇ。と思った。
このときはDNSサーバのforwarderの設定を是正してもらって解決しました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/03/02 13:10

    ご回答有難う御座います。
    なるほどDNSの設定の関係もあるのですね。
    現状はお名前.comで取得したドメインをsakuraのDNSで設定して利用しています。お名前のipを設定した程度で何か特別な設定などはしていません。

    サーバのパケットキャプチャを今まで行った事がないのですが
    http://d.hatena.ne.jp/addition/20130418/1366293557
    こちらの記事にあるWireShark(ワイヤシャーク)を利用して行うイメージで良いでしょうか?
    ただブログの実行結果を見てもよく分からないので、どうしようかな。。。サーバー屋さんにお願いするといった感じでしょうかね。。。

    キャンセル

  • 2016/03/02 14:52

    さくらのVPSって使ったことないのですが、たぶんGUI画面がなくてCLIでしか操作できないんですよね。そうだとしたら、Webサーバ側ではキャプチャした結果をファイルに吐きだして、手元のGUIがある環境のWiresharkで開いて観察するのがよいと思います。

    http://qiita.com/tossh/items/4cd33693965ef231bd2a を参考に、Webサーバ上で
    tcpfump host DNSサーバのIPアドレス > dnsquery.cap
    とか実行してやれば、Webサーバ⇔DNSサーバの通信だけをピンポイントで取得できます。 (こうしないと ssh とかのパケットもじゃんじゃん撮っちゃうので都合が悪い)

    取得したファイルを手元に持ってきたら Wiresharkで開いてみて、DNSのリクエストとリプライのあいだに奇妙な間隔があいていればクロです。

    キャンセル

  • 2016/03/02 16:16

    ご回答誠に有難う御座います。
    頂いた方法で試してみたいと思います。

    併せましたて"情報の追加・修正の依頼"のご質問のご回答を本文にも追加しましたのでご確認頂けると幸いです。
    結果を申し上げますと本サーバのnginxに追加で2サイト程設定しましたが、追加したサイトでもTTFBは遅いのでnginxが怪しいのかなーと。。。

    宜しくお願いします。

    キャンセル

0

搭載メモリが少ないようですので、メモリが足りてないのではと思います。
freeでメモリ使用量が著しく減っていないかを確認してみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/03/01 22:49

    ご回答有難う御座います。
    初めてfreeのコマンドを入力してみました。

    以下短期間で何度か実行してみました。
    1) freeのMemはあり、Swapが0の時。
    ```
    $ free
    total used free shared buffers cached
    Mem: 1922072 1868696 53376 88 2828 3268
    -/+ buffers/cache: 1862600 59472
    Swap: 2097148 2097148 0
    ```
    2) freeのMemとSwap両方余裕?がある時。
    ```
    $ free
    total used free shared buffers cached
    Mem: 1922072 1853688 68384 88 324 8056
    -/+ buffers/cache: 1845308 76764
    Swap: 2097148 2059500 37648
    ```
    3) freeのMemは余裕?とSwapは少ない時。
    ```
    $ free
    total used free shared buffers cached
    Mem: 1922072 1628356 293716 88 7840 38496
    -/+ buffers/cache: 1582020 340052
    Swap: 2097148 2097144 4
    ```

    Mem及びSwapが0になっていなければ大丈夫なのかなーと考えますが、如何でしょうか?
    1の時はSwapが0なのですが、Memはまだ余裕?があるので大丈夫なのかな?と考えますが。。。
    この辺りの知識が全くなので把握出来ていませんががメモリ不足でしょうか?

    宜しくお願いします。

    キャンセル

0

情報量が少ないので何とも言いがたいですが、とりあえず下記を参考に調査するといいと思います。

  • サーバが重い時にすること
    http://qiita.com/yuku_t/items/2f5341e4aa635800a0a1

HDDの容量が多くない気もするので下記のコマンドも合わせて調べてみると良いかと

  • ディスク使用量を調べる
$ df -ah

これは全くの勘なんですけど、unicornのログってデフォルトではログローテーションがされないと思うので、もし設定していないようであれば、unicornのログが圧迫しているのでは無いのかなと。。。

まあ、上記のコマンド等で調べてみないと何ともいえませんが。。。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/03/02 01:11

    ご回答有難う御座います。情報量少なく大変申し訳御座いません。
    VPS及びサーバ周りはさっぱりでして何を情報としてお伝えすれば良いのか分かりませんでして。

    まず頂いたURLにてまずロードアベレージを調べてみました。
    ```
    $ uptime
    00:20:26 up 98 days, 10:02, 2 users, load average: 0.38, 0.55, 0.75

    ```
    ```
    $ uptime
    00:25:31 up 98 days, 10:07, 2 users, load average: 0.41, 0.41, 0.62
    ```
    ```
    $ uptime
    00:27:11 up 98 days, 10:09, 2 users, load average: 0.63, 0.44, 0.61
    ```

    短期間のみですが、何度か調べるも1以下なので、頂いたURLの中にある
    "ネットワークの問題や、リモートホスト(例えばWebサーバとDBサーバが別ホストにあって、Webサーバのロードアベレージが低いなら、DBサーバを疑ってみるみたいな)に原因がある可能性"

    との事でnetstatコマンドをするも、表示された内容がよく分からずです。。。


    併せて頂いた df -ahのコマンドも行いました。
    ```
    $ df -ah
    Filesystem Size Used Avail Use% Mounted on
    /dev/vda3 195G 3.2G 182G 2% /
    proc 0 0 0 - /proc
    sysfs 0 0 0 - /sys
    devpts 0 0 0 - /dev/pts
    tmpfs 939M 0 939M 0% /dev/shm
    /dev/vda1 239M 58M 168M 26% /boot
    none 0 0 0 - /proc/sys/fs/binfmt_misc
    ```
    HDDの容量は200GB(195G)あり現在2%程の使用なのでこちらは大丈夫なのかなーと。

    unicornのログも影響があるかもなのですね。一旦全てのログを消してみます。
    (サーバー上にUPしたてのサイトですので5.2KB程になります。素人なのでこの辺り理解が乏しいのですがunicornのログはサーバを立ち上げる時のログかと思いますので、それほど大きな容量にならいのかなーと考えるのですが、私は違う所をみていますでしょうか? development.log(現状は3MB程)は増えていっています。)

    一旦unicornログを消して、停止させて、起動しました。
    気持ち早くなったかなーとは思いますが、さほど変わらずで。。。Chrome DevToolsで確認しましたが現状と同等程度か少し早くなっているかなーと。10-15S程です(ms)では御座いません。

    情報少ないなか色々考えて頂き有難う御座います。
    他にもココを見てみては?といった所があれば幸いです。

    キャンセル

-1

リンク内容
パラメーター変えただけで他のユーザの住所見えちゃうんだけど、基本的なことができてないからちゃんと勉強したほうがいい

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.40%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • HTML

    9940questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • Ruby

    8496questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    7916questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • CSS

    6464questions

    CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。