タグ

CPUに関するclavierのブックマーク (83)

  • 第54回 Linuxカーネルのコンテナ機能 ―cgroup v2から使うCPUの帯域幅制限(2) | gihyo.jp

    前回は、CPUコントローラでの帯域幅制限がどのように行われるのかについて簡単に説明しました。 前回の最後に、説明のために挙げた例がかなり理想的な状況であると書きました。今回は、帯域幅制限の機能を詳しく見ていくために、前回よりはもう少し複雑な状況について説明していきましょう。 未使用クォータの返却 前回説明で示した例では、CPUは割り当てられたスライスをすべて使いきっていました。しかし、複数のCPUがある環境で、タスクが終了したり、I/O待ちなどにより、クォータが割り当たったCPUで実行可能なタスクがなくなった場合はどうなるでしょう? 図1 割り当てられたスライスが使われない場合 図1のように、クォータプールに10msクォータが残っているとします。 ①でCPU1でCPUを使用するタスクから要求がありスライスが転送され、クォータの残りが5msとなりました ②で再度CPU1でCPUを使用するタス

    第54回 Linuxカーネルのコンテナ機能 ―cgroup v2から使うCPUの帯域幅制限(2) | gihyo.jp
  • 続・AWS ECS Fargate のCPU性能と特徴 2023年版 | 外道父の匠

    2年半近く前に書いた AWS ECS Fargate のCPU性能と特徴 | 外道父の匠 の続編になります。 そんなに楽しくはないけど、知っておいて損はない、くらいの調査と考察になります:-) 前口上 ちょうど1年前に FARGATE のリソース天井が上がりました。今回は、ほぼそれを区切りにした結果になっていると思います。 AWS Fargate でコンピューティングとメモリのリソース構成が 4 倍に増加 vCPU 条件と Availability Zone を変え、3タスクずつ起動し、出現したCPUモデルをメモっていきました。ついでに軽量ベンチマークとして前回同様 OpenSSL speed をカマしておきました。 関係ないけどコンテナイメージは amazonlinux:2 です。では結果をどうぞ。 出現CPUモデル CPUアーキテクチャを選べるので、それぞれについて。 ECS Farg

    続・AWS ECS Fargate のCPU性能と特徴 2023年版 | 外道父の匠
  • Intel CPUとAMD CPUの混在による問題に直面した話 | 開発ブログ | Elastic Infra

    チーフエンジニアの加辺です。 今日は珍しいトラブルに出会ったので紹介します。 起こった問題 ある環境ではEC2によりサーバを運用しており、アプリケーションをデプロイサーバでビルドし、その成果物をアプリケーションサーバへコピーすることでデプロイとしていました。 ここで新規サーバを作成していたところ、一部のアプリケーションサーバで見慣れないエラーが発生し、アプリケーションが起動しないという事象が確認されました。調べたところ、デプロイサーバはt3、アプリケーションサーバはt3aファミリーが利用されていることがわかり、アプリケーションサーバをt3ファミリーへ変更したところ、問題が発生しなくなることが分かりました。 さて、これはどのような機序によるものでしょうか。 調査 記事タイトルで答えをほとんど書いてしまっていますし、t3, t3aを知っていれば明らかですが、これはIntelとAMDの違いです。

    Intel CPUとAMD CPUの混在による問題に直面した話 | 開発ブログ | Elastic Infra
  • Binary search with modern processors

    第16回 StringBeginners での発表資料

    Binary search with modern processors
  • はじめに - Rustで始める自作組込みOS入門

    このは組込みシステムやOSのような低レイヤーシステムの開発経験がないプログラマーのような人が、自作OSをはじめるため解説です。 著者自身、職はウェブプログラマーですが、趣味で組込みOSの自作をしています。このはそのノウハウ集のようなものです。 このような低レイヤーシステムはC言語で開発されることが多いのですが、今回はRustを使います。 RustはC言語と比較して、様々なモダンな機能やツール郡を取り揃えている上に、C言語の長所である直接のメモリ制御ができ、パフォーマンスも高いとして組込みシステム開発でつかえるとして注目されています。 Rustそのもの解説は控えめですが、低レイヤーシステム開発特有のテクニックは必要に応じて解説します。 想定読者 ある程度はプログラミング経験があることを前提としています。 また、レジスタやメモリなどコンピュータアーキテクチャに関する基礎用語の説明もちゃ

  • Linux が動作する RISC-V CPU を自作した (2019 年度 CPU 実験 余興)

    私が所属する東京大学理学部情報科学科では三年の冬学期に CPU 実験という実験授業が開講されています。稿ではその簡単な説明をした後、その実験の一環として約一ヶ月ほど取り組んだ「Linux が動作する RISC-V CPU を自作するプロジェクト」で何をしたか、またどのような成果を得たかについて紹介したいと思います。 稿を読むその前に 弊学科では「XX 年度に教養学部から理学部情報科学科に進学してきた学生」を「XXer」と呼ぶ文化があります。稿ではこの表現を断りなく用います1。また私は普段 Web が好きでもっぱら Web セキュリティに関することを追いかけているだけのしがない学部 3 年生なので (私についての情報は ここ に大体まとまっています)、こういう低いレイヤのことは未だによく分かっていません。あくまで素人の記事だとご理解いただけると嬉しいです。誤りの指摘や質問があれば、ここ

    Linux が動作する RISC-V CPU を自作した (2019 年度 CPU 実験 余興)
  • SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~

    SSII2019 オーガナイズドセッション3「深層学習の高速化 ~高速チップ、分散学習、軽量モデル~」 6月14日(金) 10:35〜12:05 (メインホール)Read less

    SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
  • perfから読み解くプロセッサトレースの仕組み (perf + Intel PT/ARM CoreSight) - Qiita

    諸事情でperfのソースコードを読んだのでせっかくなので簡単に解説。 今回はperfの中でもイベントの記録を担当するperf recordコマンドの処理を見ていく。特に近年はCPUがトレース機構を持っておりperfもその恩恵に預かっているため、記事ではperf recordの中でもCPUのプロセッサトレース機構との連携部分に注目したい。 音を言えば、perfよりIntel Processor Trace(Intel PT)やARM CoreSightといったプロセッサトレース自体に興味があるのだが、これらはLinux上ではperfイベントとして実装されているためperfコマンドの実装を皮切りに解析する腹づもりだ。 1. Perf アーキテクチャ 元々perfはPerformance counters for Linux (PCL)という名前の前身が存在しており、CPUの提供するパフォー

    perfから読み解くプロセッサトレースの仕組み (perf + Intel PT/ARM CoreSight) - Qiita
  • 仮想メモリ方式の分類

    作成日:2006.03.30 修正日:2016.10.17 更新記録 (2006.03.30) 2006/3/10 と2006/3/11 の日記の内容を元に作成。 (2006.04.07) SPARC 32 ビットプロセッサのページテーブル構成を修正。 (2006.05.25) 3.2節ページテーブルエントリを追加。 (2012.05.29) PowerPC のセグメントサイズの誤りの修正と図の追加。 (2016.10.17) Intel64 の Process-Context Identifiers(PCIDs) と Protection Keys の説明を追加。また TLB エントリの無効化と ARM の情報も追加。タイポの修正。 1. はじめに 2. 仮想メモリの全体像とページング以外の機構 事前処理 事後処理 3. ページング 3.1 ページウォーク 3.2 ページテーブルエントリ

  • 過去の難案件 PS2のカーネル開発 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 時はPlayStation2も そろそろ終わり。 PS2互換機がゲームセンター等で使われていた時代の事です 私は当時 超新人だったんだけどね ただ私は 大学を3ヶ月で光速中退して すぐにフリーランスになった変な経歴持ちです そんな時 ある人物が 掲示板に メモリマネージャやDMA、3DCGについて質問をしていた ちょうどその時期 仕事が楽だったので 光速で回答しました。 メモリマネージャ作りたいっていうので、簡単な方法として、連結リストでAllocateしていくと簡単だよ DMAについては 方向のふらぐがこーであーするだけだよ

    過去の難案件 PS2のカーネル開発 - Qiita
  • Linux メモリ管理を理解したい - Qiita

    Linux カーネルのメモリ管理方法について、勉強したことをまとめる。 メモリ管理はハードウェアに強く依存するため、x86_64 かつ OS起動後に 64bitプロテクトモード に移行したあとに話を絞る。また、OS は CentOS7.6、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux 概要 ノイマン型アーキテクチャ コンピュータの基的な構成のひとつ。次の図が参考になる。 ほぼ全てのコンピュータが、このアーキ

    Linux メモリ管理を理解したい - Qiita
  • MySQLのコネクションハンドリングとスケーリング | Yakst

    MySQLのコネクションハンドリングの内部構造、スケール限界、そして最大コネクション数のチューニングなどについてご紹介します 免責事項 この記事はGeir Hoydalsvik氏によるMySQL Server Blogの投稿「MySQL Connection Handling and Scaling」(2019/3/19)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 この投稿では、MySQLのコネクション、ユーザースレッドおよびスケーリングについて取り扱います。MySQLがどのように動作するかをよりよく理解することで、アプリケーション開発者やシステム管理者が、トレードオフを踏まえた良い選択をできることでしょう。記事ではコミュニティー版でコネクションがどのように動作するかについて述べますが、一方でスレッドプール、リソースグループ、あるいはコネクション多重化といった関

  • x86の割り込みが遅いワケ - 借り初めのひみつきち

    CPUが現在実行中のプログラムを中断して処理しなければならない事象が発生した時、一般に「割り込み」というメカニズムを使ってその事象を処理します。 広義の割り込みは実際には以下の3種類に分類できます。 例外 CPUが命令の実行を継続できない事象が発生したときにOSに判断を委ねるために例外が発生します。 多くの場合はプログラムのミスによるエラーや悪意あるプログラムによる不正な特権操作を行おうとした場合に例外が発生してアプリケーションが終了しますが、全ての例外が必ずしもエラー終了となるわけではなく、ページフォールトのようにOSの処理によって命令実行が続行可能な場合もある例外もあります。 外部割り込み 外部デバイスのデータ転送が終了したり、データ転送要求があったり、タイマーの状態が変化したときなどにCPUに通知するために割り込みが発生します。狭義の割り込みはこれを指します。 x86は歴史的事情によ

    x86の割り込みが遅いワケ - 借り初めのひみつきち
    clavier
    clavier 2019/03/28
  • 【Linux】Load Averageに関するいろは - Qiita

    システム全体の実行待ちプロセス数の平均値 背景 CPU使用率だったりAverageLoadだったりを見てサーバの負荷度だったりを調査する必要があってそれについていろいろ疑問だった点をまとめました。 間違い等あればご指摘お願いします。 ボトルネック調査の順で言うととりあえず最初にやるかなって所を書いてます 1.CPU使用率 ★対象 2.メモリ使用量 3.ディスクI/O 4.TCPコネクション数 Load Averageって? ロードアベレージはシステム全体の負荷状況を表す指標。 「1CPUにおける単位時間あたりの実行待ちとディスクI/O待ちのプロセスの数」で表される。 Linuxカーネルはプロセス1つごとにプロセスディスクリプタを持っている。 Linuxでのプロセスディスクリプタはtask_struct構造体という名前になっていて、プロセスに関する全ての情報が入っています。 以下はtask_

    【Linux】Load Averageに関するいろは - Qiita
  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • サーバーインフラの負荷対策をどのように進めていけば良いか - Qiita

    この記事は Akatsuki Advent Calendar 2017 の15日目の記事です。 14日目の記事は Beam SQL DSL ファーストインプレッション でした。 はじめに ソーシャルゲームの運用では、ときに大規模なトラフィックが予想されるイベントが開催されます。 普段は NewRelic や AWS CloudWatch 等で普通に監視していれば問題になることはありませんが、急に3-5倍のトラフィックが来たときは、予想もしていなかった箇所がボトルネックになったりします。 過去の事例をあげると、Amazon RDS(MySQL)のCPUもメモリもIOPSもLock状況も問題ないメトリクスのなかで、データベースの応答時間が極端に遅いということありました。 よく調べてみると SHOW GLOBAL STATUS; で確認できる Open_files の値が低く、これは open_

    サーバーインフラの負荷対策をどのように進めていけば良いか - Qiita
  • Amazon Linux で、Hyper-Threading を無効化する方法 | DevelopersIO

    はじめに EC2 インスタンスを稼働させる AWS 基盤(仮想ホストサーバー)では、インテル®︎ ハイパースレッディング・テクノロジー(以降、HT)が利用可能な Xeon プロセッサーが利用されております。HT については、インテル社の公式サイトをご確認ください。 インテル® ハイパースレッディング・テクノロジー 2017/10 現在、AWS から提供されている EC2 インスタンスの仮想CPU 数は、論理コア数に相当しているため仮想CPU 数を 1/2 した個数分の物理コアが割り当てられていると理解できます。ただし、一部(※)の特定インスタンスを除きます。 インスタンスタイプ - Amazon EC2 (仮想サーバー) | AWS (※) 2017/10 現在、T2 および m3.medium を除く。 記事では、Amazon Linux を利用した場合に OS インスタンス上から H

    Amazon Linux で、Hyper-Threading を無効化する方法 | DevelopersIO
  • プロセスのVSZ,RSSとfree,meminfo挙動を実機で確認 - のぴぴのメモ

    1.はじめに 1-1.この記事の要旨 1-2.(予習)メモリに関する指標とlinuxのメモリ挙動について 2.検証環境と検証方法 2-1.検証環境 2-2.検証方法 2-3.測定方法 (1)psコマンドによるVSZ,RSS情報の取得 (2)freeコマンドとmeminfo情報の取得 3.結果 3-1.全体の結果 3-2.プロセスのVSZ/RSS挙動 ポイント① malloc()した時の挙動→VSZのみ増加 ポイント② 1回目のデータread時→RSSは増えない ポイント③ データwrite→RSSが増加する 3-3.システムワイドな挙動(freeコマンド/meminfo) ポイント① malloc()した時の挙動→usedもAnonymousPageも増えない ポイント②1回目のデータread時→変化しない。 ポイント③ データwrite→used上昇、AnonymousPage上昇 4.

    プロセスのVSZ,RSSとfree,meminfo挙動を実機で確認 - のぴぴのメモ
  • Linux Load Averages: Solving the Mystery

    Recent posts: 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » TensorFlow Library Performance 19 Mar 2022 » Why Don't You Use ... 26 Sep 2021 » The Speed of Time 06 Sep 2021 »

    Linux Load Averages: Solving the Mystery
  • IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - 拡張命令(AVX2/TSX)編

    Sandy Bridge世代で初投入されたAVXであるが、Haswellではこれを大幅に性能改善すると共に、FMA(Fused Multiply and Add)命令を追加した。このFMAに関しては、AMDのSSE5というか、XOP(eXtended Operations)、正式には"128-Bit and 256-Bit XOP, FMA4 and CVT16 Instructions"を意識した感じもある。ただFMAそのものは初代のAVXで搭載されており、これを拡張した形になる。 むしろ差は性能改善の方が大きい。Photo01がざっくりした対比であるが、Haswell世代では浮動小数点演算性能がSandy Bridge世代から倍増している。この性能改善を表にしたのがこちら(Photo02)。この性能改善にはLoad/Storeユニットの強化が必要であり、その結果として64Bytes/c

    IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - 拡張命令(AVX2/TSX)編
    clavier
    clavier 2017/05/09