タグ付けされた質問 「kernel」

コンピューティングでは、カーネルはほとんどのコンピュータオペレーティングシステムの主要コンポーネントです。これは、アプリケーションとハードウェアレベルで行われる実際のデータ処理の間の橋渡しです。カーネルの責任には、システムのリソース(ハードウェアコンポーネントとソフトウェアコンポーネント間の通信)の管理が含まれます。

4
ソースコード行へのカーネルスタックトレース
カーネルスタックトレースを次のように指定すると、問題が発生した特定のコード行をどのように判断できますか? kernel: [<ffffffff80009a14>] __link_path_walk+0x173/0xfb9 kernel: [<ffffffff8002cbec>] mntput_no_expire+0x19/0x89 kernel: [<ffffffff8000eb94>] link_path_walk+0xa6/0xb2 kernel: [<ffffffff80063c4f>] __mutex_lock_slowpath+0x60/0x9b kernel: [<ffffffff800238de>] __path_lookup_intent_open+0x56/0x97 kernel: [<ffffffff80063c99>] .text.lock.mutex+0xf/0x14 kernel: [<ffffffff8001b222>] open_namei+0xea/0x712 kernel: [<ffffffff8006723e>] do_page_fault+0x4fe/0x874 kernel: [<ffffffff80027660>] do_filp_open+0x1c/0x38 kernel: [<ffffffff8001a061>] do_sys_open+0x44/0xbe kernel: [<ffffffff8005d28d>] tracesys+0xd5/0xe0 関数呼び出しを見つけるのに問題はありませんが、__link_path_walkとオフセットを実際の行番号に変換するのは難しい部分です。 これが正確なバージョンとビルド番号を知っている標準のディストリビューション提供のカーネル用であると仮定すると、必要なメタデータを取得し、対応するルックアップを行うプロセスは何ですか?

8
カーネルの更新後にLinuxを再起動することは重要ですか?
私たちのサイトとユーザーシェルアカウント(git vcsの作業、screen + irssiセッションなどに使用)をホストするFedoraおよびDebian Webサーバーがいくつかあります。 時々、新しいカーネルアップデートがyum/ apt-getでパイプラインに届くので、ほとんどの修正が再起動を保証するほど深刻なものなのか、それとも再起動せずに修正を適用できるのか疑問に思っていました。 現在、メインの開発サーバーの稼働時間は213日であり、そのような古いカーネルを実行するのが安全でないかどうかはわかりませんでした。
19 linux  kernel  update 

3
EC2 AMIからvmdkイメージへの変換
この回答とこれらの ウェブサイトのおかげで、VirtualBox内でAmazon Linuxを起動できるようになりました。私がとったステップの簡単な概要: Amazon Linux 2011.09 64ビットAMIでEC2インスタンスを起動する ddEBSボリュームのコンテンツをsshローカルイメージファイルに保存します。 イメージファイルをループバックデバイスとしてマウントしてから、ローカルマウントポイントにマウントします。 新しい空のディスクイメージファイルを作成し、ブートローダーのオフセットでパーティションを作成し、ext4ファイルシステムを作成します。 新しいイメージのパーティションをマウントし、EC2イメージからすべてをコピーします。 grubをインストールします(grub-legacy-ec2grub2ではなくUbuntuのパッケージを使用)。 を使用してイメージファイルをvmdkに変換しますqemu-img。 vmdkを使用して新しいVirtualBox VMを作成します。 これでVMが起動し、grubがロードされ、カーネルが見つかりました。ただし、ルートデバイスをマウントしようとすると失敗します。 dracut Warning: No root device "block:/dev/xvda1" found dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line. dracut Warning: Signal caught! dracut Warning: Boot has failed. To debug …

