ymmt2005のブックマーク (48)

  • Python3.4 の新機能 asyncio を使ってみる - Cybozu Inside Out | サイボウズエンジニアのブログ

    泰宇です。こんにちは。 運用部では最近 Python3 への移行を進めています。そちらの話は別途ご紹介する予定ですが、今回は Python3.4 で追加された asyncio モジュールの使いかた(というか落し穴)を解説します。先に結論を書いておくと、Python3.5 の改良を待つのが吉という話です。 サンプルとして複数の SSH を一斉に呼び出してうまいこと処理してくれる passh を GitHub で公開しています。実際に社内で利用しているものをデチューンして使いやすくまとめたものです。 題の asyncio ですが、Python3 で非同期 I/O 処理を実現するために追加されたイベント駆動処理のフレームワークです。最初に書いておきますが、以下で言及する難ありな点のいくつかは Python3.5 で改良される予定のようです。[PEP-0492, PEP 492 vs. P

    Python3.4 の新機能 asyncio を使ってみる - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 先頭行だけ grep してファイル名を表示したい - 誰かの役に立てばいいブログ

    /usr/local/bin にある #!/usr/bin/python3 をみつけたい、場面です。 こんな感じ。 find /usr/local/bin -type file | xargs awk '/python3/ {print FILENAME} {nextfile}' 1行目だけ検査したらさっさと nextfile で次に移るので OK というわけ。 nextfile Stop processing the current input file. The next input record read comes from the next input file. FILENAME and ARGIND are updated, FNR is reset to 1, and processing starts over with the first pattern in the

    先頭行だけ grep してファイル名を表示したい - 誰かの役に立てばいいブログ
    ymmt2005
    ymmt2005 2015/05/13
    FNR の説明追記ed.
  • スプリットブレインが起きたら ARP フラッシュが必要になった - 誰かの役に立てばいいブログ

    これまた誰かの役に立てばということで。 keepalived (VRRP)はその仕組み上、ネットワーク分断時にマスターが二つ以上できます。俗にいう、スプリットブレインというやつです。 ネットワーク分断が解消したのち、マスターは一つに収束します。ネットワークスイッチの類であれば大概の場合これで問題はありません。ええ、問題はないはずでした。 ところが先日、ネットワーク分断解消後にある Linux サーバーからスイッチの仮想IP(VIP)への通信ができなくなる現象が発生しました。原因を調べたところ、VIP を現在持っているスイッチの MAC アドレスではなく、バックアップスイッチ側の MAC アドレスが ARP キャッシュに載っていたためでした。 以下のような経緯で障害になったものと思われます。 スプリットブレイン中、複数のマスターから VIP の ARP キャッシュを更新するためGratuit

    スプリットブレインが起きたら ARP フラッシュが必要になった - 誰かの役に立てばいいブログ
    ymmt2005
    ymmt2005 2015/03/20
    お役立ち
  • GitHub - cybozu/nginx-maxconn-module: This module is used to limit the number of simultaneous requests per defined key.

    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

    GitHub - cybozu/nginx-maxconn-module: This module is used to limit the number of simultaneous requests per defined key.
    ymmt2005
    ymmt2005 2015/02/25
  • nginx の拡張モジュールを書いて DoS 対策をした - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。インフラチームの野島です。 最近、cybozu.com はロードバランサを Apache から nginx に置き換えました。 (参考: cybozu.com のリバースプロキシを nginx にリプレイス) 置き換えの一環として、Apache に実装していた DoS 対策の仕組みを nginx の拡張モジュールにする形で移植しました。今回、この拡張モジュール nginx-maxconn-module を OSS として公開しましたので紹介します。 背景 DoS 対策 秒間リクエスト数 v.s. 瞬間同時リクエスト数 実装方針 nginx-maxconn-module 基的な使い方 高度な使い方 インストール おわりに 背景 題に入る前に、cybozu.com において、HTTP リクエストがどのように処理されているかを説明します。 cybozu.com では、負荷分散のた

    nginx の拡張モジュールを書いて DoS 対策をした - Cybozu Inside Out | サイボウズエンジニアのブログ
    ymmt2005
    ymmt2005 2015/02/25
    標準の limit_req は統計値だけど、maxconn は同時接続をリアルタイムに計測する仕組みなので、バックエンドサーバーへの接続数管理に向きます。
  • cybozu.com のリバースプロキシを nginx にリプレイス - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。インフラチーム Hazama の深谷です。 デブサミ 2015 で、cybozu.com の自社製リバースプロキシを全面的に再実装した話をしてきました。 今回は、そちらの資料を紹介いたします。 cybozu.com ではお客様ごとに異なるサブドメイン(ex. demo.cybozu.com)を用意しています。サブドメイン方式には、お客様ごとに異なる IP アドレス制限をかけられるとか、Same-Origin-Policy のため安全に JavaScript でカスタマイズができるといった利点があります。 このサブドメインを実現しているのは、従来 Apache で実装されたリバースプロキシでした。しかし、この時の実装はサブドメインごとに異なる VirtualHost を定義する方式で、お客様サブドメインの数に比例して Apache の設定を変更する時間が伸びていくというものでした

    cybozu.com のリバースプロキシを nginx にリプレイス - Cybozu Inside Out | サイボウズエンジニアのブログ
    ymmt2005
    ymmt2005 2015/02/20
    複数 Nginx 間でSSL セッションキャッシュを共有するモジュールや、DoS 対策モジュールについても後日解説・公開を予定
  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
    ymmt2005
    ymmt2005 2015/02/03
  • WALをバックアップとレプリケーションに使う方法

    Internetweek 2012 で開催された DNSDAY にて発表した資料です。 PowerDNSについての紹介です。

    WALをバックアップとレプリケーションに使う方法
    ymmt2005
    ymmt2005 2014/12/12
    WalB そろそろ実用化
  • IPv6 は人類には早過ぎたんだ - 誰かの役に立てばいいブログ

    人類は大袈裟ですが、私には厳しかったという話。 IPv6 対応のプログラムとは? いたるところに書かれているので省略。以下の記事などを参考にどうぞ。 IPv6ソケットプログラミング Programming using C-API 手短にまとめると gethostbyname(3) ではなく getaddrinfo(3) を使って名前解決する accept(2) や getpeername(2) で返るアドレス情報は struct sockaddr_storage に格納する listen するソケットは AF_INET6 指定で作ると IPv4/v6 両対応になる シンプルですよね。ここまでは。 落とし穴1:リンクローカルアドレス IPv6 のアドレス体系は IPv4 とかなり異なります。最たるものがリンクローカルアドレスです。 リンクローカルアドレスはルーティングされないので、リンク(≒

    IPv6 は人類には早過ぎたんだ - 誰かの役に立てばいいブログ
    ymmt2005
    ymmt2005 2014/08/26
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    ymmt2005
    ymmt2005 2014/07/09
  • kintoneを支えるKAIZENの技術 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、kintone開発チームの佐藤鉄平 (@teppeis) です。 今回はkintone開発チームのKAIZEN(改善)活動について紹介します。 技術的負債が減らない! サービスの開発を続けていくと、次第に技術的負債が溜まっていきます。kintone開発チームでは、開発期間中に溜まってしまった技術的負債kintoneアプリ に登録しておき、あとで時間があるときに返済するようにしていました。 このあたりの開発プロセスについてはこちらの記事をご覧ください。 超速で開発・リリースするための6つのこと | Cybozu Inside Out | サイボウズエンジニアのブログ ところが、最近技術的負債がなかなか減らないという課題に直面していました。kintone開発チームでは主にメンバーの自主性に任せて負債を返済していましたが、この方法だと、 ビジネスサイドからのプレッシャー(もっと新

    kintoneを支えるKAIZENの技術 - Cybozu Inside Out | サイボウズエンジニアのブログ
    ymmt2005
    ymmt2005 2014/04/30
    『これまで使っていた「技術的負債」という言葉を「KAIZEN」に置き換え』
  • OOM relation to vm.swappiness=0 in new kernel

    I have recently been involved in diagnosing the reasons behind OOM invocation that would kill the MySQL server process. Of course these servers were primarily running MySQL. As such the MySQL server process was the one with the largest amount of memory allocated. But the strange thing was that in all the cases, there was no swapping activity seen and there were enough pages in the page cache. Iron

    OOM relation to vm.swappiness=0 in new kernel
    ymmt2005
    ymmt2005 2014/04/30
  • Oharakay

    場カジノの臨場感をそのまま味わえる遊雅堂のライブカジノ(https://www.yuugado.com/livecasino)がおすすめ! ギャンブルやバカラのは人気上昇中です。ギャンブルに関するの出版社を無視してギャンブルについて語ることはできないでしょう。こういったは、読み出すと当に面白いものです。世界中には多くの出版社があり、その数を数えたり、ひとつひとつ解説するのは不可能です。しかしここでは、ギャンブルに関する良質な書籍を出版している人気の出版社をご紹介します!他にもご紹介したい出版社はたくさんありますが、ここでは数社に限定しています。 (more…) 場カジノの臨場感をそのまま味わえる遊雅堂のライブカジノ(https://www.yuugado.com/livecasino)がおすすめ! ギャンブルやバカラのは人気上昇中です。ギャンブルに関するの出版社を無視してギ

    Oharakay
    ymmt2005
    ymmt2005 2014/04/28
    私も、政府のみが富の再分配をするべきという考えに賛成です。『金持ちがする寄付なんて(snip)既に豊かなコミュニティーだのに向けられて(snip)最下層への福祉になんて回らないからだ。』
  • LIGのオウンドメディア運用の仕組みと今後の課題をまとめてみた | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    こんにちは、あかねです。株式会社LIGに入社して2年、長らくディレクターチームにおりましたが、この度LIGブログの編集長に就任しました! ちなみに、LIGブログにはこれまで編集長という立場がありませんでした。というより、そもそも編集部という概念が存在しなかったのです。 読者のみなさんのおかげさまで月間200万PVを突破し、すっかり大きなメディアになったLIGブログですが、それではこれまで、どのように運営されていたのでしょうか。 最近はオウンドメディアに注目が集まっているようなので、その参考になるように、LIGがブログを運営する仕組みと、その過程で見えてきた今後の課題についてお話しします。 LIGブログ編集部の舞台裏をお見せします 弊社では2012年の1月から「ファンをつくる」ことを目的にこのブログを運営しています。その主な理由は以下の5つで、 LIGを知っていただく機会を増やすことで、仕事

    LIGのオウンドメディア運用の仕組みと今後の課題をまとめてみた | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
    ymmt2005
    ymmt2005 2014/04/09
    次回読みたい
  • Blogger

    Google のウェブログ公開ツールを使って、テキスト、写真、動画を共有できます。

    ymmt2005
    ymmt2005 2014/03/31
    オンプレが107%、クラウドが346%の伸びを記録。
  • [memcached][rails] 30d.jp のセッションサーバーを ktserver から memcached にした - HsbtDiary(2014-03-06)

    ■ [memcached][rails] 30d.jp のセッションサーバーを ktserver から memcached にした 今までは、fail over 対策として デュアルマスタ構成が可能な Kyoto Tycoon を使っていたんですが もうメンテナンスされていない コマンド体系が特殊で memcached なら出来ることができないというユースケースが増えてきた 一年に一回あるかないかの障害に備えてデュアルマスタで頑張る意味が薄くなってきた、障害発生時にも最速で再構築が可能な社会状況になってきた expire を指定しても expire されてないようなバグっぽい挙動がある(これ重要) 平均して mysql より遅い(これ凄い重要) という理由で運用をやめて、memcached にしてしまった。mysql より遅いとか、セッションサーバーとは何だったのか。

    [memcached][rails] 30d.jp のセッションサーバーを ktserver から memcached にした - HsbtDiary(2014-03-06)
    ymmt2005
    ymmt2005 2014/03/07
    そんな用途のために yrmcds というのを作りました。
  • ピクシブでの開発 - 金髪の神エンジニア、kamipoさんに開発の全てを教わった話

    爆速で成長していた、ベンチャー企業ピクシブ 面接の時の話はこちら=>ピクシブに入るときの話 そんな訳で、ピクシブでアルバイトとして働くこととなった私は、初出勤の日を迎えた。 (↑ピクシブのユニークなオフィス) ほぼ何も分からず始まった開発 プログラミングスキルはほぼ無く、やることも決まっていなかった私は、早速開発の統括をしていたCTOの青木さんからの指示を仰いだ。

    ピクシブでの開発 - 金髪の神エンジニア、kamipoさんに開発の全てを教わった話
    ymmt2005
    ymmt2005 2014/02/18
  • 「メロスの全力を検証」

    ymmt2005
    ymmt2005 2014/02/06
    「走れよメロス」w
  • キャズム超え! サイボウズ マーケティングの秘密が分かった 第1回 サイボウズ超会議まとめ

    昨日、第1回 サイボウズ超会議に参加してきました! 今回が初めてで、内容はマーケティング編でした。 とても参考になったので、内容をまとめておきたいと思います。 今回のセミナーは、サイボウズのセミナールームで開催されました。 日時: 2014年1月22日(水)19:30~22:00 開場: サイボウズ株式会社 セミナールーム サイボウズ オフィス サイボウズは、素敵なオフィスになってます。 入るとレセプションがあります。 メッセージボードに写真や、受付リニューアルの内容が掲示されていました。 真ん中にiPadが4台、設置されていました。 cybozu.comのデモが見られます! 大きな埋め込みモニターはかっこいい! ボウズマンもいます。 カフェコーナーも、オシャレです。 ヘラクレスオオカブトもいましたw セミナールームで、セミナースタートです♪ セミナー インクルージョン・ジャパン株式会社

    キャズム超え! サイボウズ マーケティングの秘密が分かった 第1回 サイボウズ超会議まとめ
    ymmt2005
    ymmt2005 2014/01/23
  • モダンなPHP拡張の書き方 - 日本語公開記事 - Confluence

    How to learn公式マニュアルは作りかけで放置されていて役に立ちません。 具体的には、クラスひとつ作ることができないくらい。 まとまった情報を得るには、以下のくらいしかないのでこれを読みましょう。 Extending and Embedding PHPでもだいぶ古くなっていたり、例外の投げ方が書いていなかったりするので、その辺りはもうソースを眺めるしかないです。 新設された API などはインストールされるヘッダファイルを眺めましょう。あと ext/json や ext/snmp 辺り の公式拡張はコンパクトで up-to-date な感じなので参考にするといいです。 Summary of Extending and Embedding PHPChapter 1 The PHP Life CycleCLI・CGI 1っ回こっきりFastCGI / mod_php for pref

    ymmt2005
    ymmt2005 2013/12/10
    コメント勉強になりました m(_ _)m