【告知】4D Serverの推奨運用環境

Go down

【告知】4D Serverの推奨運用環境

投稿 by miyako on 2017-08-29, 11:28 am

公式サポートページに掲載されている内容をまとめてみました。

https://taow.4d.com/Preconisations-pour-4D-Server/PS.43399950.en.html

データベース設定

Unicodeモード:有効
マルチターゲットコンパイル:有効
(できれば64ビット版のストラクチャをビルドする)

http://doc.4d.com/4Dv16R4/4D/16-R4/Compatibility-page.300-3330217.ja.html
http://doc.4d.com/4Dv16R4/4D/16-R4/Compiler-page.300-3330208.ja.html

ポート番号

下記のポート番号が他のサービスやアプリケーションに使用されないようにする

クライアント/サーバー公開(デフォルト:19813)
アプリケーション公開(上記のひとつ上,デフォルト:19814)
SQL公開(デフォルト:19812)
(SQLをまったく使用していないとしても,スタートアップにチェックされる)

http://doc.4d.com/4Dv16R4/4D/16-R4/Client-serverNetwork-options-page.300-3330225.ja.html
http://doc.4d.com/4Dv16R4/4D/16-R4/SQL-page.300-3330207.ja.html

その他(必要に応じて)

Web公開(デフォルト:80, 443)
PHP公開(デフォルト:8002)
Internet Commandsが使用するもの

http://doc.4d.com/4Dv16R4/4D/16-R4/WebConfiguration-page.300-3330220.ja.html
http://doc.4d.com/4Dv16R4/4D/16-R4/PHP-page.300-3330219.ja.html
http://doc.4d.com/4Dv12/4D-Internet-Commands/12.1/Appendix-B-TCP-Port-Numbers.300-506079.ja.html

プロセッサ

コア数:複数あることが望ましい
プリエンプティブモード:有効(v16・64ビット・コンパイルモード限定)
新規プロセスで開始するメソッド:プリエンプティブモードで開始プロパティを明示的に設定する

http://doc.4d.com/4Dv16R4/4D/16-R4/Preemptive-4D-processes.300-3317685.ja.html

プリエンプティブモードについて

プリエンプティブプロセス(スレッド)は,オペレーションシステムによってディスパッチされ,他のスレッドからは独立して処理を実行します。一方,コオペラティブプロセスは,4Dのメインスレッドで実行され,マシンに搭載されているコア数に関係なく,すべて同じCPUで実行されます。一般に,CPUコア数をプリエンプティブモードのほうがパフォーマンス面で優れていますが,その恩恵にあずかるためには,メソッドのコードがプラグインをコールしたり,インタープロセス変数などを参照したりしないことが求められます。

クライアントの(ローカルではない)プロセスは,それぞれサーバー側の対応するプロセス2個と対話しており,データベースアクセス(レコードの作成・保存・削除・並び替え・クエリなど)であればプリエンプティブプロセス,アプリケーションリクエスト(GET PROCESS VARIABLE (-1;...), Current time(*) など)であればコオペラティブプロセスのほうと通信します。SQLコマンド(Begin SQLとEnd SQLの間に記述されたコード)を実行する場合には3個目のプロセス(プリエンプティブ)を使用します。

たとえメソッドの内容がプリエンプティブモードで開始することを許さないものであるとしても,データベースリクエストやSQLにはプリエンプティブスレッドされることを考えると,やはり,コア数は複数あることが望ましいと結論づけることができます。

オペレーションシステム

できれば,64ビット版の認定されたバージョンのOSを使用してください。

認定(certified)オペレーションのリストは「資料」のページからダウンロードすることができます。

http://www.4d.com/jp/support/resources.html
http://www.4d.com/jp/products/compatibility-simplified.html

Windowsの場合

クライアントはWindows 10,サーバーはWindows Server 2008 R2が推奨される最低ラインです。v14以降,Windows Server 2008(R2ではない)はサポートされていないので注意が必要です。Windows Server 2012 R2も良い選択肢ですが,「Server Coreモード」オプションには対応していないことに留意してください。

https://msdn.microsoft.com/ja-jp/library/jj592692(v=ws.11).aspx

