Linux サーバでの「Too many open files」エラー対策について調べたのでまとめてみました。 確認した OS は CentOS 5.9 と CentOS 6.3 です。 「Too many open files」は Linux でプロセスが開けるファイルディスクリプタの上限に達してしまうと発生するエラーです。 「ファイルディスクリプタ」という名前ですが、 Linux ではソケットもファイルディスクリプタなので、ファイルを開いた場合だけでなく、ソケットを使って通信を行う場合にもファイルディスクリプタが使用されます。 そのため、Apache や Tomcat などで高負荷なサイトを運用している場合などには、比較的遭遇する確率の高いエラーではないでしょうか。 このエラーを回避するため、プロセスがオープンできるファイルディスクリプタの上限を変更します。 まずは以下のコマンドを実行
「Too many open files」と出てで、ファイルが保存できないことがあった。 Railsを起動して、Gulpも起動してほげほげしてるとよく起こる。 Sublime Textでこのエラーが出ると設定も何もかも保存されないし、HotExitも効かないし、ファイルは開けないし詰む。 Atomでも起こるしOSのエラーと気づけた。 どうやらMacのファイルの上限に引っかかってしまっている模様。 確認する(初期) コマンドで現在の上限数を確認。 cpu unlimited unlimited filesize unlimited unlimited data unlimited unlimited stack 8388608 67104768 core 0 unlimited rss unlimited unlimited memlock unlimited unlimited maxpr
このサイトの運営にはエックスサーバーを利用しています。 僕はこのサーバーの最も安いプランを利用しているのですが、これがまたとても優秀で、これまで一度も500エラーを見たことはありませんでした。 先日たまたまバズがあって、現在の数倍アクセスがあったときも、全く平然と動作していたので、「ひと月たかだか1000円強で、こんな強いサーバが使えるのか!」と感動すら覚えました。 ただ、アクセスも落ち着いているはずの、ここ3、4日、何故か今までこのサイトで見たことがなかった500エラーを何度も見かけるようになりました。 それについて、自分なりに分析と対策を行ってみたので、その方法をまとめてみたいと思います。 500エラーが出るのはなぜか? 数日前、エックスサーバーで運営する自分のサイトで、初めて500エラー見ました。 500エラーとはこんなの。 原因として表示されているのは以下。 断続的に発生する場合
I am trying to use Python to login to a website and gather information from several webpages and I get the following error: Traceback (most recent call last): File "extract_test.py", line 43, in <module> response=br.open(v) File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 203, in open return self._mech_open(url, data, timeout=timeout) File "/usr/local/lib/python2.7/dist-
みなさんTypeScriptでサーバアプリケーション(Node.js)のロジックを書く時に、異常系の表現をどのようにされていますでしょうか?ここでいう異常系とは、仕様上想定される異常のことです。準正常系と言ったりもするかと思います。 私はJavaScriptの延長でTypeScriptをはじめたので、最初は null や undefined を返したり throw を用いるやり方をしていましたが、次第にTypeScriptが持つ型を生かし、できるだけ型安全に異常系を表現したいと考えるようになりました。そして試行錯誤した結果、いい感じの落とし所に落ち着いたので、その内容についてお伝えしたいと思います。 また記事の後半では、異常系の型を実装する中でハマった点についてもお伝えしたいと思います。 TypeScriptの異常系表現について 1. nullやundefinedを返す 冒頭でも述べたよう
In the last couple of days I made a program called Horcrux which allows you to split a file into any number of horcruxes, a subset of which can then be recombined to resurrect the original file. In the process I learnt a lot about the io.Reader and io.Writer interface, and thought I would do a writeup to help build intuition for all the people out there who inevitably will find themselves using th
これはGo Advent Calendar 2018の14日目の記事となる。 この記事ではGoogleが提供するGoのDependency Injection(DI、依存性の注入)ツールであるWireを使ったDIの概要と、Wireで利用可能なDI関数の戻り値シグネチャのパターンを紹介する。 github.com/google/wire https://github.com/google/wire Compile-time Dependency Injection With Go Cloud’s Wire | The Go blog https://blog.golang.org/wire TL;DR WireコマンドはGoogle謹製のGoでDI(依存性の注入)を行なうツール https://github.com/google/wire 依存の注入・初期化、依存の注入・初期化を繰り返して多
本記事は Go Advent Calendar 2019 11 日目の記事です。 Go はシンプルな言語機能・シンタックスが特徴であり、命名規則にもそのシンプルさが表れています。 本記事では、公式や著名な Go エンジニア、OSS などから見られる Go らしい命名規則を紹介します。 今更なテーマかもしれませんが、意外にも公私共々で命名規則が意識されていないコードを時折見かけるので、自戒も込めて記します。 誤った内容があれば Twitter でご指摘いただければと思います。 パッケージ名簡潔にするEffective Go では、short, concise, evocative なパッケージ名が望ましいとされます。 これはパッケージ名に限らずほとんどあらゆる命名において役立つ指針だと思います。 また、「パッケージ名は一言で何をするかを表すエレベーターピッチだ」という Dave Cheney
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く