LinuxのSSHの反応が鈍い原因と回避策

このQ&Aのポイント
  • LinuxのSSHの反応が鈍くなる原因として、cronが実行する長時間のスクリプトの影響が考えられます。
  • cronが実行するスクリプトが時間がかかる場合、SSHのパフォーマンスに影響を与える可能性があります。
  • 回避策としては、cronジョブを分割したり、実行頻度を調整することが考えられます。
回答を見る
  • ベストアンサー

linuxのsshの反応が非常に遅い。

初めまして。 最近wgetを多用するスクリプトを組み、それをcrontabで繰り返し実行しています。 例えば、一つのシェルスクリプトに10回wgetを実行するように書いています。 そしてcrontabでは、その類のスクリプトを7~8回程実行するように書いています。 実行間隔は10分に1度です。 先日まではもう少し少なかったのですが、昨日からcrontabでそのスクリプトを上記ぐらいの頻度に少しずつ増やしていったところ、SSHへの反応が鈍くなりました。 端末はputtyで、エンターを押すとカーソルは下がるのですが、「root #」といったようなプロンプトがなかなか出てきません。 10分程度待って見ているとようやくプロンプトが出て操作は短時間だけできるのですが、またすぐに反応がなくなってしまいます。 HTTPとFTPは正常に通信できることを確認しています。 サーバのハードウェアは遠隔地にあるため、直接操作することができない状態です。 telnetは利用していません。 crontabが実行するスクリプトが長時間かかるものである場合、SSHにも影響を与えるものなのでしょうか? もしそうであるのなら、なにか回避策はないでしょうか。 もしそうでない場合、crontab以外の原因は何が考えられるか、教えて頂けないでしょうか。 ぜひ、宜しくお願い致します。 linux: fedora core 3

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

とりあえずtopで負荷をみてください。 場合によってはniceで順位をおとしてください もし仮に10分に1度の処理を10分以内におわっていない場合は そのcronスクリプト自体の有効性に疑問がありますので もうすこし間隔を伸ばしてやってみてはいかがでしょうか?

satsukima
質問者

お礼

早速の回答、ありがとうございます。 yambejpさんのアドバイスにありましたniceを使わせて頂き、解決したと思います。 解決までの経緯としては、昨晩全てのcrontabのスクリプトをはずしサーバ再起動、sshの優先順位が16だったため、crontabに使うスクリプトをniceで17にして実行し、1時間経過してもsshは正常に動いている、という状態です。 本当に、ありがとうございました。

