こんにちは、サイオステクノロジー武井です。今回は、Azure AI Searchによるベクトル検索・セマンティック検索・ハイブリッド検索について一筆したためたいと思います。 生成AI時代の様々な検索手法 最もメジャーな検 […]
![SIOS Tech. Lab - エンジニアのためになる技術トピックス](https://cdn-ak-scissors.b.st-hatena.com/image/square/14ddd4cf8e3ebc79d858ee6816a1e1b93d9951c9/height=288;version=1;width=512/https%3A%2F%2Ftech-lab.sios.jp%2Fwp-content%2Fuploads%2F2018%2F05%2Fsios_tech_lab_image.png)
https://github.com/kazuho/jailing/ kazuhoさんがやってくれました。 ずいぶん前からlinuxでchroot jailを作るのに簡単な方法ないかなーと思ってました。個人的にはsystemd-spawnというのを使ってたのですが、幾らか気に入らない所があったり構築に時間がかかったり、ディスク容量を消費していました。簡単に使えて、ディスク容量を消費しないやつがほしいなーっておもってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、github にある docker とかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から本格的に書き始めてついさっき出来上がりました。速いw 名前はjailing とても小さく、実装コードだと100数十ステップ程です。しかもpe
2015-03-15 CentOS7をVirtualBox 4.3.24 にインストールメモ3(EPELリポジトリの追加, Xfce4インストール + ibus-daemonで日本語入力) CentOS7 VirtualBox Xfce CentOS7をVirtualBox 4.3.24 にインストールした、以下のメモの作業の続きです。 CentOS7をVirtualBox 4.3.24 にインストールメモ2(日本語入力, ページャ選定, SELinuxとファイアウォールの無効化) - msakamoto-sfのはてなブログ http://glamenv-septzen.hatenadiary.jp/entry/2015/03/15/204820 今回はGNOME/GNOME Classicが重い+trackerが異常終了してから、なぜか"Application"メニューの"Utiliti
LinuxやUNIXでbashを利用しているならば、historyコマンドにお世話になっている人も多いだろう。 そんなhistoryコマンド、デフォルトでは基本的にコマンドの実行時間は記録されない。 test@ubuntu-server:~$ history | tail -10 368 screen 369 vim .screenrc 370 screen 371 ls -la 372 screen 373 vim .screenrc 374 screen 375 history | tail -10 376 clear 377 history | tail -10 test@ubuntu-server:~$ そんなhistoryコマンドの実行結果でタイムスタンプを出力させる場合は、「.bash_rc」に以下の一行を追記する。 これで、追記以後のログインからコマンドの実行時間を記録するよ
本記事の公開後の2016年7月にはてなにおけるチューニング事例を紹介した。 はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回は、このようなネットワークアプリケーションにおいて CPU 負荷がマルチコアスケールしない理由と、マルチコアスケールさせるための Linux カーネルのネットワークスタックのチューニング手法として RFS (Receive Flow Steering) を
When I start my tcp server from my bash script, I need to kill the previous instance (which may still be listening to the same port) right before the current instance starts listening. I could use something like pkill <previous_pid>. If I understand it correctly, this just sends SIGTERM to the target pid. When pkill returns, the target process may still be alive. Is there a way to let pkill wait u
ログを閲覧する際、「◯月◯日の◯時~☓時までの間」のログを見たいという事があるだろう。 そんな時便利なのが、今回紹介するtimegrepコマンドだ。これは、まさにその時間を指定してログを抽出することができるコマンドだ。 今回は、CentOS 7にこのコマンドをインストールして、実際に利用してみることにする。 1.インストール まずはインストールから。以下のコマンドを実行し、実行ファイルのダウンロード、配置を行う。 git clone https://github.com/linux-wizard/timegrep cp ./timegrep/timegrep /usr/bin/ 2.コマンドの実行 さて、それでは実際にコマンドを実行してみよう。 コマンドは、以下のように実行するとよい。 timegrep -d yyyy-mm-dd --start-time=XX:XX --end-time
kill a waiting process using shellscript
ホーム 検索 - ログイン | | ヘルプ 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) [ Prev ] [ Next ] [ 技術 ] 何をいまさら当たり前の事を・・・と思われるだろう。 $ nohup long_run_batch.sh & SSHからログアウト後も実行を続けたいバッチジョブを、"&"を付けてバックグラウンドジョブとしてnohupから起動するのは定番中の定番である。 しかし、「nohupを使わなくても実行を続けることが出来る」やり方があったり、さらには「nohupを付けてもログアウト時に終了してしまう」パターンがあるとしたらどうだろう? そして、ある日あなたの後輩や同僚がこれらについてあなたに質問してきたら、あなたはどう答えるだろうか? 「Web上で検索したら見つか
こんにちは。今回はLinuxのシステム情報を入手するコマンド特集です。システムの設定やハードの情報を入手する際に役立ちそうなコマンド(というかCUI操作)を独断と偏見でピックアップします。ディストロやバージョンによって設定ファイルやコマンドは変化しますので注意してくださいね。(本記事のコマンドは2014年9月時点のものです) CPUやメモリの情報を調べる CUPの情報を得る $ cat /proc/cpuinfo 出力例 processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 23 model name : Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz stepping : 6 microcode : 0x60c cpu MHz : 800.000 cache size : 3072
HP ProLiant Gen8サーバーにCentOS6.4(64bit)を入れる Posted 2013年12月6日 by はらぐち & filed under インフラ. HPのサーバーをCentOSで使いたい事が出てきてインストールにいろいろ試行錯誤したので備忘録です。 今回やりたい事はCentOS6.4でDynamic Smart Arrayを使ってRAID1を構築し、管理したいという内容となります。 HP ProLiant DL320e Gen8 v2に入れてみました 準備 ・CentOS6.4(64bit)のCD ・光学ドライブがないのでUSBの外付けCDドライブ ・USBメモリ ・その他管理ツールのパッケージをHPのサポートページからダウンロード HP ProLiant本体のRAID設定 HP ProLiant DL320e Gen8 v2はHP Dynamic S
Home Subscribe Unixデーモンの仕組み 12 March 2015 おはこんばんちは!! 尾藤 a.k.a. BTO です。 みなさん、Unixデーモンよく使ってますよね。 Webエンジニアなら、Webサーバ、メールサーバ、DBサーバ、cronなどがよく使われるのではないでしょうか。 24時間365日黙々と働き続けるUnixデーモン達。 身近な存在だと思いますが、実はどういう仕組みで動いているのかご存じない方も多いのではないでしょうか。 先日、オトバンクでUnixデーモンの仕組みについて勉強会をやったので、その内容をまとめます。 デーモンとは では、デーモンとはいったい何なのでしょうか。 Unixライクシステムにおいて、バックグランドで動作して様々な処理を実行してくれるプロセスがデーモンです。 デーモンには明確な定義はありませんが、だいたい次のような条件を満たすプロセスが
LinuxやUNIXを使っていると、あるパーティションの容量(たとえば、/var/logなど)がいっぱいになってしまうことがある。 そういった時は、dfコマンドなどで各パーティションの容量を確認し、そのパーティション内で容量が大きくていらないファイルやディレクトリを削除したり、別のパーティションに移動させる対処が必要になる。 今回は、そんな容量の大きいファイルやディレクトリを確認する方法について記述する。 1.容量の大きいファイルを調べる Linuxの場合、「-S」オプションを付与することでファイル容量の大きい順に出力する。 Linuxの場合 ls -lhS 調べたいディレクトリ なお、HP-UXなどの古いOSでは「-S」オプションが存在しない。 そのため、sortコマンドと組み合わせる事で同様の出力を求める。 HP-UXなどの場合 $ ls -l 調べたいディレクトリ | sort -n
問題 アプリケーション内でhttpsによる外部APIを叩いているサーバのメモリ使用量が増加し続ける件について調べた。 該当のサーバでは、以下のようにメモリの使用率が徐々に上昇していく。 また、アプリケーションのプロセス自体がメモリを消費しているわけではない状態。 原因 調査すると、このバグ仕様を踏んでいるのではないかと思われるページを見つけた。 https://bugzilla.redhat.com/show_bug.cgi?id=1044666 内容としては、curlを実行した際に /etc/pki/nssdb/以下の存在しないファイル(毎回違うパス)に対してaccessシステムコールが大量にコールされ、 negative dentry cacheが溜まっていき、メモリ使用量が圧迫されるというもの。 実際、この状況が起きているサーバを調べるとメモリ使用率のうち多くを占めているのはnega
Home Subscribe configureスクリプトとは何なのか 19 February 2015 おはこんばんちは!! 尾藤 a.k.a. BTO です。 みなさん Unix のパッケージをインストールする時、configureスクリプト実行しますよね。 なんかいっぱいいろんな事してるみたいで便利そうですよね。 でも実際は何をしてるんでしょうね。 configureスクリプトの出力見てますか? エラーが起きたときしか見てない事ないですか? 先日、よく使ってるんだけどよく知らないと思われる configure スクリプトの正体について、オトバンクで勉強会をやりました。 魔法の呪文 ./configure && make && make install よく打っているコマンドだと思いますが、これだけで解決します。 素晴らしいですね!! GNU Autotools configure
これはとある勉強会用の資料です。スライド作るのが面倒臭くなったのでブログにすることにしました。 Systemdとは Systemdは、Linuxの起動処理やシステム管理を行う仕組みです。 Linuxの起動処理 Linuxの起動はざっくりと以下の4段階によって行われます。 電源投入によりBIOSが起動する。 BIOSからブートローダーが呼び出される。 ブートローダーがLinuxカーネルを起動する。 Linuxカーネルがinitプロセス(PID 1)を起動する。 このinitプロセスが、Linuxの起動処理を司ります。古くから使われていたのがSysvinitで、Sysvinitの代替えとして近年Ubuntuなどで採用されていたのがUpstartです。そしてFedora 15やCentOS 7、Red Hat Enterprise Linux 7で採用されたのがSystemdです。 System
eth0のIPアドレス設定 change.eth0.ipaddr [IPアドレス] #!/bin/bash ipaddr=$1 [ -z "$ipaddr" ] && read -p "new eth0 ipaddr: " ipaddr sed -i "s/IPADDR=.*/IPADDR=$ipaddr/" /etc/sysconfig/network-scripts/ifcfg-eth0 cat /etc/sysconfig/network-scripts/ifcfg-eth0 ホスト名変更 change.hostname [ホスト名] #!/bin/bash hostname=$1 [ -z "$hostname" ] && read -p "new hostname: " hostname sed -i "s/HOSTNAME=.*/HOSTNAME=$hostname/" /et
2015/02/15 オープンセミナー2015@広島 http://osh-web.github.io/2015/Read less
最近、どうもLinux上ではemacsではなくvimを利用する事が多いのだが、その際に知ったので備忘として残しておく。 vimでは、以下のようにコマンドを実行することでリモート先のファイルをsshプロトコル経由で編集することが出来る。 vim scp://ユーザ名@リモートホスト(IPアドレス)//編集対象のファイル 実際にやってみたのがこちら。 まず、既存のファイル「/work/work/test/test2.sh」の中身を確認後、上記コマンドを実行している。 上記コマンドを実行した結果、/tmpフォルダに編集用の一時ファイルが作成される。 そのファイルを開くかを確認される。 ファイルが開かれるので、適当に編集して保存する。 再度ファイルを確認すると、無事編集が反映されている。 と、このような感じだ。 vimの搭載されていない、ESXi上に設置するスクリプトを作成する際に重宝するのではな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く