3
Linuxカーネルの「11分間モード」で可能な最大のハードウェアクロックアップデートは何ですか?
ntpdLinuxシステムで特定の時間関連プログラム(など)が実行されている場合、カーネルはいわゆる「11分モード」(hwclockマニュアルページを参照)に切り替わり、11分ごとにシステムクロックからハードウェアクロックを自動的に更新します。 。 SLES11では、ハードウェアクロックをシステムクロックの10時間遅れに設定すると、11分間モードではハードウェアクロックをシステムクロックに一致させることができないと経験的に判断しました。しかし、システムクロックより5分遅れてハードウェアクロックを設定すると、11分モードが完全に一致します。 明らかに、11分間モードで処理できる最大の更新があるため、それが何であるかと思います。 更新: これは奇妙です... さらに実験を行うと、システムクロックの20分前後にHWクロックがある場合、11分間モードではHWクロックがシステムクロックのちょうど 30分遅れに設定されます(!): # date Tue Dec 6 10:16:52 EST 2011 # hwclock --set --date "12/6/11 09:56" # # date Tue Dec 6 10:17:16 EST 2011 # hwclock --show Tue Dec 6 09:56:06 2011 -0.156551 seconds # # date Tue Dec 6 10:23:09 EST 2011 …
18 linux  kernel  time 

1
ネットワークインターフェイスがパケットをドロップしている理由を調べる方法
Linuxでパケットがドロップされたさまざまな理由に関する統計を取得する方法はありますか? 複数のサーバー上のすべてのネットワークインタフェース(openSUSEの12.3)に、ifconfigおよびnetstat -i受信にドロップされたパケットを報告しています。を実行するtcpdumpと、ドロップされたパケットの数が増えなくなります。つまり、インターフェイスキューがいっぱいにならず、データがドロップされます。そのため、これが発生する理由は他にもあるに違いありません(たとえば、マルチキャストパケットは受信されますが、インターフェイスはこのマルチキャストグループの一部ではありません)。 そのような情報はどこで入手できますか?(/ proc?/ sys?いくつかのログ?) 統計の例(/ sys / class / net / <dev> / statisticsとethtool出力のマージ): alloc_rx_buff_failed: 0 collisions: 0 dropped_smbus: 0 multicast: 1644 rx_align_errors: 0 rx_broadcast: 23626 rx_bytes: 1897203 rx_compressed: 0 rx_crc_errors: 0 rx_csum_offload_errors: 0 rx_csum_offload_good: 0 rx_dropped: 4738 rx_errors: 0 rx_fifo_errors: 0 rx_flow_control_xoff: 0 rx_flow_control_xon: 0 rx_frame_errors: 0 …

4
高負荷が原因でサーバーがハングし、エラーが「120秒以上ブロックされる」ことがありますか?
現在、いくつかのVMおよび「ベアメタル」サーバーを実行しています。Javaは高稼働しています-時折400%以上。サーバーが「java-120秒以上ブロックされています」-kjournaldなどのコンソールのエラーでランダムにハングします。 何らかの理由でこのエラーはコンソールにのみ書き込まれるため、dmesgの出力を取得できません。これはリモートでホストされているためアクセスできません。したがって、完全なトレースをコピーすることはできません。 私はこれがオンになっている環境を変更しました-物理サーバーであっても、それはまだ起こっています。 これがhttp://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Technical_Notes/deployment.htmlに従って誤検知である場合に備えて、hung_task_timeout_secsを0に変更しました。 また、irqbalanceはインストールされていません。おそらく役立つでしょうか。 これはUbuntu 10.04 64ビットです。最新の2.6.38-15-serverおよび2.6.36と同じ問題です。 CPUまたはメモリの問題/スワップなしがこの問題を引き起こす可能性がありますか? コンソールメッセージは次のとおりです。 [58Z?Z1.5?Z840] INFUI task java:21547 blocked for more than 120 seconds. [58Z?Z1.5?Z986] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this message. [58Z841.5?Z06Z] INFUI task kjournald:190 blocked for more than 120 seconds. [58Z841.5?Z336] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this message. [58Z841.5?Z600] INFUI task flush-202:0:709 …
17 linux  kernel 

