タグ

performanceに関するdrumscoのブックマーク (154)

  • JMH - Javaでのベンチマークを試してみる - 覚えたら書く

    OpenJDK のサイトで公開されているマイクロベンチマーク用のライブラリ。Java Microbenchmark Harness の略。 JMHの存在理由 Javaでパフォーマンス測定(ベンチマーク取得)するのは以下のような理由により簡単ではありません 計測用のコードを書くのが実は難しい 計測用のコードの書き方がまずいと、コンパイラにより最適化で処理部分を削ってしまう場合がある ウォームアップが必要 JITコンパイラによってコンパイルされているかどうかで測定結果が大きく異なる こういう問題を解消して計測してくれるのがJMHです。(OpenJDKで公開されているので、Java公式ツールといってよいでしょう) 使い方(概要) JMHを使った計測の流れは大まかに以下の通りです(Mavenを用いてIDE上で実行する例です) JMHでの計測用のMavenプロジェクトを作成する ↓ 計測したい処理を

    JMH - Javaでのベンチマークを試してみる - 覚えたら書く
    drumsco
    drumsco 2023/02/01
    OpenJDK のサイトで公開されているマイクロベンチマーク用のライブラリ。Java Microbenchmark Harness の略。
  • iPerf - The TCP, UDP and SCTP network bandwidth measurement tool

    What is iPerf / iPerf3 ? iPerf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, buffers and protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports the bandwidth, loss, and other parameters. This is a new implementation that shares no code with the original iPerf and also is not backwa

  • Novabench - Free PC Benchmark and Stress Test Software

    Benchmark TestTest full system performance in minutes.ComparePut your test results in context.ExplainInterpret test results and take next steps.Network TestMeasure the quality of your connection.Stress TestValidate system stability under full load.MonitorTrack system and network health over time. Benchmark TestRun a full test in minutes and get a clear picture of your system's performance, with te

    drumsco
    drumsco 2022/08/12
    総合的なベンチマークアプリケーション。 Windows/MacOS/Linux 版あり。
  • GitHub - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas

    Often times, the production system network is inaccessible from the local development environment. If issues are encountered in production systems, it is impossible to use IDEs to debug the application remotely. More importantly, debugging in production environment is unacceptable, as it will suspend all the threads, resulting in the suspension of business services. Developers could always try to

    GitHub - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas
    drumsco
    drumsco 2021/12/02
    Alibaba製のプロファイラ Arthas (アーサス)
  • A Guide to async-profiler | Baeldung

  • JVMアプリケーションのCPUボトルネックをasync-profilerで調べてみる | DevelopersIO

    こんにちは、事業開発部の齋藤です。 ここ最近ずっと負荷試験をやっていました。 今日はJVMのアプリケーションのプロファイルを取ることが出来る、「async-profiler」を使ってみたので そのツールの紹介記事です。 はじめに 今回使ってみよう、というきっかけになったのは 負荷試験実行中にやけにCPU負荷が高い、ということで プロファイラを試してみるか、という話になりました。 このasync-profilerを選んだ理由は 単に知っている中で一番楽に使えそう、というので選びました。 また、Javaのプロファイラはいくつか商用製品もあるみたいなのですが 今回はちょっと調べてみたい、ということでasync-profilerを選びました。 今回の記事ではprofilerを掛けて 「Flame Graph」というグラフを見るところまでをやってみます。 詳しくは以下の流れでやっていきます。 インス

    JVMアプリケーションのCPUボトルネックをasync-profilerで調べてみる | DevelopersIO
  • GitHub - async-profiler/async-profiler: Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events

    This project is a low overhead sampling profiler for Java that does not suffer from the Safepoint bias problem. It features HotSpot-specific API to collect stack traces and to track memory allocations. The profiler works with OpenJDK and other Java runtimes based on the HotSpot JVM. Unlike traditional Java profilers, async-profiler monitors non-Java threads (e.g., GC and JIT compiler threads) and

    GitHub - async-profiler/async-profiler: Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events
    drumsco
    drumsco 2021/12/02
    JVMのプロファイラー。 Win/Mac/Linux 用が提供されている。 可視化例として Flame Graph visualization の活用例あり。
  • Webサイト負荷テストとは?その概要と行うべき理由をテストツールの紹介とともに詳しく解説

    KeyCDN We are a Swiss registered company headquartered in Winterthur, Switzerland. We’re a passionate team operating a high-performance content delivery network (CDN). Webパフォーマンスは大きなテーマで、Web全体でパフォーマンステストのヒントやチュートリアルは廃れることはありません。Webサイトやアプリケーションの調整を開始する前に、まずユーザーにとって何か重要なメトリックかを把握し、達成可能なベンチマークを確立していきます。 パフォーマンステストとはどういうものか パフォーマンステストでは、ソフトウェアツールを使用し、ある状況でのアプリケーションの実行をシミュレートしていくことになります。定量的なパフォーマンステストで

    Webサイト負荷テストとは?その概要と行うべき理由をテストツールの紹介とともに詳しく解説
  • Webサイト負荷テストとは何か?優良テストツールの紹介とともにその概要を詳しく解説

    Webサイトを立ち上げる前に、そのサイトが遅くなったりクラッシュしたりすることなく、期待される動作の質を満たせるということを確認したいと考えているとします。負荷テストを行えば、サイトが「実世界の」状況下でどのように動作するかを確認したり、サイトをオープンしたときに予期しない問題が発生するのを回避するために変更を加えなければならない部分を特定することができます。 負荷テストとはどのようなものか パフォーマンステストの一種として、負荷テストは「システムに要求を行い、それに対する応答を測定するプロセス」と定義されています。あなたのウェブサイトとそれを支えるサーバーを「日常的なストレス」下に置き、結果を観測することによって、それなりの数のユーザーによってアクセスされたときに、予想通りに動作するかどうかを知ることができます。 システムを限界まで追い込むストレステストとは異なり、負荷テストでは、想定さ

    Webサイト負荷テストとは何か?優良テストツールの紹介とともにその概要を詳しく解説
  • The C10K problem

    [Help save the best Linux news source on the web -- subscribe to Linux Weekly News!] It's time for web servers to handle ten thousand clients simultaneously, don't you think? After all, the web is a big place now. And computers are big, too. You can buy a 1000MHz machine with 2 gigabytes of RAM and an 1000Mbit/sec Ethernet card for $1200 or so. Let's see - at 20000 clients, that's 50KHz, 100Kbytes

    drumsco
    drumsco 2021/07/14
    クライアント10万台規模のリクエストを処理できなくなる問題のメカニズムと原因について。プロセス番号の制限を超えてしまうという原因。
  • EDB Home - EDB Postgres AI

    PRESS RELEASE: EDB Launches Agentic Database, Converged Analytics, and Governance, Bringing Sovereign AI Where Enterprise Data Already Lives Learn more

    EDB Home - EDB Postgres AI
    drumsco
    drumsco 2021/05/18
    autovacuum , cost についてのパフォーマンスチューニングの指針。
  • とあるクエリを2万倍速にした話 -データベースの気持ちになる- 後編 - dwango on GitHub

    技術コミュニケーション室 OSSグループの髙﨑です。 記事は、とあるクエリを2万倍速にした話 -データベースの気持ちになる- 前編の続きです。 前回の記事でお話しした内容がPullRequestを作ったときの過程だったわけですが、 そのような結果に至った経緯、Index Only Scanを使わなかったPostgreSQL特有の事情について、 PostgreSQLのアーキテクチャなども交えもう少し詳しくお話させていただきます。 要するに 実行計画のコストとはレコードやindexの読み込み、フィルタ処理などからその実行にどの程度の時間が必要となるかの推定値 indexを張る際にはそのindexがどのように辿られるかを意識する必要がある 範囲検索される可能性があるカラムはindexの先頭にはあまり適さない PostgreSQLにおけるIndex Only Scanは新しい/更新頻度の高いデー

    とあるクエリを2万倍速にした話 -データベースの気持ちになる- 後編 - dwango on GitHub
  • JDK8(Linux 64bit)のデフォルトヒープサイズ - n-agetsumaの日記

    Oracleの公式ドキュメントには、-Xmxが未指定であった場合のエルゴノミクスによる最大ヒープサイズは『32GBを上限として、物理メモリの4分の1』書かれている。32GBは-XX:-UseCompressedOopsにより圧縮Oopを明示的に無効にした場合の最大デフォルトヒープサイズで、何もオプションを付けずに起動した場合は29GBが上限。 ヒープサイズの決定はarguments.cppのArguments::set_heap_size()で計算されている。デフォルトの最大および初期ヒープサイズは、物理メモリ量により異なる。 デフォルト最大ヒープサイズ(-Xmx) 物理メモリが248MB以下の場合 物理メモリの2分の1。 248MBは-XX:MaxHeapSize(デフォルト124MB) x -XX:MinRAMFraction(デフォルト2)の値。 物理メモリが248MBより大きい場合

    JDK8(Linux 64bit)のデフォルトヒープサイズ - n-agetsumaの日記
  • JVMのヒープサイズとコンテナ時代のチューニング | Folioscope

    最近 JVM のヒープ領域とパラメータ、そしてコンテナの関係について調べてました。 案外まとまった情報が少なかったので簡単にまとめました。 Java のヒープサイズを設定 まずは Java のヒープサイズについて簡単なおさらいです。 番環境で Java アプリケーションを運用する上で、JVM のヒープサイズを決定するのは非常に大事なポイントです。 ヒープ領域の最大サイズを大きくすればガベージコレクション (GC) の回数は減らすことができますが、 必要以上に大きくしすぎると無駄にリソースを消費したり、OOM killer で OS にプロセスを終了させられます。 JVM が使用できるヒープサイズは、Java API の Runtime.getRuntime().maxMemory() で確認できます。 また java の起動オプションに -XX:+PrintFlagsFinal オプショ

    drumsco
    drumsco 2020/10/28
    "$ java -XX:+PrintFlagsFinal -version" で、jvmのパラメータを確認できる。
  • JVMアプリケーションを運用する際のメジャーどころチューニングポイントメモ - yoskhdia’s diary

    JVMにチューニング項目は多々あれど、プロダクションで運用する際に予めおさえておきたい項目をまとめてみるエントリです。*1 勿論、OSもJVMもデフォルトである程度のパフォーマンスは発揮でき、計測を伴わないチューニングは悪手であることはよく知られています。 しかし、設定しておかないとパフォーマンスにそのまま影響すると分かるものを調べないのは裸で戦場に赴くようなものです。*2 どんな項目をどう変更すれば良いのか知っていることは重要な武器なのです。 なぜ調べるのか 今回、チューニングポイントを調べるにあたって、私のモチベーションはどこにあるのかを考えると、以下の要件を満たしたいということがあげられます。 アプリケーションとして求められる品質水準として動作する → 性能目標 異常時に事象を追うことができる ここでいう品質水準・異常とは、パフォーマンスが明らかに低い、アプリケーションがクラッシュす

    JVMアプリケーションを運用する際のメジャーどころチューニングポイントメモ - yoskhdia’s diary
  • ポストグレスSQLチューニング メモ(Hishidama's PostgreSQL7.2.1 SQL tuning Memo)

    S-JIS[2003-07-19] PostgreSQL7.2.1 SQL最適化メモ SQL実行の際は、PostgreSQLが実行計画を立て、最も効率のよい方法で実行される。 が、SQLの組み方によっては効率の悪い方法が選ばれることがあるので注意。 VACUUM ANALYZE PostgreSQL(プランナー)が実行計画を立てる際には、統計情報が使われる。 統計情報はVACUUM ANALYZEを実行していないと更新されない。SQLの実行が遅いと思ったら、まず真っ先にVACUUMすべし。 EXPLAIN SQLを実行する際に プランナーがどのような実行計画を立てるかについては、EXPLAINで確認できる。 検索方法の種類 ほとんどの場合はseq-scanよりindex-scanの方が速いが、EXPLAINでcostを見てみないと確かなことは分からない。 どちらを使うかはプランナーが統計情

  • [MySQL] 日付比較や日付検索が遅いのでBETWEENで改善させる

    datetime型の列(reg_time)があるテーブルに対し、年月日指定をかけてデータを取り出す。 注:datetime型の例:2014-01-01 12:34:56 SELECT * FROM `テーブル名` WHERE `reg_time` LIKE ‘2014-01-01%’ これは非常に遅い。 reg_timeにindexを設定しても、indexが使用されないので無意味。 初心者が多用するLIKEなんか使うからだよ!ということで、dateを使うが、 注:dateはdatetime型(2014-01-01 12:34:56)から年月日(2014-01-01)を取り出す関数。 SELECT * FROM `テーブル名` WHERE date(`reg_time`) = ‘2014-01-01’ これも同様に遅い(indexも使用されない)。 この解決方法は、BETWEENを使用するこ

    [MySQL] 日付比較や日付検索が遅いのでBETWEENで改善させる
    drumsco
    drumsco 2020/10/11
    日付や DateTime の範囲検索を行うのであれば、ソート済みテーブルに index を貼って、 BETWEEN 使うべし。
  • SQLのパフォーマンス問題を引き起こす日付型

    処理しにくい最もたるものはDATE型でしょう。 Oracleは、常に時刻までを含むDATE型の1つしかないので、特に厄介だと言えます。 時間の成分を排除するためにTRUNC関数を使うのは、 一般的な方法になっています。実際には、Oracleには純粋なDATE型は存在しないので、この関数は時間成分を削除 してしまうわけではなく、その代わり時刻を0時0分に設定します。検索時に時間成分を無視するには、比較の両辺で TRUNC関数を使用します。前日の売り上げを知りたい時は以下のようにします。 SELECT ... FROM sales WHERE TRUNC(sale_date) = TRUNC(sysdate - INTERVAL '1' DAY)これは完璧に有効で正しい文ですが、SALE_DATEに 作られたインデックスを正しく使うことはできません。この理由は、「UPPERとLOWERを使った

    SQLのパフォーマンス問題を引き起こす日付型
    drumsco
    drumsco 2020/10/11
    日付型、日時型、タイムスタンプ型の範囲検索を行う場合には、インデックスが重要。
  • SQLのインデックスとそのチューニングについてのオンラインブック

    開発者向けのSQLインデックス解説サイト、管理についての間違いない知識を提供します。 インデックスは開発時には忘れられがちである一方で、非常に効果的なSQLのチューニング方法です。Use The Index, Lukeでは、HibernateなどのORMツールの解説にとどまらず、SQLのインデックスについて基礎から説明します。 Use The Index, LukeはSQLパフォーマンス詳解のWeb上の無料版です。サイトを気に入って頂けたら、ぜひ書籍も購入してみて下さい。また、このサイトの運営をサポートする様々なグッズも販売しています。 MySQLOracleSQL ServerなどにおけるSQLのインデックスUse The Index, Lukeでは、ベンダにとらわれないインデックスの説明を心がけています。製品特有の事柄については、以下のような表示をしています。 Db2 (LUW)U

    SQLのインデックスとそのチューニングについてのオンラインブック
  • HTTP/2時代のドメインシャーディングを考える - TeraDas(テラダス)

    うちのサイトは、記事やサイドバーなどに画像が多いということもあり、サイト高速化のためにドメインシャーディングという手法を使っていますが、今後、HTTP/2対応を考えたとき、これをどうしてゆけば良いのか、少し考えてみました。 ドメインシャーディングというのは、HTML や画像、JavaScript などを複数ドメインから配信する高速化手法です。HTTP/1.x では、ブラウザが1ドメインに同時に張れるセッション数が少ないため、コンテンツを複数ドメインに分散配置することでダウンロードの並列度を上げ、高速化しよう。というテクニックになります。というわけで、うちの場合、3ドメインから分割配信している状況です。 しかし、HTTP/2 になると、このあたりの事情が大きく変わります。というのは、HTTP/2 では、1つのTCPセッション内で複数リソースを並列ダウンロードできるようになるからです。 つまり

    HTTP/2時代のドメインシャーディングを考える - TeraDas(テラダス)
    drumsco
    drumsco 2020/08/14
    [HTTP/2][parallel][Nginx][RFC]複数のドメインが1つのIPアドレスに解決される場合、 HTTP/1.x と HTTP/2 に対応するドメインシャーディングを実現できる。