関連するQ&A

  • puttyというsshクライアントでログインと同時にシェルスクリプトを実行したい

    はじめまして。 WINDOWS XP SP2でputtyを使い sshでRH ES3サーバーに接続しています。 ログイン後あるシェルスクリプトを自動で実行させたいのですが、.bash_profile以外に方法はありますか? .bash_profileだとそのユーザー全員が対象になってしまうため他の方法を探しています。

  • sshとtelnetでjavaの挙動が変わる?

    sshとtelnetでjavaの挙動が変わる? 以下の環境で開発しています。 unameの結果  Linux xxxxxxxx 2.6.32-23-server #37-Ubuntu SMP Fri Jun 11 09:11:11 UTC 2010 x86_64 GNU/Linux sshとtelnetのバージョン OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25 Mar 2009 telnet version 0.17-36build1 % java -version を実行した結果 (ssh,telnet上で共に同じ結果)  java version "1.6.0_18"  OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-0ubuntu1)  OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) 外からsshでログインし、as3のソース(action script)をコンパイルするとjavaからは何も文句は言われず、 正常にコンパイルされました。 とある事情があって、サーバにtelnetdをインストールし、外からtelnetでログインし、上記と同じ操作で コンパイルを実行すると、以下のエラーメッセージが表示され、コンパイルできませんでした。 エラー: Can't load library: /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/xawt/libmawt.so cshシェルの環境(setenv)は、sshの場合 SSH_*が増えている。 それ以外は、telnet,ssh共に同じ内容です。 すいませんが、教えてください。

  • sshやtelnetでログイン後、シェル(bash, csh)プロンプトからコマンド実行する方法は?

    下記掲示板(CGI)の設置で至急、「sshもしくはtelnet」の情報が必要になりました。(メールによる掲示板への投稿機能で必要) http://www.megumi-island.net/cgi.html#bbs sshやtelnetでログイン後、シェル(bash, csh)プロンプトからコマンド実行する一番簡単な方法を教えてください。なお、当方OSはWindowsXP環境です。 シェルから下記コマンドを実行したいのです。 $ ./mi_mlpost.pl (と入力し、Enterキーを押す) これでとりあえず第一難関クリアです。 付属のmi_mlpost.txtによれば、まだcronの設定があるようですが・・・

  • SSHをsystem関数で。

    SSHログイン先のコマンド結果出力と、SSHログイン先のプロンプトを表示させたいです。 Perlでsystemを使用してSSHログイン先でコマンド実行した結果とプロンプト表示のみ 出力したいのですが、下記ではうまくいきません。。。 system( ssh -q 10.x.x.x ; ls);  *ここでsshはパスワードやユーザーを聞かれないように設定済み。 *"-q"はsshのオプションで、SSHログイン時の出力をしない設定 *ログイン先シェルはcsh (求める出力結果)************** [sshログイン先prompt] ls結果・・・ ls結果・・・ [sshログイン先pprompt] ****************************** 不明確な部分等ありましたらすみません。。。 どうかご教授お願いいたします。

  • web上でLinuxのアカウントを作れるCGI等探してます。

    Linuxサーバーのアカウントを web上の操作で作成できるようにしたいのですが、 どなたかスクリプトかCGIかありましたら 教えていただけませんでしょうか。 web上でなくても、GUIで操作できる Telnet SSHでも結構です。 OS:RedHat 7.0J よろしくお願いします。

  • リモートからシェルを実行したい(≠SSH)

    Debian(玄箱)を使用中です。 外部(外出先などのLANの外側)から玄箱にあるシェルを実行させたいのですが、「SSHやtelnetなどを利用した端末ソフトなど?を利用してログインすることなく実行させる方法」を探しています。 つまり、できるだけ簡単な方法で、それこそ“外部からのワンクリックで”シェルを実行させるような環境を組みたいと考えています。 玄箱ではメールサーバー・Webサーバー(Apache)が稼働中です。これをうまく絡めることで何とかならないでしょうか。 いろいろと検索してみたところ、PHPに何かヒントがあるようなのですが・・。ちなみにPHPに関しては全くの初心者で、HTMLに関しては、構造や文法の最低限レベルを理解している(タグは読める)程度と考えてください。 JSPを絡める方向なども考えられるのでしょうか。 とはいえ、Javaは最低限のプログラムは組めるレベルなのであまり難しいことはできません。(Tomcatも現時点で未設定です) 「SSHを利用するソフト」がWindowsで標準で用意されてないと思うので、そこをクリアしたいのです。(いかなる外出先の、いかなるWin機でもシェルを実行できるようにしたい)さすがに毎度毎度SSH接続ソフトをダウンロードして設定するわけにはいかないと思うので・・・。 また、もし可能ならば、「携帯電話のブラウザからでもリモートでシェルを実行できる方法」なんかも教えていただけると幸いです。 回答のほどよろしくお願いします。

  • wgetしたらネットに繋がっていない?

    wgetにてソースをダウンロードしています。 環境としましては、 ルーターの下にWinXPとFedora3があります。 そして、WinXPからPuttyにより操作しております。 今までは書籍に付属してあったCDROMからインストールをしていたため出来ました。 今度はネットからと思い調べたらwgetというのがあり、使ってみようとしたら出来ません。 wget http:・・・・・ ...失敗しました: ホストが見つかりません. となります。 wgetのあとのURLはあっていると思うのですが、やはりネットに繋がっていないと考えるのが妥当でしょうか? 何か原因があれば教えていただけませんか? よろしくお願い致します。

  • SSHでの接続が不安定

    SSHでの接続が不安定 fedora11で鍵交換方式による認証でリモートログインするSSHサーバを建てた のですが、どうも接続が不安定です。 クライアント(Windows XP)でPutty、Poderosaなどでログインしようとすると、 ポート22番ではじかれてしまい、エラーウィンドウが表示されます。 ポート開放チェックサイトでは、22番にはアクセスできると表示されているのですが、 どうもうまくいきません。 しかし、この状態で何もいじらないで30分ほど放置し、再びログインしようとすると、 ターミナルに 「login as:」と表示され普通に接続可能になります。 なぜ、このようになるのかわかりません。 考えられる理由程度でよいので、よろしくお願いします。

  • IP自動更新スクリプトがうまく動作しません

    環境 FreeBSD9 IP自動更新スクリプトを作成したのですが、うまく動作しません。メールでwget not foundが10分間隔で送られてきます。 wgetコマンドが見つからないと言ってるようです。/usr/local/bin/にwgetコマンドがあります。 また、コマンドラインでもwgetを使用してダウンロードできます。 vi /usr/local/bin/ddo.sh に以下のスクリプトを作成して、実行権限を与えました。 #!/bin/sh wget -O - "http://free.ddo.jp/dnsupdate.php?dn=hogehoge&pw=hogehoge1234" >> /var/log/result.log コマンドプロンプトでddo.shを実行すると、正常にIP更新がされログにその更新内容が記載されます。 スクリプトをcrontab -eに登録しました。 */10 * * * * /usr/local/bin/ddo.sh 10分間隔で実行はされるのですが、wget not found がメールに届き、ログに更新内容の記載がありません。 何がいけないのでしょうか? よろしくお願いします。

  • シェルスクリプト内で他のサーバへSSH接続

    急にシェルスクリプトを組む事になり、勉強を始めて2週間です。 下記について、調べても分からなかった為、教えてください。 どのようなコマンドを使用すればよいのかや、参考になるサイトがありましたら教えてください。 【概要】 シェルスクリプト内で、SSH接続で他サーバへ接続し他サーバ内で別のシェルスクリプトを実行する。その際にroot権限が必要となる。 【環境】 作業PC:Windows サーバA:Linux サーバB:Linux 【スクリプト】 スクリプト1  格納場所:サーバA  処理  :スクリプト1、2を実行 スクリプト2  格納場所:サーバA  処理  :サーバA内でディレクトリ作成等の作業をしてOK/NGを返却 スクリプト3  格納場所:サーバB  処理  :サーバB内でディレクトリ作成等の作業をしてOK/NGを返却 【やりたい事】 1.作業PCからサーバAへSSH接続 2.サーバAでroot権限へスイッチし、スクリプト1を実行 3.スクリプト1は、スクリプト2を実行 4.スクリプト2はディレクトリ作成等の処理を行い、OK/NGを表示 5.スクリプト1は、サーバBへSSH接続 6.スクリプト1は、サーバBでルート権限へスイッチし、スクリプト3を実行 7.スクリプト3はディレクトリ作成等の処理を行い、OK/NGを表示 8.スクリプト1はサーバBからログアウト