できれば専用のサーバーマシンを用意し,ファイルサーバーなど,デフォルトでインストールされている「役割」で不要なものをアンインストールしてください。

また,パフォーマンスを重視するのであれば,セキュリティオプションの「Microsoft ネットワーク クライアント: 常に通信にデジタル署名」を無効化したいと考えるかもしれません。このオプションが有効にされている場合,最大で15%ほどパフォーマンスが低下します。

https://msdn.microsoft.com/ja-jp/library/jj852186(v=ws.11).aspx

Macの場合

割り当てることができるメモリの上限が高く,オペレーションシステムの能力を最大限に引き出すことができるので,サーバーとクライアントの両方で64ビット版のアプリケーションを使用することが推奨されています。しかしながら,64ビット版は,テクノロジーの進化に合わせ,さまざまなモジュールが書き換えられたり,あるものは廃止されたりしていることに留意する必要があります。詳細はドキュメントを参照してください。

http://doc.4d.com/4Dv16/4D/16.1/Using-4D-Developer-Edition-64-bit-version.300-3373403.ja.html
http://doc.4d.com/4Dv16/4D/16/Changing-from-32-bit-versions-to-64-bit-versions.200-3101778.ja.html
http://doc.4d.com/4Dv16/4D/16/Using-4D-Server-64-bit-version-OS-X.300-3047553.ja.html

メモリ

4D Serverのキャッシュ・エンジン・アプリケーション本体に加え,オペレーションシステムには十分のメモリが割り当てられるようにしてください。

32ビット版のアプリケーションは,合計4GBを超えるメモリを使用することができません。64ビット版は,理論上,8TBのアドレススペースにアクセスすることができます。

アプリケーションに最適なキャッシュサイズを特定するために,4D_Info_Reportのようなツールを活用してください。

http://taow.4d.com/Outil-4D-Info-Report/PS.1938271.en.html

後でメモリを追加できるよう,未使用のスロットを残しておくのも実際的です。

ハードディスク

データファイル用に1個の高パフォーマンスSSD,バックアップ用に1個の大容量ディスクを用意します。

SSDを購入する前に,読み書きの速度をチェックしてください。容量よりも,パフォーマンスを優先します。理想は,オペレーションシステム,4D Server,データベースがすべてSSDに収まることです。

バックアップやログファイルは,もう1個の大容量ディスクに保存します。大容量ディスクには,SSDがクラッシュしたときに備え,アプリケーションのコピーも作成すると良いでしょう。

バックアップと保守

ログファイルを有効にし,標準のバックアップを活用するとともに,データファイルの圧縮も定期的に実行するようにします。事故が起きたとき,データベースのバックアップが存在することは,確かに重要ですが,最後に実行されたバックアップよりも新しいオペレーションは復元することができません。そのために存在するのが,ログファイルです。ログファイルがあれば,事故発生の直前までデータベースを復元することができます。ログファイルには,メモリにキャッシュされたオペレーションがデータファイルに書き込まれる前に事故が発生した場合にも,データの整合性を保証する役目もあります。

http://doc.4d.com/4Dv16/4D/16/Maintenance-Page.300-3047557.ja.html
http://doc.4d.com/4Dv16/4D/16/Configuration-and-trace-files.300-3048949.ja.html
http://doc.4d.com/4Dv16/4D/16/Managing-the-log-file.300-3048944.ja.html
http://doc.4d.com/4Dv16/4D/16.1/BackupConfiguration-page.300-3373285.ja.html

加えて,RAIDシステムを構築することもできます。

データファイルは,RAID 10(セキュリティとパフォーマンス)
バックアップは,RAID 5(コストとセキュリティ)

を選択することが推奨されています。

最悪の事態(火災・盗難)を想定し,1週間に1度,取り外しできる装置にデータベースのコピーを作成し,物理的に離れた安全な場所に保管することもできます。

ネットワーク

4D ServerをWebサーバーとして公開することを考えているのであれば,クライアント接続用とWebリクエスト用に2枚のネットワークカードを使用してトラフィックを分離することが推奨されています。

Web