1
Linuxカーネルでperfサブシステムを無効にする方法は?
いくつかのベンチマークを実行しています。私のベンチマークランナーは、実験間のdmesgバッファーを監視し、パフォーマンスに影響を与える可能性のあるものを探します。今日それはこれを投げた: [2015-08-17 10:20:14警告] dmesgは変更されたようです!差分は次のとおりです。 --- 2015-08-17 09:55:00 +++ 2015-08-17 10:20:14 @@ -825,3 +825,4 @@ [3.802206] [drm] RC6状態の有効化:RC6オン、RC6pオフ、RC6ppオフ [7.900533] r8169 0000:06:00.0 eth0:リンクアップ [7.900541] IPv6:ADDRCONF(NETDEV_CHANGE):eth0:リンクの準備ができた + [236832.221937] perf割り込みに時間がかかりすぎ(2504> 2500)、kernel.perf_event_max_sample_rateを50000に下げました いくつかの検索の後、これは「perf」と呼ばれるLinuxカーネルのプロファイリングサブシステムに関連していることがわかりました。これが必要だとは思わないので、完全に無効にしたいと思います。 もう一度検索すると、sysctl perf_cpu_time_max_percentが役立つことがわかりました。ここで、誰かが0に設定して無効にすることを提案します。 perf_cpu_time_max_percent: パフォーマンスサンプリングイベントを処理するために使用できるCPU時間をカーネルに通知します。サンプルがこの制限を超えていることがperfサブシステムに通知されると、CPU使用率の削減を試みるためにサンプリング周波数が低下します。 一部のパフォーマンスサンプリングはNMIで発生します。これらのサンプルの実行に予想外の時間がかかりすぎると、NMIが隣同士に積み重なってしまい、他に何も実行できなくなります。 0:メカニズムを無効にします。CPU時間に関係なく、perfのサンプリングレートを監視または修正しないでください。 1-100:perfのサンプルレートをこのCPUの割合に調整しようとします。注:カーネルは、各サンプルイベントの「予想される」長さを計算します。ここで100は、その予想される長さの100%を意味します。これが100に設定されている場合でも、この長さを超えると、サンプルの調整が見られる場合があります。CPUの消費量を本当に気にしない場合は、0に設定します。 これは、0がプロファイリングサンプルレートがチェックされなくなったことを意味しているように聞こえますが、freqサブシステムは実行されたままです(?)。 誰でもfreqでカーネルプロファイリングを完全に無効にする方法に光を当てることができますか? 編集:誰かがperfなしでカーネルを構築しようと提案したが、これは可能だとさえ思わない。オプションは切り替え可能ではないようです: EDIT2:さらに読んだ後、kernel.perf_event_max_sample_rateゼロに設定できる可能性があると判断しました。つまり、1秒あたりのサンプルはありません。ただし、これもできません(source): コミット02f98e3e36da106338b7c732fed516420fb20e2a 著者:クヌート・ピーターセン 日付:2013年9月25日水曜日14:29:37 2013 +0200 perf:perf_event_max_sample_rateの下限として1を強制します 編集3:FWIW perf_cpu_time_max_percentは25に設定されています。つまり、カーネルはハードウェアレジスタのサンプリングに時間の25%以上を費やしていました。これは、ベンチマークマシンでは受け入れられません。 perf_cpu_time_max_percentカーネルはハードウェアレジスタの読み取り時間の25%以上を使用し続けるため、ゼロに設定しても状況が悪化するだけであると確信しています。エラーが発生してサンプルレートが調整されるため、カーネルがperfでの時間の<25%を使用するクォータを確実に満たそうとします。私見ではまだ25%が高すぎます。 本当にperfを無効にできない場合、おそらく最良の妥協点はperf_event_max_sample_rate1 に設定することです。 …

