タグ

DBとCPUに関するslay-tのブックマーク (14)

  • 門外不出のOracle現場ワザ | Oracle 日本

    第1章 目からウロコのOracleパフォーマンス分析テクニック 日オラクル株式会社 コンサルティング統括テクノロジーコンサルティング部 小田 圭二(おだ けいじ) 目次 Part1  間違いだらけのOracleパフォーマンス分析 Part2  標準ツールでOracleの状態を正確に知る方法 Part3  OSとI/Oはパフォーマンス低下にどう影響するか OracleとOS・I/O・ネットワークの関係 OSの稼動状態はOracleに大きく影響する 低使用率でもCPUがボトルネックのケース CPUリソースを大量消費するSQL文 データベースの性能とディスクI/O I/O性能の計測方法 wait I/Oが大きい=I/Oボトルネック? I/Oデータの例 少し難しいI/Oパフォーマンストラブル おわりに Part3 OSとI/Oはパフォーマンス低下にどう影響するか OracleとOS・I/O

  • Oracle Cloud、最大160コアのArmプロセッサを用いた「OCI Ampere A1 Compute」開始。無償で4CPU/24GBメモリを期限なく提供、Arm対応のJenkinsやKubernetesも

    Oracle Cloud、最大160コアのArmプロセッサを用いた「OCI Ampere A1 Compute」開始。無償で4CPU/24GBメモリを期限なく提供、Arm対応のJenkinsやKubernetesも オラクルは、同社が提供するクラウドサービス「Oracle Cloud Infrastructure」でArmプロセッサベースの新コンピュートサービス「OCI Ampere A1 Compute」(以下、A1 Compute)の提供開始を発表しました。 Armベースのコンピューティング・サービス「OCI Ampere A1 Compute」を発表。1コア/時間1セントで、優れた価格性能を実現しています。発表資料はこちら→ https://t.co/wFzXZnneHt #OracleLive pic.twitter.com/dRieE7e6c7 — Oracle Japan/日

    Oracle Cloud、最大160コアのArmプロセッサを用いた「OCI Ampere A1 Compute」開始。無償で4CPU/24GBメモリを期限なく提供、Arm対応のJenkinsやKubernetesも
  • Webアプリ負荷試験ガイド - withgod's blog

    Webアプリ負荷試験ガイド 目次 Webアプリ負荷試験ガイド 目次 前置き 時間がない人向け要約 about me 何故負荷試験を行うのか 負荷試験ツール 負荷掛けるツール 負荷計測 負荷の可視化 負荷試験の流れ 負荷試験スケジュールについて 注目すべきポイント シナリオ作成 アカウント情報は自動生成出来るようにする DB分割を行ってる場合はDB分割を意識したシナリオを用意する。 負荷試験元 http or https サーバ1台 サーバ単体での負荷 アプリの正常性の確認 サーバ複数台 KVS Memcached Redis RDB 問題になりやすいDB キャッシュの話 大前提 注意すべき点 CDNやProxyレベル local cache or remote cache local cache or memory cache(in app cache) references 更新情報 前

    Webアプリ負荷試験ガイド - withgod's blog
  • 軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita

    ざっくり言うと リスト構造のデータに対してランダムアクセスはしちゃだめだぞ。お兄さんとの約束だ! 発端 数年前に他部署の支援で作ったJavaのシステムに、ちょっとデカめのデータを突っ込んだらありえないほど遅いので助けてくれ、と連絡が入った。 まぁクエリとかインデックスをちょっと見れば直るっしょ・・・と鼻をほじりながら支援に向かった。 処理内容 遅い部分の処理は以下のようなものであった。 処理対象のデータをListで受け取る。 それをforループで1件ずつ前処理する。 処理結果をオブジェクトに格納し、ORマッパーでDBにINSERTする。 これだけ? そう、これだけだ。並列処理なんて高級なことはもちろんやってない。 インフラ調査 処理中のサーバのようすを調査する。今回のインフラは典型的な3層3サーバ構成。 WEBサーバはなにもかもが余裕。 APサーバではCPUを1つ使い切っている。 14コア

    軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita
  • 「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない : DSAS開発者の部屋

    「推測するな計測せよ」という格言がよく知られています。この格言は(ISUCONに優勝した)Goの作者の一人でもある、 Rob Pike 氏の言葉が元になっています。 ルール1: プログラムがどこで時間を消費することになるか知ることはできない。ボトルネックは驚くべき箇所で起こるものである。したがって、どこがボトルネックなのかをはっきりさせるまでは、推測を行ったり、スピードハックをしてはならない。 ルール2: 計測すべし。計測するまでは速度のための調整をしてはならない。コードの一部が残りを圧倒しないのであれば、なおさらである。 UNIX哲学 on Wikipedia このルールは、推測だけで高速化のための変更をすることを諌めていますが、直接に高速化の効果が無い変更をするなとは言っていません。 正しいデータ構造やアーキテクチャは、それだけでは性能が向上せず、それを利用した改善を入れて初めて効果が

    「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない : DSAS開発者の部屋
  • RedisサーバのCPU負荷対策パターン - ゆううきブログ

    Redisは多彩なデータ構造をもつ1インメモリDBであり、昨今のWebアプリケーションのデータストアの一つとして、広く利用されている。 しかし、一方で、性能改善のための手法を体系的にまとめた資料が見当たらないと感じていた。 実際、最初にCPU負荷が問題になったときにどうしたものかと悩み、調査と試行錯誤を繰り返した。 そこで、この記事では、自分の経験を基に、RedisサーバのCPU負荷対策を「CPU負荷削減」「スケールアップ」「スケールアウト」に分類し、パターンとしてまとめる。 背景 RedisのCPU負荷対策パターン CPU負荷削減 multiコマンド Redisパイプライニング Luaスクリプティング Redisモジュール(夢) スケールアップ スケールアウト 参照用スレーブ 垂直分割 水平分割 Redis Clusterによる水平分割 その他 スライド資料 あとがき 参考資料 背景 R

    RedisサーバのCPU負荷対策パターン - ゆううきブログ
  • なぜAWS LambdaとRDBMSの相性が悪いかを簡単に説明する - Sweet Escape

    2020/01/20 Update: エントリの内容は2019年12月3日にアナウンスされた『Amazon RDS Proxy』のリリースにより完全に陳腐化しました。過去のアンチパターンがフィードバックをもとにした改善によってアンチパターンではなくなるという最高の事例です。 サーバーレス元年始まった! 今年がサーバーレス元年な理由. それはLambdaに以下が揃ったから. ・カスタムランタイムで実質どんな言語でも利用可能 ・VPC利用時のコールドスタート改善 ・Provisioned Concurrencyでスパイク対応も可能 ・RDS ProxyでRDBとの接続が現実的に これまで5年で受けたフィードバックがついに結実. 強い— Keisuke Nishitani (@Keisuke69) 2020年1月19日 RDS Proxyの詳細はこちらからどうぞ。まだプレビューですがぜひ試して

    なぜAWS LambdaとRDBMSの相性が悪いかを簡単に説明する - Sweet Escape
  • 進捗)SSD-to-GPU ダイレクトSQL実行機能 - KaiGaiの俺メモ

    ここ暫くブログでまとめていなかった、SSD-to-GPUダイレクトSQL実行機能の進捗について。 この機能をかいつまんで言うと、NVMe-SSDに格納されているPostgreSQLのデータブロックをGPU RAMに直接転送し、そこでSQLのWHERE句/JOIN/GROUP BYを実行することで見かけ上のI/O量を削減するという代物である。 NVIDIAのTesla/Quadro GPUが対応するGPUDirect RDMA機能を使い、SSD<=>GPU間のデータ転送を仲介するLinux kernel moduleを使えば、CPU/RAMにデータをロードする前にGPU上での処理を行うことができる。 しばらく前からScan系の処理には対応していたが、JOIN/GROUP BYへの対応を加え、さらにPostgreSQL v9.6のCPU並列にも追従したということで、簡単なベンチマークなら取れる

    進捗)SSD-to-GPU ダイレクトSQL実行機能 - KaiGaiの俺メモ
  • Golang vs PHP7(追記あり) - GMOインターネットグループ グループ研究開発本部

    Golangが一番パフォーマンスが良いかと予想していましたが、全く逆の結果になってしまいました。 Golangが遅い理由 遅い原因をいくつか考えて改善できないか試してみました。詳細は省きますが、以下の点については問題なさそうでした。 goroutineはリクエスト単位で起動している コネクションプールは有効になっている BeegoORM特有の処理は主原因ではない(標準ライブラリのsql関数と大差なし) DB側のCPU使用率は100%になっているが、CPU使用率とメモリ使用量はPHP環境と同程度の負荷になっている ここまで確認して、プロファイラを使った方が良さそうに思えたので、いったんプロファイラで状況を確認するために、標準で提供されていて手軽に使えそうなpprofを使ってみました。topで確認すると次のような結果がでました。 (pprof) top 20 -cum 920ms of 15

    Golang vs PHP7(追記あり) - GMOインターネットグループ グループ研究開発本部
  • SQL実践入門──高速でわかりやすいクエリの書き方 - kagamihogeの日記

    俺は実務経験をある程度こなしたあと、RDBの知識不足を認識したクチである。改めてRDBを勉強し始めて困ったことの一つは、実行計画の読み方がよくわからないことだった。もちろん、ぐぐればNESTED LOOP JOINが何かとかは出てくるし、公式のマニュアルも参考になる。ただ、webの文献は体系だって解説があるとは限らないし、個人のブログなどは粒度がバラバラで、まとまった量の知識を得るには向いていない。マニュアルも膨大な量があるので慣れていないと目的の文書が書いてあるかどうかすら分からないし、あったとしても必要なレベルの解説があるかどうは分からない。 そこで書の出番である。既存の書籍にもSQLとパフォーマンスを論じたものはあるにはあるのだが、それに特化したの存在は、少なくとも俺は知らない。一冊だけ、データベースパフォーマンスアップの教科書 基原理編 - kagamihogeの日記という極

    SQL実践入門──高速でわかりやすいクエリの書き方 - kagamihogeの日記
  • (JP) GPGPUがPostgreSQLを加速する

    2. 自己紹介 ▌名前: 海外 浩平 ▌所属: NEC OSS推進センター ▌好きなもの: コアの多いプロセッサ ▌嫌いなもの: コアの少ないプロセッサ ▌経歴: HPC  OSS/Linux  SAP  GPU/PostgreSQL ▌Tw: @kkaigai ▌主な仕事 SELinux周り諸々 (2004~) •Lockless AVC、JFFS2 XATTRなど PostgreSQL周り諸々 (2008~) •SE-PostgreSQLSecurity Barrier View、Writable FDWなど PG-Strom (2012~) DB Tech Showcase 2014 Tokyo; PG-Strom - GPGPU acceleration on PostgreSQL Page. 2 4. GPU (Graphic Processor Unit) の特

    (JP) GPGPUがPostgreSQLを加速する
  • MongoDBの監視

    2. 自己紹介 名前:渡部 徹太郎 @fetaro ブログ 所属:野村総合研究所 OpenStandiaチーム 学生:東工大で情報検索の研究(@日データベース学会) 仕事:昔:大手証券会社のオントレシステムのWeb基盤 今:オープンソース全般のサポート/コンサル 特技:サーバ基盤、Linux、KVM、ruby、MongoDB(?) エディタ:emacs派 趣味:自宅サーバ MongoDB関連: • 2年前に、友人結婚式用のアプリを作った時に利用 • この勉強会(丸の内MongoDB勉強会)の主催者の一人 • 技評で記事連載中「MongoDBでゆるふわDB体験」

    MongoDBの監視
  • Percona Server 5.5にて10秒間隔でDisk I/Oが重くなる問題 | 外道父の匠

    久しぶりにDBAとしてお手伝いした時の汚いメモになります。 Percona Server5.5+ioDriveのMySQLで、イベント時やピークタイムにアプリケーションからのDB利用が重くなる、ということで調査から対応方法まで考えてみました。 問題点の大雑把な特定 高トラフィック時に、RubyからMySQLの接続やクエリがちょこちょこ重くなり、レスポンス速度に影響が出る、とのこと。で調査開始。今回のPercona Serverのバージョンは 5.5.34 でした。 top -d1 で触診してみると、謎の10秒間隔でiowaitが5~10%に上がることを確認 5分平均のiowaitグラフを見ても、ピーク時は50~60%であることを確認。ioDriveでこれはイカン dstat で見ると、平時はwrite数MB/s~十数MB/sのところが、やはり10秒間隔でwrite 数百MBを確認。ピーク時

    Percona Server 5.5にて10秒間隔でDisk I/Oが重くなる問題 | 外道父の匠
  • MySQLで、正しいデータ型を使うことはどのくらい重要なのか? | Yakst

    テーブル設計においてカラムのデータ型を正しく決めることには、どのような利点があるのかについて。単純に扱う値と同じ型を選ぶべきであるというだけではなく、なぜそうあるべきかについて、内部的な効率の面から解説する。 パフォーマンスに関する話の中で、カラムに値を保存するのに正しいデータ型を使うことの重要性を説いているのを聞くことがよくある。例えば、数値はINTやBIGINTで表現し、IPアドレスにはINT UNSIGNEDを使い、VARCHAR(255)の代わりにVARCHAR(60)を使うといったことだ。 このアドバイスは正しい。しかし、今日はもう少し詳細の説明を試みてみようと思う。 理由 この最適化が正しいと思う3つの理由は以下の通りだ。 文字列として数値データを扱うことは、文字コードや照合処理のCPUオーバーヘッドが余計に必要になってしまう。例えば、'Montréal' = 'Montrea

  • 1