64ビット版をコンパイルモードで使用し,スタンドアロン版または4D ServerをWeb公開します。クライアントのWebサーバーは,プリエンプティブモードに対応していないためです。Webからアクセスする可能性があるメソッドは,できる限りプリエンプティブモードで実行されるよう,メソッドのコードを見直します。これには,4DタグやWeb関係のデータベースメソッドのコードも含まれます。

http://doc.4d.com/4Dv16/4D/16.1/Using-preemptive-Web-processes.300-3375750.ja.html

Webキャッシュを有効にし,キャッシュのサイズを最大(524,288キロバイト)に設定しておきます。(別の方法でセッション管理をするのでなければ)自動セッション管理を有効,非動作プロセスのタイムアウトは最大(8時間)に設定し,同日中,同一ユーザーによるアクセスに同じコンテキストが再利用されるようにします。また,Keep-Alive接続も有効にします。

http://doc.4d.com/4Dv16/4D/16.1/Web-Server-Settings.300-3375755.ja.html

バーチャルマシン

推奨されるのは,4D Serverを物理マシンで運用することですが,仮想マシンでの運用実績は増え続けており,そのメリット(CPUやメモリを柔軟に割り当てられることなど)が注目を集めています。

特定のバーチャル環境を推奨する4Dの公式な資料は用意されていません。仮想マシンを検討しているのであれば,まず,仮想のオペレーションシステム・メモリ・プロセッサがインストールされた4Dに対して適切なものであることを確認してください。CPUとメモリについていえば,バーチャル環境のスペックは物理マシンよりも高めに求めたほうが良いでしょう。加えて,バーチャルマシンのパフォーマンスは,ネットワークの設定や使用されている仮想ソリューションなどにも左右されるので,サイトの運営者に問い合わせたり,仮想ソリューションのオンラインフォーラムなどに参加して情報を収集することが重要です。

メーカーおよび機種

特に推奨される型番はありません。ハードウェアの仕様書を注意深く読むようにしてください。

テスト

運用環境とまったく同じ,あるいは良く類似した環境でテストすることなく,いきなり運用するようなことは避けるべきです。また,将来,予期される同時接続ユーザー数,あるいはユーザー側から提供されたテストシナリオに基づき,実際の運用状況を前もって経験するようにしてください。データベースの限界を事前に把握していれば,開発者が予期していなかったような問題点を後で知らされ,対応を迫られるような事態を未然に防ぐことができます。また,もっとも頻繁に使用される機能をより最適化することもできます。

miyako

投稿数 : 272
登録日 : 2016/07/05

トップに戻る Go down

Re: 【告知】4D Serverの推奨運用環境

投稿 by M_Fujihara on 2017-08-30, 11:38 am

情報,ありがとうございます。
2つ,質問させて下さい。
・複数のデータベースを切り替えて使うのと,それらをまとめて1つの大きなデータベースにするのは,どちらが推奨されているのでしょうか。

・画像などの大きなデータをデータファイル外に保存していますが,これらの外部データフォルダとデータファイルを別々の場所に保存するということは,推奨されているのでしょうか。リンクが外れそうな気がします。

M_Fujihara

投稿数 : 69
登録日 : 2016/12/03

トップに戻る Go down

Re: 【告知】4D Serverの推奨運用環境

投稿 by miyako on 2017-08-31, 9:32 am

データファイル外の保存についてですが,4Dは,自動(おまかせ)モードと自分で管理するモードを提供しています。前者の場合,ファイルの作成・更新・削除は,4Dのデータベースエンジンによって自動的に実行され,外部データはバックアップにも含まれます。外部データ(.ExternalData)フォルダーは,データファイル(.4DDまたは.data)と同一のフォルダー(データベースフォルダー)内に置かれ,フォルダー内の相対パスが変わらない限り,「リンクが切れる」ことはありません。後者(自分で管理するモード)の場合,4Dのデータベースエンジンが管理するのは,コマンドで設定したパスをレコードに保存することだけであり,ファイルを作成・更新・削除することも,バックアップに含めることもしません。その場合,フィールドのタイプはテキスト・BLOB・ピクチャ・オブジェクトであっても,実質的には「ファイルパス」が登録された文字列フィールドのような扱いになります。iCloud・OneDrive・DropBoxなど,それ自体がバックアップ機能を持ったフォルダーを保存先に指定するなど,いろいろな活用法が考えられますが,データベースを移動した場合などには,パスを一括再設定する必要が生じるかもしれません。