4
CentOS 6.xでカーネル3.4にアップグレードするにはどうすればよいですか?
カーネルバージョン2.6.32でCentOS 6.2を実行しているサーバーがありますが、アプリケーションのパフォーマンスを向上させる必要があります。 カーネルバージョン3.4にはパフォーマンスを改善できるx32abiがありますので、3.4にアップグレードしたいですか?出来ますか? カーネルのコンパイルとインストールをダウンロードしようとしましたが、同じカーネルバージョンが表示されます。 何が悪かったのか?以下のリンクに記載されているプロセスに従いました。 http://www.tecmint.com/kernel-3-5-released-install-compile-in-redhat-c​​entos-and-fedora/

6
kspliceの生産準備はできていますか?
本番環境でのKspliceのserverfaultコミュニティの経験を聞きたいです。 ウィキペディアからの簡単な宣伝文: KspliceはLinuxカーネルの無料のオープンソース拡張機能であり、システム管理者はオペレーティングシステムを再起動することなく、実行中のカーネルにセキュリティパッチを適用できます。 そして Kspliceは、カーネルを再起動することなく、カーネルコードの変更のみが必要なソースコードパッチを適用できます。他のホットアップデートシステムとは異なり、Kspliceは統一されたdiffと元のカーネルソースコードのみを入力として受け取り、実行中のカーネルを正しく更新します。それ以上の人的支援は必要ありません。さらに、Kspliceを利用するには、システムを最初に起動する前に準備を行う必要はありません(たとえば、実行中のカーネルを特別にコンパイルする必要はありません)。更新を生成するために、Kspliceは、ソースコードパッチによってカーネル内のどのコードが変更されたかを判断する必要があります。 いくつかの質問: 安定性はどうでしたか?カーネルの「リブートレスライブパッチ」で発生した奇妙な問題はありますか?カーネルパニックまたはホラーストーリー? 私はいくつかのテストシステムでそれを実行しており、今のところ宣伝どおりに機能していますが、Kspliceで他のシステム管理者が経験したことに興味があります。 だから、Kspiceを本番で使用している人はいますか? 更新:うーん、数時間後にはこの質問に関する実際の活動は見られません(ある種の賛成票や賛成票を除く)。いくつかの活動を刺激するために、さらにいくつかの質問をして、この議論を進めることができるかどうかを確認します... 「Kspliceを知っている場合、それを使用していない理由はありますか?」 「まだ未熟であるか、実証されていない、またはテストされていないと感じますか?」 「Kspliceは現在のパッチ管理システムにうまく適合していませんか?」 「稼働時間が長い(安全な)システムを持つのが嫌いですか?」;-)

1
18日の稼働時間後に4GB RAMを使用するsystemd
CentOS 7を実行しているWebサーバーで、2週間の稼働時間の後にsystemdプロセスが約4 GBのRAMを使用しています。RAM使用量は1日あたり約200MBで着実に増加しています。このプロセスおよびsystemd-logindやdbus-daemonなどの関連プロセスも、かなりの量のCPUチャンクを頻繁に使用します。systemdの代わりに「init」を使用する他のCentOS 6サーバーには、このようなリソースの使用はありません。 以下の上の例では、他のプロセスが実行されていない通常のWebサービス中に、systemd、systemd-logind、systemd-journal、およびdbus-daemonはクアッドコアCPUの合計10.7%を使用し、systemdは19%システムの16GBのRAM。これは通常の動作ではなく、検索した後、この問題を抱えている人は他にいません。このリソースが占有される原因は何ですか?任意の提案をいただければ幸いです。 アイドル期間中のトップからの出力(Webサービスを除く): top - 08:51:31 up 16 days, 13:43, 2 users, load average: 1.84, 1.39, 1.07 Tasks: 297 total, 2 running, 295 sleeping, 0 stopped, 0 zombie %Cpu(s): 5.6 us, 3.6 sy, 0.0 ni, 90.6 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem …
14 linux  kernel  systemd 