http://doc.4d.com/4Dv16/4D/16.2/SET-EXTERNAL-DATA-PATH.301-3433817.ja.html

miyako

投稿数 : 272
登録日 : 2016/07/05

トップに戻る Go down

Re: 【告知】4D Serverの推奨運用環境

投稿 by miyako on 2017-08-31, 9:43 am

複数のデータベースを切り替えて使うことについてですが,具体的にどのような方法で「切り替える」(あるいは「まとめる」)ことを想定されているのでしょうか。

最適化について考慮する場合,「複数」vs「ひとつ」という単純な図式で捉えるよりも,データファイルの基本的な構造や,アドレステーブルの仕組みなどを踏まえ,運用データの解析や検証を何度も実施して検討することが勧められています。ひとつのおおきな決定よりも,無数のちいさな調整を加えることが重要かもしれません。また,バージョン固有,アプリケーション固有の振る舞いも考慮する必要があります。

https://github.com/4D-JP/4d-tips-data-analyzer

miyako

投稿数 : 272
登録日 : 2016/07/05

トップに戻る Go down

Re: 【告知】4D Serverの推奨運用環境

投稿 by M_Fujihara on 2017-08-31, 11:32 am

複数のデータベースの切り替えですが,日常業務で使っているデータベースと,過去の書類のように余り使わないけれど大切なデータベースという関係で,統合する場合でもテーブルは別にする予定です。
データファイルが大きくなるとレスポンス等に影響するのか,それともテーブルが違えば関係ないのかですが,ご紹介頂いたアナライザで別々の場合,統合した場合を比較する必要があるのですね。
別々の方がバックアップやメインテナンスは楽ですが,担当者が替わった場合に,余り使わないデータベースは行方不明になるかも知れないと言うことがあります。

M_Fujihara

投稿数 : 69
登録日 : 2016/12/03

トップに戻る Go down

Re: 【告知】4D Serverの推奨運用環境

投稿 by M_Fujihara on 2017-08-31, 1:22 pm

データファイル外の保存の方もありがとうございました。

自動(おまかせ)モードで保存していましたが,間違ってデータファイル単独で動かしてしまわない限り,外部データと外れることはないと言う事ですね。自動モードのファイル名はデータから推測できないような名前なので,外れると元に戻らなくなりそうです。また前にご相談したことがありますが,外部データにはTechTool Proなどで壊れたファイルと指摘されるファイルが含まれていますが,これを修正することが出来ずにいます。

SET EXTERNAL DATA PATHを初めて動かしてみましたが,このコマンドを実行することで,外部ファイルから指定フィールドに読み込まれるのですね。以前あったPlug-inに似ています。

M_Fujihara

投稿数 : 69
登録日 : 2016/12/03

トップに戻る Go down

Re: 【告知】4D Serverの推奨運用環境

投稿 by osaru on 2017-09-02, 1:30 pm

miyakoさま、詳細な情報ありがとうございます。参考にさせていただきます。

蛇足ではございますが、v16.1で、4D Serverに接続するダイアログにてデータベースを選択するのですが、マウス選択では問題ありませんが、キーボードの上下で選択してもOKボタンがディスエイブルのままで・・・キーボードオペレーションで接続完了できません。何かと不便ですのでご確認のほど頂ければ幸いです。

osaru

投稿数 : 34
登録日 : 2017/08/14

トップに戻る Go down

Re: 【告知】4D Serverの推奨運用環境

投稿 by miyako on 2017-09-04, 11:36 pm

ご不便をおかけしており申し訳ございません。

ナイトリービルドでは修正されているかと思います。

ACI0096842

https://github.com/4D-JP/release-notes/tree/master/v16/16.2

miyako

投稿数 : 272
登録日 : 2016/07/05

トップに戻る Go down

Re: 【告知】4D Serverの推奨運用環境

投稿 by Sponsored content


Sponsored content


トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可