4
「バグ:ソフトロックアップ-17163091968でCPU#0がスタックする」の修正方法
更新:メッセージのタイトルを更新しました17163091968s。これは、この正確な時間量でこれらの問題を最近見たためです。これは、このページを見つけるために症状を調査する人々に役立つはずです。以下の(自己)受け入れられた答えを参照してください。 VMware vSphereデータセンターに多数の64ビットUbuntu 10.04 LTS VMがあります。VMwareツールがインストールされています(vSphere Clientで「OK」と表示されます)。 いくつかのVMが数回ハングし、syslogに次のエラーが表示されることがあります。vSphereから状況を確認すると、コンソールが黒くなり、「ゲストの再起動」コマンドは何もしなかったため、VMの電源を入れ直す必要がありました。 Dec 1 11:44:15 s0 kernel: [18446744060.007150] BUG: soft lockup - CPU#0 stuck for 17163091988s! [jed:26674] Dec 1 11:44:15 s0 kernel: [18446744060.026854] Modules linked in: btrfs zlib_deflate crc32c libcrc32c ufs qnx4 hfsplus hfs minix ntfs vfat msdos fat jfs xfs exportfs reiserfs xt_tcpudp …

1
isolcpusのさまざまなコアでタスクセットが機能しない
序文として、AMD64チップセット上のカーネル3.2でDebian Wheezyを使用しています。私のマシンには2つのXeon E5-2690コアがあります。1つのCPU上のすべてのコアが単一のプロセス専用になるように、ブートパラメーターを設定しました。これを行うために、grubにisolcpus = 8,9,10,11,12,13,14,15を設定しました。 ここまでは順調ですね。ここで、特定のコマンドに分離されたCPUを使用したいとします。簡単にするために、単純な無限ループを使用します。 $ taskset -c 8-15 bash -c 'while true; echo hello> / dev / null; 完了」 これまでのところ、topはコア8がほぼ100%の使用率までスピンすることを示しています。ここで、そのコマンドをもう一度起動するとします。 $ taskset -c 8-15 bash -c 'while true; echo hello> / dev / null; 完了」 上の図は、コア9〜15がアイドル状態であり、2つのプロセスがコア8を共有していることを示しています。 $ taskset -c 8 bash -c 'while true; echo hello> / dev …

3
奇妙な:なぜLinuxは最後のping応答の後にARPリクエストでpingに応答するのですか?
私(および同僚)は、Linuxマシンがpingされると、最後のping がICMP pingを開始したマシンへのユニキャスト ARP要求を開始することに気づき、テストしました。Windowsマシンにpingを実行すると、Windowsマシンは最後にARP要求を発行しません。 このユニキャストARPリクエストの目的は何か、そしてWindowsではなくLinuxで発生する理由を誰もが知っていますか? Wiresharkトレース(Linuxボックスは10.20.30.45): No.Time Source Destination Prot Info 19 10.905277 10.20.30.14 10.20.30.45 ICMP Echo (ping) request 20 10.905339 10.20.30.45 10.20.30.14 ICMP Echo (ping) reply 21 11.904141 10.20.30.14 10.20.30.45 ICMP Echo (ping) request 22 11.904173 10.20.30.45 10.20.30.14 ICMP Echo (ping) reply 23 12.904104 10.20.30.14 10.20.30.45 ICMP Echo (ping) …
12 linux  kernel  ping  arp  icmp 

5
GRUB「一部のモジュールがコアイメージから欠落している可能性があります」警告
RAIDから1台のHDDがクラッシュし、新しいHDDを追加しました。 ここで、新しいHDDにGRUBをインストールしたいと考えましたgrub-install /dev/sdb。次の警告が表示されます。 Installing for i386-pc platform. grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. Installation finished. No error reported. 上のupdate-grub2I取得します: Generating grub configuration file ... /usr/sbin/grub-probe: warning: …
12 ubuntu  kernel  grub  grub2 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.